+ /* Registered nick name? */
+ if (Client_HasMode(c, 'R') &&
+ !IRC_WriteStrClient(from, RPL_WHOISREGNICK_MSG,
+ 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,
+ Client_ID(from), Client_ID(c),
+ (unsigned long)Conn_GetIdle(Client_Conn(c)),
+ (unsigned long)Conn_GetSignon(Client_Conn(c))))
+ return DISCONNECTED;
+
+ /* Away? */
+ if (Client_HasMode(c, 'a') &&
+ !IRC_WriteStrClient(from, RPL_AWAY_MSG,
+ Client_ID(from), Client_ID(c), Client_Away(c)))
+ return DISCONNECTED;
+
+ return CONNECTED;
+} /* IRC_WHOIS_SendReply */
+
+
+/**
+ * Handler for the IRC "WHOIS" command.
+ *
+ * See RFC 2812, 3.6.2 "Whois query".
+ *
+ * @param Client The client from which this command has been received.
+ * @param Req Request structure with prefix and all parameters.
+ * @return CONNECTED or DISCONNECTED.
+ */