diff --git a/bridge.go b/bridge.go index 66f2ef0..baab546 100644 --- a/bridge.go +++ b/bridge.go @@ -11,12 +11,6 @@ func forwardChannel(dc *downstreamConn, ch *upstreamChannel) { downstreamName := dc.marshalChannel(ch.conn, ch.Name) - dc.SendMessage(&irc.Message{ - Prefix: dc.prefix(), - Command: "JOIN", - Params: []string{downstreamName}, - }) - if ch.Topic != "" { dc.SendMessage(&irc.Message{ Prefix: dc.srv.prefix(), diff --git a/downstream.go b/downstream.go index 10b38bc..13921a8 100644 --- a/downstream.go +++ b/downstream.go @@ -700,6 +700,12 @@ func (dc *downstreamConn) register() error { dc.forEachUpstream(func(uc *upstreamConn) { for _, ch := range uc.channels { if ch.complete { + dc.SendMessage(&irc.Message{ + Prefix: dc.prefix(), + Command: "JOIN", + Params: []string{dc.marshalChannel(ch.conn, ch.Name)}, + }) + forwardChannel(dc, ch) } }