]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authtracker/authtracker.c
Added command to inspect authtracker contents.
[irc/quakenet/newserv.git] / chanserv / authtracker / authtracker.c
1
2 #include "../chanserv.h"
3 #include "authtracker.h"
4 #include "../../core/nsmalloc.h"
5 #include "../../core/hooks.h"
6 #include "../../core/error.h"
7
8 void at_newnick(int, void *);
9 DBModuleIdentifier authtrackerdb;
10
11 void _init() {
12 authtrackerdb = dbgetid();
13
14 chanservaddcommand("dumpauthtracker",QCMD_DEV,1,at_dumpdb,"Shows servers with dangling authtracker entries.\n","");
15 at_finddanglingsessions();
16 }
17
18 void _fini() {
19 at_hookfini();
20 nsfreeall(POOL_AUTHTRACKER);
21
22 chanservremovecommand("dumpauthtracker",at_dumpdb);
23
24 dbfreeid(authtrackerdb);
25 }
26
27 void at_dbloaded(int hooknum, void *arg) {
28 unsigned int i;
29 nick *np;
30
31 if (!(chanserv_init_status == CS_INIT_READY)) {
32 registerhook(HOOK_CHANSERV_RUNNING, at_dbloaded);
33 return;
34 }
35
36 if (hooknum)
37 deregisterhook(HOOK_CHANSERV_RUNNING, at_dbloaded);
38
39 for (i=0;i<NICKHASHSIZE;i++) {
40 for (np=nicktable[i];np;np=np->next) {
41 at_newnick(0, np);
42 }
43 }
44
45 Error("authtracker",ERR_INFO,"Authtracker running");
46 at_flushghosts();
47 at_hookinit();
48 }