diff --git a/downstream.go b/downstream.go index 1f91f55..705dec7 100644 --- a/downstream.go +++ b/downstream.go @@ -326,7 +326,7 @@ func (dc *downstreamConn) handleMessageRegistered(msg *irc.Message) error { }} case "NICK": dc.user.forEachUpstream(func(uc *upstreamConn) { - uc.messages <- msg + uc.SendMessage(msg) }) case "JOIN": var name string @@ -354,7 +354,7 @@ func (dc *downstreamConn) handleMessageRegistered(msg *irc.Message) error { return err } - ch.conn.messages <- msg + ch.conn.SendMessage(msg) // TODO: remove channel from upstream config case "MODE": var name string @@ -374,7 +374,7 @@ func (dc *downstreamConn) handleMessageRegistered(msg *irc.Message) error { } if modeStr != "" { - ch.conn.messages <- msg + ch.conn.SendMessage(msg) } else { dc.SendMessage(&irc.Message{ Prefix: dc.srv.prefix(), @@ -392,7 +392,7 @@ func (dc *downstreamConn) handleMessageRegistered(msg *irc.Message) error { if modeStr != "" { dc.user.forEachUpstream(func(uc *upstreamConn) { - uc.messages <- msg + uc.SendMessage(msg) }) } else { dc.SendMessage(&irc.Message{ @@ -414,11 +414,11 @@ func (dc *downstreamConn) handleMessageRegistered(msg *irc.Message) error { return err } - ch.conn.messages <- &irc.Message{ + ch.conn.SendMessage(&irc.Message{ Prefix: msg.Prefix, Command: "PRIVMSG", Params: []string{name, text}, - } + }) } default: dc.logger.Printf("unhandled message: %v", msg) diff --git a/upstream.go b/upstream.go index 342b06f..04ea2d1 100644 --- a/upstream.go +++ b/upstream.go @@ -107,10 +107,10 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error { switch msg.Command { case "PING": // TODO: handle params - uc.messages <- &irc.Message{ + uc.SendMessage(&irc.Message{ Command: "PONG", Params: []string{uc.srv.Hostname}, - } + }) return nil case "MODE": var name, modeStr string @@ -143,10 +143,10 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error { uc.logger.Printf("connection registered") for _, ch := range uc.upstream.Channels { - uc.messages <- &irc.Message{ + uc.SendMessage(&irc.Message{ Command: "JOIN", Params: []string{ch}, - } + }) } case irc.RPL_MYINFO: if err := parseMessageParams(msg, nil, &uc.serverName, nil, &uc.availableUserModes, &uc.availableChannelModes); err != nil { @@ -325,14 +325,14 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error { func (uc *upstreamConn) register() { uc.nick = uc.upstream.Nick - uc.messages <- &irc.Message{ + uc.SendMessage(&irc.Message{ Command: "NICK", Params: []string{uc.upstream.Nick}, - } - uc.messages <- &irc.Message{ + }) + uc.SendMessage(&irc.Message{ Command: "USER", Params: []string{uc.upstream.Username, "0", "*", uc.upstream.Realname}, - } + }) } func (uc *upstreamConn) readMessages() error { @@ -351,3 +351,7 @@ func (uc *upstreamConn) readMessages() error { return nil } + +func (uc *upstreamConn) SendMessage(msg *irc.Message) { + uc.messages <- msg +}