diff options
| author | DNS777 <dns@rbose.org> | 2012-10-06 21:56:59 +0200 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2012-10-06 21:56:59 +0200 |
| commit | 56cdc2175c4cbe6abdf45f2d32016c260f3728f7 (patch) | |
| tree | c9290adadbf7ebeb077953c3abae312c2e8636e5 | |
| parent | de453d71cb1bcd78b365f16e994003e913a03148 (diff) | |
| download | ngircd-56cdc2175c4cbe6abdf45f2d32016c260f3728f7.tar.gz ngircd-56cdc2175c4cbe6abdf45f2d32016c260f3728f7.zip | |
Show active user modes in WHOIS reply
Implement numeric RPL_WHOISMODES_MSG(379) and show user modes in the reply of the WHOIS command for the user himself or, if MorePrivacy isn't set, for request initiated by an IRC operator. Numeric 379 is used by Unreal and InspIRCd for this purpose, too. Closes bug #129.
| -rw-r--r-- | src/ngircd/irc-info.c | 6 | ||||
| -rw-r--r-- | src/ngircd/messages.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c index 4909a96a..89defc38 100644 --- a/src/ngircd/irc-info.c +++ b/src/ngircd/irc-info.c @@ -1156,6 +1156,12 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c) Client_ID(from), Client_ID(c))) return DISCONNECTED; + 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), diff --git a/src/ngircd/messages.h b/src/ngircd/messages.h index 5c83c5cc..ac75daf9 100644 --- a/src/ngircd/messages.h +++ b/src/ngircd/messages.h @@ -92,6 +92,7 @@ #define RPL_MOTDSTART_MSG "375 %s :- %s message of the day" #define RPL_ENDOFMOTD_MSG "376 %s :End of MOTD command" #define RPL_WHOISHOST_MSG "378 %s %s :is connecting from *@%s %s" +#define RPL_WHOISMODES_MSG "379 %s %s :is using modes +%s" #define RPL_YOUREOPER_MSG "381 %s :You are now an IRC Operator" #define RPL_REHASHING_MSG "382 %s :Rehashing" #define RPL_YOURESERVICE_MSG "383 %s :You are service %s" |