Don't forward duplicate JOIN commands
Closes: https://todo.sr.ht/~emersion/soju/171
This commit is contained in:
parent
66aea1b4a2
commit
bad8154da8
@ -1771,14 +1771,20 @@ func (dc *downstreamConn) handleMessageRegistered(ctx context.Context, msg *irc.
|
||||
continue
|
||||
}
|
||||
|
||||
params := []string{upstreamName}
|
||||
if key != "" {
|
||||
params = append(params, key)
|
||||
// Most servers ignore duplicate JOIN messages. We ignore them here
|
||||
// because some clients automatically send JOIN messages in bulk
|
||||
// when reconnecting to the bouncer. We don't want to flood the
|
||||
// upstream connection with these.
|
||||
if !uc.channels.Has(upstreamName) {
|
||||
params := []string{upstreamName}
|
||||
if key != "" {
|
||||
params = append(params, key)
|
||||
}
|
||||
uc.SendMessageLabeled(ctx, dc.id, &irc.Message{
|
||||
Command: "JOIN",
|
||||
Params: params,
|
||||
})
|
||||
}
|
||||
uc.SendMessageLabeled(ctx, dc.id, &irc.Message{
|
||||
Command: "JOIN",
|
||||
Params: params,
|
||||
})
|
||||
|
||||
ch := uc.network.channels.Value(upstreamName)
|
||||
if ch != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user