commit - 999c11ad49ea1e9c2615e4668f23aae483e549dc
commit + 84a599ece472c4f2ef6d2f553addf898e0ed73f9
blob - aaa607ddf32d5248c9b1cdd0c41ea5944da4a796
blob + e9c1ff532ae7a4d4420d9e972f0f8e3904036f33
--- src/ngircd/irc-info.c
+++ src/ngircd/irc-info.c
if (!IRC_WriteStrClient(Client, "%s", str))
return DISCONNECTED;
}
+
+ /* Service? */
+ 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_HasMode(c, 'o') && Client_Type(c) != CLIENT_SERVICE &&
!IRC_WriteStrClient(from, RPL_WHOISOPERATOR_MSG,
Client_ID(from), Client_ID(c)))
return DISCONNECTED;
/* IRC-Bot? */
- if (Client_HasMode(c, 'B') &&
+ if (Client_HasMode(c, 'B') && Client_Type(c) != CLIENT_SERVICE &&
!IRC_WriteStrClient(from, RPL_WHOISBOT_MSG,
Client_ID(from), Client_ID(c)))
return DISCONNECTED;
*/
if (!has_wildcards || is_remote) {
c = Client_Search(query);
- if (c && Client_Type(c) == CLIENT_USER) {
+ if (c && (Client_Type(c) == CLIENT_USER
+ || Client_Type(c) == CLIENT_SERVICE)) {
if (!IRC_WHOIS_SendReply(Client, from, c))
return DISCONNECTED;
} else {
blob - a6a6d8c24559457d70adacc5cffb78dc3152f214
blob + 371abc262d7dc6f708a7cee156884d6d2186efa5
--- src/ngircd/messages.h
+++ src/ngircd/messages.h
#define RPL_UNAWAY_MSG "305 %s :You are no longer marked as being away"
#define RPL_NOWAWAY_MSG "306 %s :You have been marked as being away"
#define RPL_WHOISREGNICK_MSG "307 %s %s :is a registered nick"
+#define RPL_WHOISSERVICE_MSG "310 %s %s :is an IRC service"
#define RPL_WHOISUSER_MSG "311 %s %s %s %s * :%s"
#define RPL_WHOISSERVER_MSG "312 %s %s %s :%s"
#define RPL_WHOISOPERATOR_MSG "313 %s %s :is an IRC operator"