X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/426128904d51722d64fd2c340db8d315c981db0e..cb5aa4cdd6af4114b18db464f022ef99a44304d7:/nick/nick.h diff --git a/nick/nick.h b/nick/nick.h index 602fca97..6adfa0e4 100644 --- a/nick/nick.h +++ b/nick/nick.h @@ -10,7 +10,7 @@ #include "../server/server.h" #include "../lib/base64.h" #include "../lib/irc_ipv6.h" -#include "../lib/patricia.h" +#include "../patricia/patricia.h" #include "../authext/authext.h" @@ -33,8 +33,12 @@ #define UMODE_SETHOST 0x0400 #define UMODE_REGPRIV 0x0800 #define UMODE_HIDEIDLE 0x1000 +#define UMODE_PARANOID 0x2000 -#define UMODE_ALL 0x1FFF +#define UMODE_ALL 0x3FFF + +#define AFLAG_STAFF 0x0001 +#define AFLAG_DEVELOPER 0x0002 #define IsInvisible(x) ((x)->umodes & UMODE_INV) #define IsWallops(x) ((x)->umodes & UMODE_WALLOPS) @@ -49,6 +53,7 @@ #define IsSetHost(x) ((x)->umodes & UMODE_SETHOST) #define IsRegPriv(x) ((x)->umodes & UMODE_REGPRIV) #define IsHideIdle(x) ((x)->umodes & UMODE_HIDEIDLE) +#define IsParanoid(x) ((x)->umodes & UMODE_PARANOID) #define SetInvisible(x) ((x)->umodes |= UMODE_INV) #define SetWallops(x) ((x)->umodes |= UMODE_WALLOPS) @@ -63,6 +68,7 @@ #define SetSetHost(x) ((x)->umodes |= UMODE_SETHOST) #define SetRegPriv(x) ((x)->umodes |= UMODE_REGPRIV) #define SetHideIdle(x) ((x)->umodes |= UMODE_HIDEIDLE) +#define SetParanoid(x) ((x)->umodes |= UMODE_PARANOID) #define ClearInvisible(x) ((x)->umodes &= ~UMODE_INV) #define ClearWallops(x) ((x)->umodes &= ~UMODE_WALLOPS) @@ -77,6 +83,16 @@ #define ClearSetHost(x) ((x)->umodes &= ~UMODE_SETHOST) #define ClearRegPriv(x) ((x)->umodes &= ~UMODE_REGPRIV) #define ClearHideIdle(x) ((x)->umodes &= ~UMODE_HIDEIDLE) +#define ClearParanoid(x) ((x)->umodes &= ~UMODE_PARANOID) + +#define IsStaff(x) ((x)->umodes & AFLAG_STAFF) +#define IsDeveloper(x) ((x)->umodes & AFLAG_DEVELOPER) + +#define SetStaff(x) ((x)->umodes |= AFLAG_STAFF) +#define SetDeveloper(x) ((x)->umodes |= AFLAG_DEVELOPER) + +#define ClearStaff(x) ((x)->umodes &= ~AFLAG_STAFF) +#define ClearDeveloper(x) ((x)->umodes &= ~AFLAG_DEVELOPER) typedef struct host { sstring *name; @@ -107,6 +123,7 @@ typedef struct nick { authname *auth; /* This requires User ID numbers to work */ time_t timestamp; time_t accountts; + flag_t accountflags; patricia_node_t *ipnode; unsigned int marker; struct nick *next; @@ -129,7 +146,7 @@ extern nick **servernicks[MAXSERVERS]; extern host *hosttable[HOSTHASHSIZE]; extern realname *realnametable[REALNAMEHASHSIZE]; extern const flag umodeflags[]; -extern patricia_tree_t *iptree; +extern const flag accountflags[]; #define MAXNUMERIC 0x3FFFFFFF @@ -162,9 +179,7 @@ int registernickext(const char *name); int findnickext(const char *name); void releasenickext(int index); char *visiblehostmask(nick *np, char *buf); -int registernodeext(const char *name); -int findnodeext(const char *name); -void releasenodeext(int index); +char *visibleuserhost(nick *np, char *buf); /* nickhandlers.c functions */ int handlenickmsg(void *source, int cargc, char **cargv); @@ -183,6 +198,7 @@ nick *getnickbynumericstr(char *numericstr); /* nickhelpers.c functions */ void initnickhelpers(); +void fininickhelpers(); host *findhost(const char *hostname); host *findorcreatehost(const char *hostname); void releasehost(host *hp);