]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authtracker/authtracker.c
CHANSERV: better batcher error handling for expired accounts/accounts with no email.
[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 #include "../../lib/version.h"
8
9 MODULE_VERSION(QVERSION);
10
11 void at_newnick(int, void *);
12 DBModuleIdentifier authtrackerdb;
13
14 void _init() {
15 authtrackerdb = dbgetid();
16
17 chanservaddcommand("dumpauthtracker",QCMD_DEV,1,at_dumpdb,"Shows servers with dangling authtracker entries.\n","");
18 at_finddanglingsessions();
19 }
20
21 void _fini() {
22 at_hookfini();
23 nsfreeall(POOL_AUTHTRACKER);
24
25 chanservremovecommand("dumpauthtracker",at_dumpdb);
26
27 dbfreeid(authtrackerdb);
28 }
29
30 void at_dbloaded(int hooknum, void *arg) {
31 unsigned int i;
32 nick *np;
33
34 if (!(chanserv_init_status == CS_INIT_READY)) {
35 registerhook(HOOK_CHANSERV_RUNNING, at_dbloaded);
36 return;
37 }
38
39 if (hooknum)
40 deregisterhook(HOOK_CHANSERV_RUNNING, at_dbloaded);
41
42 for (i=0;i<NICKHASHSIZE;i++) {
43 for (np=nicktable[i];np;np=np->next) {
44 at_newnick(0, np);
45 }
46 }
47
48 Error("authtracker",ERR_INFO,"Authtracker running");
49 at_flushghosts();
50 at_hookinit();
51 }