Fix "WHO #<chan>" showing invisible users and hiding all visible
authorAlexander Barton <alex@barton.de>
Wed, 11 Mar 2015 23:28:31 +0000 (00:28 +0100)
committerAlexander Barton <alex@barton.de>
Sat, 14 Mar 2015 09:16:16 +0000 (10:16 +0100)
The logic is reversed ...

This bug has been introduced by commit c74115f2, "Simplify mode checking on
channels and users within a channel", ngIRCd releases 21, 21.1, and 22 are
affected :-(

Problem reported by Cahata in #ngircd, Thanks!

src/ngircd/irc-info.c

index 763c930..61c6239 100644 (file)
@@ -162,7 +162,7 @@ IRC_WHO_Channel(CLIENT *Client, CHANNEL *Chan, bool OnlyOps)
                if (OnlyOps && !is_ircop)
                        continue;
 
-               is_visible = Client_HasMode(c, 'i');
+               is_visible = !Client_HasMode(c, 'i');
                if (is_member || is_visible) {
                        memset(flags, 0, sizeof(flags));