about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFederico G. Schwindt <fgsch@lodoss.net>2013-07-18 19:52:17 +0100
committerFederico G. Schwindt <fgsch@lodoss.net>2013-07-18 19:52:17 +0100
commit7adc4b8e99c64c150861c6ad5a197d88141afa13 (patch)
tree09352bc93ec2be066b991fef2c419a2caefea7f1
parent5021977bb1bf6c13323b7ef2a73f64e9533a379a (diff)
downloadngircd-7adc4b8e99c64c150861c6ad5a197d88141afa13.tar.gz
ngircd-7adc4b8e99c64c150861c6ad5a197d88141afa13.zip
Handle services in IRC_WHOIS_SendReply()
If the target is a service, advertise it as such and ignore operator mode.
-rw-r--r--src/ngircd/irc-info.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c
index 668f5ed6..046648fd 100644
--- a/src/ngircd/irc-info.c
+++ b/src/ngircd/irc-info.c
@@ -361,8 +361,15 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
 			return DISCONNECTED;
 	}
 
+	/* IRC-Services? */
+	if (Client_Type(c) == CLIENT_SERVICE &&
+	    !IRC_WriteStrClient(from, RPL_WHOISSERVICE_MSG,
+				Client_ID(from), Client_ID(c)))
+		return DISCONNECTED;
+
 	/* IRC-Operator? */
-	if (Client_HasMode(c, 'o') &&
+	if (Client_Type(c) != CLIENT_SERVICE &&
+	    Client_HasMode(c, 'o') &&
 	    !IRC_WriteStrClient(from, RPL_WHOISOPERATOR_MSG,
 				Client_ID(from), Client_ID(c)))
 		return DISCONNECTED;