]> jfr.im git - irc/quakenet/newserv.git/blame - chanserv/authtracker/authtracker.c
TRUSTS: require sqlite
[irc/quakenet/newserv.git] / chanserv / authtracker / authtracker.c
CommitLineData
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"
7f32dbdf
P
7#include "../../lib/version.h"
8
9MODULE_VERSION(QVERSION);
84563ebd 10
524d28f9 11void at_newnick(int, void *);
ee8cd7d0 12DBModuleIdentifier authtrackerdb;
524d28f9 13
84563ebd 14void _init() {
ee8cd7d0 15 authtrackerdb = dbgetid();
b3565978 16
2aaa684c 17 chanservaddcommand("dumpauthtracker",QCMD_DEV,1,at_dumpdb,"Shows servers with dangling authtracker entries.\n","");
84563ebd 18 at_finddanglingsessions();
19}
20
21void _fini() {
22 at_hookfini();
23 nsfreeall(POOL_AUTHTRACKER);
2aaa684c 24
25 chanservremovecommand("dumpauthtracker",at_dumpdb);
b3565978 26
ee8cd7d0 27 dbfreeid(authtrackerdb);
84563ebd 28}
29
30void 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}