]> jfr.im git - irc/quakenet/newserv.git/blame_incremental - authext/authext.h
CHANSERV: authtracker now keeps 240 days history
[irc/quakenet/newserv.git] / authext / authext.h
... / ...
CommitLineData
1#ifndef __AUTHEXT_H
2#define __AUTHEXT_H
3
4#include "../irc/irc_config.h"
5#include "../lib/flags.h"
6
7#include <sys/types.h>
8
9#define MAXAUTHNAMEEXTS 5
10
11struct nick;
12
13typedef struct authname {
14 unsigned long userid;
15 int usercount;
16 unsigned int marker;
17 struct nick *nicks;
18 struct authname *next, *nextbyname;
19 unsigned int namebucket;
20 u_int64_t flags;
21 char name[ACCOUNTLEN+1];
22 /* These are extensions only used by other modules */
23 void *exts[MAXAUTHNAMEEXTS];
24} authname;
25
26#define AUTHNAMEHASHSIZE 60000
27
28extern authname *authnametable[AUTHNAMEHASHSIZE];
29
30/* Allocators */
31authname *newauthname(void);
32void freeauthname (authname *hp);
33
34/* EXT management */
35int registerauthnameext(const char *name, int persistant);
36int findauthnameext(const char *name);
37void releaseauthnameext(int index);
38
39/* Actual user commands */
40authname *findauthname(unsigned long userid);
41authname *findauthnamebyname(const char *name);
42authname *findorcreateauthname(unsigned long userid, const char *name);
43void releaseauthname(authname *anp);
44
45/* Marker */
46unsigned int nextauthnamemarker(void);
47
48authname *getauthbyname(const char *name);
49
50#endif