From: Chris Porter Date: Wed, 25 Jun 2014 19:34:58 +0000 (+0100) Subject: TRUSTS: add support for trustlist by Q account, and allow the relay to use it. X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/b64178fecdb1595793ca0c222284f19ef64ec937 TRUSTS: add support for trustlist by Q account, and allow the relay to use it. --- diff --git a/trusts/trusts_commands.c b/trusts/trusts_commands.c index 9fd092d3..060cd3f4 100644 --- a/trusts/trusts_commands.c +++ b/trusts/trusts_commands.c @@ -1,5 +1,7 @@ #include #include +#include +#include #include "../lib/version.h" #include "../control/control.h" #include "../lib/irc_string.h" @@ -220,6 +222,7 @@ static int trusts_cmdtrustlist(void *source, int cargc, char **cargv) { struct irc_in_addr ip; unsigned char bits; int showchildren; + char *cmpbuf; if(cargc < 1) return CMD_USAGE; @@ -254,9 +257,21 @@ static int trusts_cmdtrustlist(void *source, int cargc, char **cargv) { return CMD_OK; } + if(name[0] == '&') { + int size = strlen(name) + strlen("Qwhois") + 1; + cmpbuf = alloca(size); + snprintf(cmpbuf, size, "Qwhois%s", name); + } else { + cmpbuf = NULL; + } + for(tg=tglist;tg;tg=tg->next) { - if(match(name, tg->name->content)) + if(cmpbuf) { + if(!tg->contact->content || strcasecmp(cmpbuf, tg->contact->content)) + continue; + } else if(match(name, tg->name->content)) { continue; + } displaygroup(sender, tg, showchildren); if(--remaining == 0) { @@ -332,7 +347,7 @@ static void registercommands(int hooknum, void *arg) { return; commandsregistered = 1; - registercontrolhelpcmd("trustlist", NO_OPER, 2, trusts_cmdtrustlist, "Usage: trustlist [-v] <#id|name|IP>\nShows trust data for the specified trust group."); + registercontrolhelpcmd("trustlist", NO_RELAY, 2, trusts_cmdtrustlist, "Usage: trustlist [-v] <#id|name|IP|&qid>\nShows trust data for the specified trust group."); registercontrolhelpcmd("trustglinesuggest", NO_OPER, 1, trusts_cmdtrustglinesuggest, "Usage: trustglinesuggest \nSuggests glines for the specified hostmask."); registercontrolhelpcmd("trustspew", NO_OPER, 1, trusts_cmdtrustspew, "Usage: trustspew <#id|name>\nShows currently connected users for the specified trust group."); }