mirror of
https://github.com/osmarks/ngircd.git
synced 2024-12-15 19:30:26 +00:00
Enable WHOIS to display information about IRC Services
This patch introduces the new numeric 310(RPL_WHOISSERVICE) and enables WHOIS to display information about IRC services. This numeric is used for this purpose by InspIRCd, for example -- but as usual, other numerics are in use, too, like 613 in UltimateIRCd ... Please note that neither the Operator (+o) not the "bot status" (+B) of an IRC service id displayed in the output. Change suggested by Federico G. Schwindt <fgsch@lodoss.net>, Thanks.
This commit is contained in:
parent
999c11ad49
commit
84a599ece4
@ -1133,14 +1133,20 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
|
|||||||
return DISCONNECTED;
|
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? */
|
/* IRC-Operator? */
|
||||||
if (Client_HasMode(c, 'o') &&
|
if (Client_HasMode(c, 'o') && Client_Type(c) != CLIENT_SERVICE &&
|
||||||
!IRC_WriteStrClient(from, RPL_WHOISOPERATOR_MSG,
|
!IRC_WriteStrClient(from, RPL_WHOISOPERATOR_MSG,
|
||||||
Client_ID(from), Client_ID(c)))
|
Client_ID(from), Client_ID(c)))
|
||||||
return DISCONNECTED;
|
return DISCONNECTED;
|
||||||
|
|
||||||
/* IRC-Bot? */
|
/* IRC-Bot? */
|
||||||
if (Client_HasMode(c, 'B') &&
|
if (Client_HasMode(c, 'B') && Client_Type(c) != CLIENT_SERVICE &&
|
||||||
!IRC_WriteStrClient(from, RPL_WHOISBOT_MSG,
|
!IRC_WriteStrClient(from, RPL_WHOISBOT_MSG,
|
||||||
Client_ID(from), Client_ID(c)))
|
Client_ID(from), Client_ID(c)))
|
||||||
return DISCONNECTED;
|
return DISCONNECTED;
|
||||||
@ -1262,7 +1268,8 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req )
|
|||||||
*/
|
*/
|
||||||
if (!has_wildcards || is_remote) {
|
if (!has_wildcards || is_remote) {
|
||||||
c = Client_Search(query);
|
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))
|
if (!IRC_WHOIS_SendReply(Client, from, c))
|
||||||
return DISCONNECTED;
|
return DISCONNECTED;
|
||||||
} else {
|
} else {
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
#define RPL_UNAWAY_MSG "305 %s :You are no longer marked as being away"
|
#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_NOWAWAY_MSG "306 %s :You have been marked as being away"
|
||||||
#define RPL_WHOISREGNICK_MSG "307 %s %s :is a registered nick"
|
#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_WHOISUSER_MSG "311 %s %s %s %s * :%s"
|
||||||
#define RPL_WHOISSERVER_MSG "312 %s %s %s :%s"
|
#define RPL_WHOISSERVER_MSG "312 %s %s %s :%s"
|
||||||
#define RPL_WHOISOPERATOR_MSG "313 %s %s :is an IRC operator"
|
#define RPL_WHOISOPERATOR_MSG "313 %s %s :is an IRC operator"
|
||||||
|
Loading…
Reference in New Issue
Block a user