]>
jfr.im git - irc/quakenet/newserv.git/blob - countusers/countusers.c
1 #include "../control/control.h"
2 #include "../nick/nick.h"
3 #include "../channel/channel.h"
4 #include "../lib/irc_string.h"
7 int do_countusers(void *source
, int cargc
, char **cargv
) {
8 nick
*sender
=(nick
*)source
, *np
;
11 char *chp
,*host
,*ident
;
16 for (chp
=cargv
[0]; ;chp
++) {
18 /* found @, so it's user@host */
23 } else if (*chp
=='\0') {
24 /* found NULL, so just host */
31 if ((hp
=findhost(host
))==NULL
) {
32 controlreply(sender
,"0 users match %s%s%s",ident
?ident
:"",ident
?"@":"",host
);
37 /* We want *@host, so it's just the clonecount we have for free */
38 controlreply(sender
,"%d users match %s",hp
->clonecount
,host
);
40 /* Do it the slow way */
41 for (np
=hp
->nicks
;np
;np
=np
->nextbyhost
) {
42 if (!ircd_strcmp(np
->ident
,ident
))
45 controlreply(sender
,"%d users match %s@%s",count
,ident
,host
);
52 registercontrolhelpcmd("countusers", NO_OPER
, 1, do_countusers
, "Usage: countusers <hostmask>\nReturns users on specified hostmask.");
56 deregistercontrolcmd("countusers", do_countusers
);