1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-12-12 09:50:29 +00:00

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
This commit is contained in:
Alexander Barton 2015-05-13 22:42:51 +02:00
parent 1136b97690
commit f8f7f83f5a
3 changed files with 5 additions and 6 deletions

View File

@ -291,8 +291,9 @@ Default: none.
.TP .TP
\fBMorePrivacy\fR (boolean) \fBMorePrivacy\fR (boolean)
This will cause ngIRCd to censor user idle time, logon time as well as the 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 PART/QUIT messages (that are sometimes used to inform everyone about which
client software is being used). WHOWAS requests are also silently ignored. 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 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 anonymizing software such as TOR or I2P and one does not wish to make it
too easy to collect statistics on the users. too easy to collect statistics on the users.

View File

@ -608,9 +608,7 @@ IRC_LIST( CLIENT *Client, REQUEST *Req )
/* Gotcha! */ /* Gotcha! */
if (!Channel_HasMode(chan, 's') if (!Channel_HasMode(chan, 's')
|| Channel_IsMemberOf(chan, from) || Channel_IsMemberOf(chan, from)
|| (!Conf_MorePrivacy || Client_HasMode(from, 'o'))
&& Client_HasMode(Client, 'o')
&& Client_Conn(Client) > NONE))
{ {
if ((Conf_MaxListSize > 0) if ((Conf_MaxListSize > 0)
&& IRC_CheckListTooBig(from, count, && IRC_CheckListTooBig(from, count,

View File

@ -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? */ /* Local client and requester is the user itself or an IRC Op? */
if (Client_Conn(c) > NONE && if (Client_Conn(c) > NONE &&
(from == c || (!Conf_MorePrivacy && Client_HasMode(from, 'o')))) { (from == c || Client_HasMode(from, 'o'))) {
/* Client hostname */ /* Client hostname */
if (!IRC_WriteStrClient(from, RPL_WHOISHOST_MSG, if (!IRC_WriteStrClient(from, RPL_WHOISHOST_MSG,
Client_ID(from), Client_ID(c), Client_ID(from), Client_ID(c),