From: Alexander Barton Date: Sat, 6 Oct 2012 22:05:25 +0000 (+0200) Subject: WHOIS: show RPL_WHOISHOST_MSG to all IRC Ops in the network X-Git-Tag: rel-20-rc1~44 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;h=161adbb1aa6235acda9677ab14edd19581d9fcf4;p=ngircd.git WHOIS: show RPL_WHOISHOST_MSG to all IRC Ops in the network Not only show RPL_WHOISHOST_MSG to local IRC opreators, but show it to all IRC operators in the network. And don't show it to anybody if the "more privacy" configuration option is enabled. This closes bug #134. --- diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c index 89defc38..31a57c6f 100644 --- a/src/ngircd/irc-info.c +++ b/src/ngircd/irc-info.c @@ -1156,17 +1156,19 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c) Client_ID(from), Client_ID(c))) return DISCONNECTED; + /* 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'))) && - !IRC_WriteStrClient(from, RPL_WHOISMODES_MSG, Client_ID(from), - Client_ID(c), Client_Modes(c))) - return DISCONNECTED; - - if (Client_Conn(c) > NONE && (Client_OperByMe(from) || from == c) && - !IRC_WriteStrClient(from, RPL_WHOISHOST_MSG, Client_ID(from), - Client_ID(c), Client_Hostname(c), - Conn_GetIPAInfo(Client_Conn(c)))) - return DISCONNECTED; + (from == c || (!Conf_MorePrivacy && Client_HasMode(from, 'o')))) { + /* Client hostname */ + if (!IRC_WriteStrClient(from, RPL_WHOISHOST_MSG, + Client_ID(from), Client_ID(c), Client_Hostname(c), + Conn_GetIPAInfo(Client_Conn(c)))) + return DISCONNECTED; + /* Client modes */ + if (!IRC_WriteStrClient(from, RPL_WHOISMODES_MSG, + Client_ID(from), Client_ID(c), Client_Modes(c))) + return DISCONNECTED; + } /* Idle and signon time (local clients only!) */ if (!Conf_MorePrivacy && Client_Conn(c) > NONE &&