Join all channels with a single JOIN message

git-svn-id: file:///srv/svn/repo/suika/trunk@305 f0ae65fe-ee39-954e-97ec-027ff2717ef4
This commit is contained in:
ecs 2020-05-28 14:26:28 +00:00
parent 0f15604644
commit bd6074df78

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)
}
uc.SendMessage(&irc.Message{
Command: "JOIN",
Params: params,
})
names = append(names, ch.Name)
keys = append(keys, ch.Key)
}
uc.SendMessage(&irc.Message{
Command: "JOIN",
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