X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/74620ebafeb4a94b61a3747e39d27a4ec7a9fe5a..f28b61f26dec986fb87602b5c75ad812b8297d85:/authext/authext.h diff --git a/authext/authext.h b/authext/authext.h index ddc09c4f..81e58616 100644 --- a/authext/authext.h +++ b/authext/authext.h @@ -1,6 +1,11 @@ #ifndef __AUTHEXT_H #define __AUTHEXT_H +#include "../irc/irc_config.h" +#include "../lib/flags.h" + +#include + #define MAXAUTHNAMEEXTS 5 struct nick; @@ -10,7 +15,10 @@ typedef struct authname { int usercount; unsigned int marker; struct nick *nicks; - struct authname *next; + struct authname *next, *nextbyname; + unsigned int namebucket; + u_int64_t flags; + char name[ACCOUNTLEN+1]; /* These are extensions only used by other modules */ void *exts[MAXAUTHNAMEEXTS]; } authname; @@ -20,20 +28,23 @@ typedef struct authname { extern authname *authnametable[AUTHNAMEHASHSIZE]; /* Allocators */ -authname *newauthname(); +authname *newauthname(void); void freeauthname (authname *hp); /* EXT management */ -int registerauthnameext(const char *name); +int registerauthnameext(const char *name, int persistant); int findauthnameext(const char *name); void releaseauthnameext(int index); /* Actual user commands */ authname *findauthname(unsigned long userid); -authname *findorcreateauthname(unsigned long userid); +authname *findauthnamebyname(const char *name); +authname *findorcreateauthname(unsigned long userid, const char *name); void releaseauthname(authname *anp); /* Marker */ -unsigned int nextauthnamemarker(); +unsigned int nextauthnamemarker(void); + +authname *getauthbyname(const char *name); #endif