about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc-info.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c
index 89defc38..31a57c6f 100644
--- a/src/ngircd/irc-info.c
+++ b/src/ngircd/irc-info.c
@@ -1156,17 +1156,19 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
 				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 &&