From f8f7f83f5a2228bb9deeb8324be015cd76b84ced Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Wed, 13 May 2015 22:42:51 +0200 Subject: [PATCH] Streamline effect of "MorePrivacy" option (WHOIS, LIST) - Update documentation in ngircd.conf(5) - LIST: Don't hide channels for IRC Ops when "MorePrivacy" is in effect - WHOIS: Don't hide IP addresses/hostnames when "MorePrivacy" is in effect Closes #198 --- man/ngircd.conf.5.tmpl | 5 +++-- src/ngircd/irc-channel.c | 4 +--- src/ngircd/irc-info.c | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/man/ngircd.conf.5.tmpl b/man/ngircd.conf.5.tmpl index 0d57f902..bde91b10 100644 --- a/man/ngircd.conf.5.tmpl +++ b/man/ngircd.conf.5.tmpl @@ -291,8 +291,9 @@ Default: none. .TP \fBMorePrivacy\fR (boolean) This will cause ngIRCd to censor user idle time, logon time as well as the -part/quit messages (that are sometimes used to inform everyone about which -client software is being used). WHOWAS requests are also silently ignored. +PART/QUIT messages (that are sometimes used to inform everyone about which +client software is being used). WHOWAS requests are also silently ignored, +and NAMES output doesn't list any clients for non-members. This option is most useful when ngIRCd is being used together with anonymizing software such as TOR or I2P and one does not wish to make it too easy to collect statistics on the users. diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c index aa4abe3d..c7a3e1b3 100644 --- a/src/ngircd/irc-channel.c +++ b/src/ngircd/irc-channel.c @@ -608,9 +608,7 @@ IRC_LIST( CLIENT *Client, REQUEST *Req ) /* Gotcha! */ if (!Channel_HasMode(chan, 's') || Channel_IsMemberOf(chan, from) - || (!Conf_MorePrivacy - && Client_HasMode(Client, 'o') - && Client_Conn(Client) > NONE)) + || Client_HasMode(from, 'o')) { if ((Conf_MaxListSize > 0) && IRC_CheckListTooBig(from, count, diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c index ba7a2b74..1bbaf57b 100644 --- a/src/ngircd/irc-info.c +++ b/src/ngircd/irc-info.c @@ -407,7 +407,7 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c) /* Local client and requester is the user itself or an IRC Op? */ if (Client_Conn(c) > NONE && - (from == c || (!Conf_MorePrivacy && Client_HasMode(from, 'o')))) { + (from == c || Client_HasMode(from, 'o'))) { /* Client hostname */ if (!IRC_WriteStrClient(from, RPL_WHOISHOST_MSG, Client_ID(from), Client_ID(c), -- 2.39.2