Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit 63597034a60b2d27b055b6e604363599cc2fc64b Author: Bryan Davis <bd808@wikimedia.org> Date: Thu May 23 15:55:31 2024 +0000 Clear existing IRC event handlers before connecting to new ones (irc) (#2138) Clear IRC event handlers that we will be registering for the new connection before registering new handlers. This prevents duplicate event handlers in the case where we are connecting via a BNC and are seeing a reconnect. Attempting to clear handlers when none have been set is a no-op. Fixes 42wim#1564 Co-authored-by: Andreas Vögele <andreas@andreasvoegele.com> diff --git a/bridge/irc/handlers.go b/bridge/irc/handlers.go index 74db768..e5aa1fc 100644 --- a/bridge/irc/handlers.go +++ b/bridge/irc/handlers.go @@ -1226 +12217 @@ func (b *Birc) handleNewConnection(client *girc.Client, event girc.Event) {   i := b.i   b.Nick = event.Params[0]   + b.Log.Debug("Clearing handlers before adding in case of BNC reconnect") + i.Handlers.Clear("PRIVMSG") + i.Handlers.Clear("CTCP_ACTION") + i.Handlers.Clear(girc.RPL_TOPICWHOTIME) + i.Handlers.Clear(girc.NOTICE) + i.Handlers.Clear("JOIN") + i.Handlers.Clear("PART") + i.Handlers.Clear("QUIT") + i.Handlers.Clear("KICK") + i.Handlers.Clear("INVITE") +   i.Handlers.AddBg("PRIVMSG", b.handlePrivMsg)   i.Handlers.AddBg("CTCP_ACTION", b.handlePrivMsg)   i.Handlers.Add(girc.RPL_TOPICWHOTIME, b.handleTopicWhoTime)