]>
jfr.im git - irc/quakenet/newserv.git/blob - nodecount/nodecount.c
1 #include "../core/schedule.h"
2 #include "../lib/irc_string.h"
3 #include "../localuser/localuserchannel.h"
4 #include "../control/control.h"
6 int nc_cmd_nodecount(void *source
, int cargc
, char **cargv
);
9 registercontrolcmd("nodecount", 10, 1, &nc_cmd_nodecount
);
13 deregistercontrolcmd("nodecount", &nc_cmd_nodecount
);
16 int nc_cmd_nodecount(void *source
, int cargc
, char **cargv
) {
17 nick
*np
= (nick
*)source
;
18 struct irc_in_addr sin
;
20 patricia_node_t
*head
, *node
;
24 controlreply(np
, "Syntax: nodecount <IP>");
28 if (ipmask_parse(cargv
[0], &sin
, &bits
) == 0) {
29 controlreply(np
, "Invalid mask.");
34 head
= refnode(iptree
, &sin
, bits
);
38 PATRICIA_WALK(head
, node
) {
39 count
+= node
->usercount
;
42 derefnode(iptree
, head
);
44 controlreply(np
, "%d user(s) found.", count
);