Changeset 54 in code for trunk/downstream.go


Ignore:
Timestamp:
Feb 17, 2020, 11:27:48 AM (5 years ago)
Author:
contact
Message:

Don't write to downstreamConn.messages directly

Use a helper function instead. This will allow us to change
downstreamConn implementation details without having to update the whole
codebase.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r51 r54  
    103103                if ircErr, ok := err.(ircError); ok {
    104104                        ircErr.Message.Prefix = c.srv.prefix()
    105                         c.messages <- ircErr.Message
     105                        c.SendMessage(ircErr.Message)
    106106                } else if err != nil {
    107107                        return fmt.Errorf("failed to handle IRC command %q: %v", msg.Command, err)
     
    141141
    142142        return nil
     143}
     144
     145func (c *downstreamConn) SendMessage(msg *irc.Message) {
     146        c.messages <- msg
    143147}
    144148
     
    149153        case "PING":
    150154                // TODO: handle params
    151                 c.messages <- &irc.Message{
     155                c.SendMessage(&irc.Message{
    152156                        Prefix:  c.srv.prefix(),
    153157                        Command: "PONG",
    154158                        Params:  []string{c.srv.Hostname},
    155                 }
     159                })
    156160                return nil
    157161        default:
     
    190194        if u == nil {
    191195                c.logger.Printf("failed authentication: unknown username %q", c.username)
    192                 c.messages <- &irc.Message{
     196                c.SendMessage(&irc.Message{
    193197                        Prefix:  c.srv.prefix(),
    194198                        Command: irc.ERR_PASSWDMISMATCH,
    195199                        Params:  []string{"*", "Invalid username or password"},
    196                 }
     200                })
    197201                return nil
    198202        }
     
    205209        u.lock.Unlock()
    206210
    207         c.messages <- &irc.Message{
     211        c.SendMessage(&irc.Message{
    208212                Prefix:  c.srv.prefix(),
    209213                Command: irc.RPL_WELCOME,
    210214                Params:  []string{c.nick, "Welcome to jounce, " + c.nick},
    211         }
    212         c.messages <- &irc.Message{
     215        })
     216        c.SendMessage(&irc.Message{
    213217                Prefix:  c.srv.prefix(),
    214218                Command: irc.RPL_YOURHOST,
    215219                Params:  []string{c.nick, "Your host is " + c.srv.Hostname},
    216         }
    217         c.messages <- &irc.Message{
     220        })
     221        c.SendMessage(&irc.Message{
    218222                Prefix:  c.srv.prefix(),
    219223                Command: irc.RPL_CREATED,
    220224                Params:  []string{c.nick, "Who cares when the server was created?"},
    221         }
    222         c.messages <- &irc.Message{
     225        })
     226        c.SendMessage(&irc.Message{
    223227                Prefix:  c.srv.prefix(),
    224228                Command: irc.RPL_MYINFO,
    225229                Params:  []string{c.nick, c.srv.Hostname, "jounce", "aiwroO", "OovaimnqpsrtklbeI"},
    226         }
    227         c.messages <- &irc.Message{
     230        })
     231        c.SendMessage(&irc.Message{
    228232                Prefix:  c.srv.prefix(),
    229233                Command: irc.ERR_NOMOTD,
    230234                Params:  []string{c.nick, "No MOTD"},
    231         }
     235        })
    232236
    233237        u.forEachUpstream(func(uc *upstreamConn) {
     
    247251                                break
    248252                        }
    249                         c.messages <- msg
     253                        c.SendMessage(msg)
    250254                }
    251255        })
     
    313317                                ch.conn.messages <- msg
    314318                        } else {
    315                                 c.messages <- &irc.Message{
     319                                c.SendMessage(&irc.Message{
    316320                                        Prefix:  c.srv.prefix(),
    317321                                        Command: irc.RPL_CHANNELMODEIS,
    318322                                        Params:  []string{ch.Name, string(ch.modes)},
    319                                 }
     323                                })
    320324                        }
    321325                } else {
     
    332336                                })
    333337                        } else {
    334                                 c.messages <- &irc.Message{
     338                                c.SendMessage(&irc.Message{
    335339                                        Prefix:  c.srv.prefix(),
    336340                                        Command: irc.RPL_UMODEIS,
    337341                                        Params:  []string{""}, // TODO
    338                                 }
     342                                })
    339343                        }
    340344                }
Note: See TracChangeset for help on using the changeset viewer.