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!
if (OnlyOps && !is_ircop)
continue;
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));
if (is_member || is_visible) {
memset(flags, 0, sizeof(flags));