]> jfr.im git - irc/quakenet/newserv.git/blob - chanserv/authtracker/authtracker.c
4a5a5a2cfcbf9e4e5bd63c56ff50a56c41dc65cd
[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 at_finddanglingsessions();
15 }
16
17 void _fini() {
18 at_hookfini();
19 nsfreeall(POOL_AUTHTRACKER);
20
21 dbfreeid(authtrackerdb);
22 }
23
24 void at_dbloaded(int hooknum, void *arg) {
25 unsigned int i;
26 nick *np;
27
28 if (!(chanserv_init_status == CS_INIT_READY)) {
29 registerhook(HOOK_CHANSERV_RUNNING, at_dbloaded);
30 return;
31 }
32
33 if (hooknum)
34 deregisterhook(HOOK_CHANSERV_RUNNING, at_dbloaded);
35
36 for (i=0;i<NICKHASHSIZE;i++) {
37 for (np=nicktable[i];np;np=np->next) {
38 at_newnick(0, np);
39 }
40 }
41
42 Error("authtracker",ERR_INFO,"Authtracker running");
43 at_flushghosts();
44 at_hookinit();
45 }