repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 2196e945e4ac5f41d6650c4ceb9120cfd8fc8d56:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 2196e945e4ac5f41d6650c4ceb9120cfd8fc8d56
Author: Alexander Barton 
Date:   Thu Mar 12 00:28:31 2015 +0100

    Fix "WHO #" showing invisible users and hiding all visible

    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!

diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c
index 763c9302341bf18e6fb6f961e0a8d8b32ff9a4ea..
index ..61c6239c465ef3bd4cfc82fd6ff960d9e18927e3 100644
--- a/src/ngircd/irc-info.c
+++ b/src/ngircd/irc-info.c
@@ -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));

-----END OF PAGE-----