watch Module relaying Quit's regardless of channel source filters. #6

Open
opened 2026-10-05 03:52:48 +02:00 by adam · 2 comments
Owner

The "watch" module's onQuit handler is missing the Channel.GetName() argument, resulting in all Quit's being relayed to the target window regardless of any channel source filters that are set. As a result, you end up with a target window full of Quit messages from all channels that ZNC is/you're in, mixed in with what's relayed from your actual pattern/source filter.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

The "watch" module's onQuit handler is missing the Channel.GetName() argument, resulting in all Quit's being relayed to the target window regardless of any channel source filters that are set. As a result, you end up with a target window full of Quit messages from all channels that ZNC is/you're in, mixed in with what's relayed from your actual pattern/source filter. ## <bountysource-plugin> Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/705-watch-module-relaying-quit-s-regardless-of-channel-source-filters?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github). </bountysource-plugin> <!-- github-sync-id:687188 -->
Author
Owner

So you want the OnQuit() hook to call Process() for each channel that the user is in instead? That would cause *watch to relay that message once for each channel which is bad, too.

So you want the `OnQuit()` hook to call Process() for each channel that the user is in instead? That would cause `*watch` to relay that message once for each channel which is bad, too. <!-- github-comment-id:923699 -->
Author
Owner

Even in watch module's own help description for SetSources, it says "Set the source channels that you care about." If I set it to a specific channel, clearly I don't care about Quit's from all the other channels I'm in. Yet, that's exactly what it does, and I end up with a target window constantly spammed with tons of Quit messages from every single user that quits any of the channels that I'm in.

Perhaps it's better articulated by a screenshot with a concrete example of what happens: http://i55.tinypic.com/ji1doz.png

onJoin, onPart, onKick, each pass the Channel.GetName() arg to Process(), yet onQuit just gets passed an empty string. Even if it does relay it for every channel it occurs it, it's better to filter/suppress that, than to let it through when you've specifically set a channel source.

Even in watch module's own help description for SetSources, it says "Set the source channels that you care about." If I set it to a specific channel, clearly I don't care about Quit's from all the other channels I'm in. Yet, that's exactly what it does, and I end up with a target window constantly spammed with tons of Quit messages from every single user that quits any of the channels that I'm in. Perhaps it's better articulated by a screenshot with a concrete example of what happens: http://i55.tinypic.com/ji1doz.png onJoin, onPart, onKick, each pass the Channel.GetName() arg to Process(), yet onQuit just gets passed an empty string. Even if it does relay it for every channel it occurs it, it's better to filter/suppress that, than to let it through when you've specifically set a channel source. <!-- github-comment-id:928338 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#6