Commit Diff


commit - de2fa78d92447d2acc3d349b8044524f5b616f59
commit + 161adbb1aa6235acda9677ab14edd19581d9fcf4
blob - 89defc3829ffaf4bba4e05cbcb25377e87ec7a22
blob + 31a57c6fe5b1f46fb97c292449f3d50bbd6eb0e1
--- src/ngircd/irc-info.c
+++ src/ngircd/irc-info.c
@@ -1156,17 +1156,19 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIE
 				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 &&