Join all channels with a single JOIN message

This commit is contained in:
Eyal Sawady 2020-05-25 20:15:57 -04:00 committed by Simon Ser
parent b1367a0608
commit c547aa0278
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48

View File

@ -525,16 +525,19 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error {
dc.updateSupportedCaps()
})
// TODO: split this into multiple messages if need be
var names, keys []string
for _, ch := range uc.network.channels {
params := []string{ch.Name}
if ch.Key != "" {
params = append(params, ch.Key)
names = append(names, ch.Name)
keys = append(keys, ch.Key)
}
uc.SendMessage(&irc.Message{
Command: "JOIN",
Params: params,
Params: []string{
strings.Join(names, ","),
strings.Join(keys, ","),
},
})
}
case irc.RPL_MYINFO:
if err := parseMessageParams(msg, nil, &uc.serverName, nil, &uc.availableUserModes, nil); err != nil {
return err