From 385f606d6705173a1a3c749401362b09ec685dea Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Fri, 19 Dec 2025 04:43:22 -0500 Subject: [PATCH] don't check extended-monitor --- irc/monitor.go | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/irc/monitor.go b/irc/monitor.go index 617648b7..7019f64a 100644 --- a/irc/monitor.go +++ b/irc/monitor.go @@ -28,26 +28,16 @@ func (mm *MonitorManager) Initialize() { // AddMonitors adds clients using extended-monitor monitoring `client`'s nick to the passed user set. func (manager *MonitorManager) AddMonitors(users utils.HashSet[*Session], cfnick string, capabs ...caps.Capability) { - var requireExtendedMonitor bool - for _, c := range capabs { - // these are the four capabilities that explicitly require extended-monitor; - // draft/metadata-2 does not - if c == caps.AccountNotify || c == caps.AwayNotify || c == caps.ChgHost || c == caps.SetName { - requireExtendedMonitor = true - break - } - } + // technically, we should check extended-monitor here, but it's not really necessary + // since clients will ignore AWAY, ACCOUNT, CHGHOST, and SETNAME for users + // they're not tracking manager.RLock() defer manager.RUnlock() for session := range manager.watchedby[cfnick] { - if requireExtendedMonitor && !session.capabilities.Has(caps.ExtendedMonitor) { - continue + if session.capabilities.HasAll(capabs...) { + users.Add(session) } - if !session.capabilities.HasAll(capabs...) { - continue - } - users.Add(session) } }