ngircd

Free, portable and lightweight Internet Relay Chat server http://ngircd.barton.de/
Log | Files | Refs | README | LICENSE

commit f8f7f83f5a2228bb9deeb8324be015cd76b84ced
parent 1136b9769099e8e163fabbf68fd07f0db086398e
Author: Alexander Barton <alex@barton.de>
Date:   Wed, 13 May 2015 22:42:51 +0200

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

Diffstat:
Mman/ngircd.conf.5.tmpl | 5+++--
Msrc/ngircd/irc-channel.c | 4+---
Msrc/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 @@ -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 @@ -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 @@ -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),