- !IRC_WriteStrClient(from, RPL_WHOISSSL_MSG,
- Client_ID(from), Client_ID(c)))
- return DISCONNECTED;
+ !IRC_WriteStrClient(from, RPL_WHOISSSL_MSG, Client_ID(from),
+ Client_ID(c)))
+ return DISCONNECTED;
+
+ /* 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;