Open hloeung opened 11 months ago
Seems this will cause BIP IRC Proxy to crash, as in some cases, bip will try to add an already existing user to a channel user list it already had when receiving a JOIN
, or remove a nonexistent user from a list when receiving a PART
.
I believe a server should only send PART / JOIN when it has sent a channel user list without the related change (like with NAMES or WHO commands). I'm not sure that's required per the RFC but I would expect the RFC to be strict about sending PART and JOIN messages when the result of such action is already visible in NAMES or WHO.
I think this happened when I (or someone else) was forcefully added to a channel, bip received the full user list, and then a JOIN command.
Without this, on matterircd reconnect & relay, users in channels can be out of sync. This causes issues with trying to auto-complete IRC nicks for example.