]> jfr.im git - irc/quakenet/newserv.git/blobdiff - nick/nick.h
Various changes to support authname being stored inside the authext.
[irc/quakenet/newserv.git] / nick / nick.h
index 5b2c7fc39235a1521ae33cf47668c3b0f08f4d9e..c24c0089f087021267512d7a4d8264eccd63ac99 100644 (file)
 #define UMODE_ALL       0x3FFF
 
 #define AFLAG_STAFF     0x0001
-#define AFLAG_DEVELOPER 0x0002
+#define AFLAG_SUPPORT   0x0002
+#define AFLAG_OPER      0x0004
+#define AFLAG_ADMIN     0x0008
+#define AFLAG_DEVELOPER 0x0010
+
+#define AFLAG_ALL       0x001F
 
 #define IsInvisible(x)    ((x)->umodes & UMODE_INV)
 #define IsWallops(x)      ((x)->umodes & UMODE_WALLOPS)
 #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 IsStaff(x)           ((x)->flags & AFLAG_STAFF)
+#define IsDeveloper(x)       ((x)->flags & AFLAG_DEVELOPER)
+#define IsSupport(x)         ((x)->flags & AFLAG_SUPPORT)
+#define IsAdmin(x)           ((x)->flags & AFLAG_ADMIN)
+#define IsOperFlag(x)        ((x)->flags & AFLAG_OPER)
 
-#define SetStaff(x)          ((x)->umodes |= AFLAG_STAFF)
-#define SetDeveloper(x)      ((x)->umodes |= AFLAG_DEVELOPER)
+#define SetStaff(x)          ((x)->flags |= AFLAG_STAFF)
+#define SetDeveloper(x)      ((x)->flags |= AFLAG_DEVELOPER)
+#define SetSupport(x)        ((x)->flags |= AFLAG_SUPPORT)
+#define SetAdmin(x)          ((x)->flags |= AFLAG_ADMIN)
+#define SetOperFlag(x)       ((x)->flags |= AFLAG_OPER)
 
-#define ClearStaff(x)        ((x)->umodes &= ~AFLAG_STAFF)
-#define ClearDeveloper(x)    ((x)->umodes &= ~AFLAG_DEVELOPER)
+#define ClearStaff(x)        ((x)->flags &= ~AFLAG_STAFF)
+#define ClearDeveloper(x)    ((x)->flags &= ~AFLAG_DEVELOPER)
+#define ClearSupport(x)      ((x)->flags &= ~AFLAG_SUPPORT)
+#define ClearAdmin(x)        ((x)->flags &= ~AFLAG_ADMIN)
+#define ClearOperFlag(x)     ((x)->flags &= ~AFLAG_OPER)
 
 typedef struct host {
   sstring *name;
@@ -118,8 +132,9 @@ typedef struct nick {
   realname *realname;
   sstring *shident;  /* +h users: fake ident/host goes here */
   sstring *sethost;
+  sstring *opername;
   flag_t umodes;
-  char authname[ACCOUNTLEN+1];
+  char *authname;
   authname *auth; /* This requires User ID numbers to work */
   time_t timestamp;
   time_t accountts;
@@ -188,6 +203,7 @@ int handleusermodemsg(void *source, int cargc, char **cargv);
 int handlewhoismsg(void *source, int cargc, char **cargv);
 int handleaccountmsg(void *source, int cargc, char **cargv);
 int handlestatsmsg(void *source, int cargc, char **cargv);
+int handleprivmsg(void *source, int cargc, char **cargv);
 
 /* These functions have been replaced by macros 
 nick **gethandlebynumeric(long numeric);