]> jfr.im git - irc/quakenet/newserv.git/blame - authdump/authdump.c
GLINES: fix null pointer deref in trustgline / trustungline
[irc/quakenet/newserv.git] / authdump / authdump.c
CommitLineData
32bb241a
CP
1#include <stdio.h>
2
3#include "../core/schedule.h"
4#include "../authext/authext.h"
5#include "../nick/nick.h"
6#include "../lib/version.h"
7
8MODULE_VERSION("");
9
10static void *authdumpsched;
11
12static void doauthdump(void *arg) {
13 authname *a;
14 nick *np;
15 int i;
16 FILE *fp = fopen("authdump/authdump.txt.1", "w");
17
18 if(!fp)
19 return;
20
21 for(i=0;i<AUTHNAMEHASHSIZE;i++) {
22 for(a=authnametable[i];a;a=a->next) {
23 np = a->nicks;
24 if(!np)
25 continue;
26
27 /* grossly inefficient */
28 fprintf(fp, "%s %lu", np->authname, np->auth->userid);
29 for(;np;np=np->nextbyauthname)
30 fprintf(fp, " %s", np->nick);
31
32 fprintf(fp, "\n");
33 }
34 }
35
36 fclose(fp);
37
38 rename("authdump/authdump.txt.1", "authdump/authdump.txt");
39}
40
41void _init() {
42 authdumpsched = (void *)schedulerecurring(time(NULL), 0, 300, &doauthdump, NULL);
43}
44
45void _fini() {
46 deleteschedule(authdumpsched, &doauthdump, NULL);
47}