]> granicus.if.org Git - ngircd/commitdiff
New RPL_WHOISHOST_MSG(378): show hostname and IP address
authorAlexander Barton <alex@barton.de>
Sun, 22 Jan 2012 21:41:39 +0000 (22:41 +0100)
committerAlexander Barton <alex@barton.de>
Sun, 22 Jan 2012 21:41:39 +0000 (22:41 +0100)
The numeric RPL_WHOISHOST_MSG(378) returns the DNS hostname (if
available) and the IP address of a client in the WHOIS reply.

Only the user itself and local IRC operators get this numeric.

src/ngircd/irc-info.c
src/ngircd/messages.h

index 93c43b75f14072b71aa17ef3843f3fdcee6b8c8a..841e6e62739274a0b862ba4bab1284091605ff07 100644 (file)
@@ -1114,6 +1114,12 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
                                Client_ID(from), Client_ID(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;
+
        /* Idle and signon time (local clients only!) */
        if (!Conf_MorePrivacy && Client_Conn(c) > NONE &&
            !IRC_WriteStrClient(from, RPL_WHOISIDLE_MSG,
index 340f5f40dc5f3d8aa4ea36f9544bb9dabe2bf2be..f05907729ed9150643ec9f56337c1656f63f4e97 100644 (file)
@@ -91,6 +91,7 @@
 #define RPL_MOTD_MSG                   "372 %s :- %s"
 #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_YOUREOPER_MSG              "381 %s :You are now an IRC Operator"
 #define RPL_YOURESERVICE_MSG           "383 %s :You are service %s"
 #define RPL_TIME_MSG                   "391 %s %s :%s"