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);
}
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);
*/
#include "authtracker.h"
+#include "../chanserv.h"
#include "../../core/nsmalloc.h"
#include "../../server/server.h"
#include "../../irc/irc_config.h"
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;i<MAXSERVERS;i++) {
+ if (ds[i]) {
+ k=0;
+ for(j=0;j<DANGLING_HASHSIZE;j++) {
+ for (dep=ds[i]->de[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