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.c6
-rw-r--r--src/ngircd/messages.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c
index 4909a96a..89defc38 100644
--- a/src/ngircd/irc-info.c
+++ b/src/ngircd/irc-info.c
@@ -1156,6 +1156,12 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
 				Client_ID(from), Client_ID(c)))
 		return DISCONNECTED;
 
+	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),
diff --git a/src/ngircd/messages.h b/src/ngircd/messages.h
index 5c83c5cc..ac75daf9 100644
--- a/src/ngircd/messages.h
+++ b/src/ngircd/messages.h
@@ -92,6 +92,7 @@
 #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_WHOISMODES_MSG		"379 %s %s :is using modes +%s"
 #define RPL_YOUREOPER_MSG		"381 %s :You are now an IRC Operator"
 #define RPL_REHASHING_MSG		"382 %s :Rehashing"
 #define RPL_YOURESERVICE_MSG		"383 %s :You are service %s"