From: splidge Date: Thu, 18 Feb 2010 23:42:42 +0000 (+0000) Subject: Added command to inspect authtracker contents. X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/2aaa684cfc57010630be46a56ed339215a4d5f88 Added command to inspect authtracker contents. --- diff --git a/chanserv/authtracker/authtracker.c b/chanserv/authtracker/authtracker.c index 4a5a5a2c..e79914a8 100644 --- a/chanserv/authtracker/authtracker.c +++ b/chanserv/authtracker/authtracker.c @@ -11,12 +11,15 @@ DBModuleIdentifier authtrackerdb; void _init() { authtrackerdb = dbgetid(); + chanservaddcommand("dumpauthtracker",QCMD_DEV,1,at_dumpdb,"Shows servers with dangling authtracker entries.\n",""); at_finddanglingsessions(); } void _fini() { at_hookfini(); nsfreeall(POOL_AUTHTRACKER); + + chanservremovecommand("dumpauthtracker",at_dumpdb); dbfreeid(authtrackerdb); } diff --git a/chanserv/authtracker/authtracker.h b/chanserv/authtracker/authtracker.h index 1e26d69f..0947dccd 100644 --- a/chanserv/authtracker/authtracker.h +++ b/chanserv/authtracker/authtracker.h @@ -21,6 +21,7 @@ void at_lostnick(unsigned int numeric, unsigned long userid, time_t accountts, t int at_foundnick(unsigned int numeric, unsigned long userid, time_t accountts); void at_serverback(unsigned int server); void at_flushghosts(); +int at_dumpdb(void *source, int argc, char **argv); /* authtracker_hooks.c */ unsigned long at_getuserid(nick *np); diff --git a/chanserv/authtracker/authtracker_db.c b/chanserv/authtracker/authtracker_db.c index 127417f5..c6c760dd 100644 --- a/chanserv/authtracker/authtracker_db.c +++ b/chanserv/authtracker/authtracker_db.c @@ -11,6 +11,7 @@ */ #include "authtracker.h" +#include "../chanserv.h" #include "../../core/nsmalloc.h" #include "../../server/server.h" #include "../../irc/irc_config.h" @@ -138,3 +139,25 @@ void at_flushghosts() { at_serverback(i); } } + +int at_dumpdb(void *source, int argc, char **argv) { + nick *np=source; + struct dangling_entry *dep; + unsigned int i,j,k; + + for(i=0;ide[j];dep;dep=dep->next) { + k++; + } + } + chanservsendmessage(np, "Server %d (%s) has %d entries.",i,longtonumeric(i,2),k); + } + } + + chanservstdmessage(np,QM_ENDOFLIST); + + return CMD_OK; +} \ No newline at end of file