]>
Commit | Line | Data |
---|---|---|
84563ebd | 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 | ||
524d28f9 | 8 | void at_newnick(int, void *); |
ee8cd7d0 | 9 | DBModuleIdentifier authtrackerdb; |
524d28f9 | 10 | |
84563ebd | 11 | void _init() { |
ee8cd7d0 | 12 | authtrackerdb = dbgetid(); |
b3565978 | 13 | |
2aaa684c | 14 | chanservaddcommand("dumpauthtracker",QCMD_DEV,1,at_dumpdb,"Shows servers with dangling authtracker entries.\n",""); |
84563ebd | 15 | at_finddanglingsessions(); |
16 | } | |
17 | ||
18 | void _fini() { | |
19 | at_hookfini(); | |
20 | nsfreeall(POOL_AUTHTRACKER); | |
2aaa684c | 21 | |
22 | chanservremovecommand("dumpauthtracker",at_dumpdb); | |
b3565978 | 23 | |
ee8cd7d0 | 24 | dbfreeid(authtrackerdb); |
84563ebd | 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 | } |