]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/hash.h
Merged in srvx 1.4-RC1 changes. DNSBL parts are missing as it hasnt even been impleme...
[irc/evilnet/x3.git] / src / hash.h
index 8bfee089aecad76a9e3cefcc6b5f5e32e76f61f6..63966c37cafedc77f1bbb9f511f8984593b45797 100644 (file)
@@ -5,7 +5,7 @@
  *
  * x3 is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -55,7 +55,7 @@
 #define MODE_UPASS             0x08000000 /* +U userpass */
 #define MODE_REMOVE             0x80000000
 
-#define FLAGS_OPER             0x0001 /* Operator +O */
+#define FLAGS_OPER             0x0001 /* global operator +o */
 #define FLAGS_LOCOP            0x0002 /* Local operator +o */
 #define FLAGS_INVISIBLE                0x0004 /* invisible +i */
 #define FLAGS_WALLOP           0x0008 /* receives wallops +w */
 #define FLAGS_DEAF             0x0020 /* deaf +d */
 #define FLAGS_SERVICE          0x0040 /* cannot be kicked, killed or deoped +k */
 #define FLAGS_GLOBAL           0x0080 /* receives global messages +g */
-
-// sethost - reed/apples
-// #define FLAGS_HELPER                0x0100 /* (network?) helper +h */
 #define FLAGS_SETHOST          0x0100 /* sethost +h */
-
 #define FLAGS_PERSISTENT       0x0200 /* for reserved nicks, this isn't just one-shot */
 #define FLAGS_GAGGED           0x0400 /* for gagged users */
 #define FLAGS_AWAY             0x0800 /* for away users */
 #define FLAGS_HIDDEN_HOST       0x2000 /* user's host is masked by their account */
 #define FLAGS_REGNICK           0x4000 /* user owns their current nick */
 #define FLAGS_REGISTERING      0x8000 /* user has issued account register command, is waiting for email cookie */
+#define FLAGS_DUMMY             0x10000 /* user is not announced to other servers */
+#define FLAGS_NOIDLE            0x20000 /* hide idle time in whois +I */
+#define FLAGS_NOCHAN            0x40000 /* hide the users channels +n */
 
 #define IsOper(x)               ((x)->modes & FLAGS_OPER)
 #define IsService(x)            ((x)->modes & FLAGS_SERVICE)
 #define IsDeaf(x)               ((x)->modes & FLAGS_DEAF)
 #define IsInvisible(x)          ((x)->modes & FLAGS_INVISIBLE)
 #define IsGlobal(x)             ((x)->modes & FLAGS_GLOBAL)
+#define IsNoChan(x)             ((x)->modes & FLAGS_NOCHAN)
 #define IsWallOp(x)             ((x)->modes & FLAGS_WALLOP)
 #define IsServNotice(x)         ((x)->modes & FLAGS_SERVNOTICE)
-
-// sethost - reed/apples
-// #define IsHelperIrcu(x)         ((x)->modes & FLAGS_HELPER)
 #define IsSetHost(x)           ((x)->modes & FLAGS_SETHOST)
-
 #define IsGagged(x)             ((x)->modes & FLAGS_GAGGED)
 #define IsPersistent(x)         ((x)->modes & FLAGS_PERSISTENT) 
 #define IsAway(x)               ((x)->modes & FLAGS_AWAY)
@@ -95,6 +91,8 @@
 #define IsHiddenHost(x)         ((x)->modes & FLAGS_HIDDEN_HOST)
 #define IsReggedNick(x)         ((x)->modes & FLAGS_REGNICK)
 #define IsRegistering(x)       ((x)->modes & FLAGS_REGISTERING)
+#define IsDummy(x)              ((x)->modes & FLAGS_DUMMY)
+#define IsNoIdle(x)             ((x)->modes & FLAGS_NOIDLE)
 #define IsFakeHost(x)           ((x)->fakehost[0] != '\0')
 #define IsLocal(x)              ((x)->uplink == self)
 
 #define REALLEN         50
 #define TOPICLEN        250
 #define CHANNELLEN      200
+#define MARKLEN         20
 #define MAXOPLEVEL      999
 
 #define MAXMODEPARAMS  6
@@ -188,6 +187,7 @@ struct userNode {
     unsigned int num_local : 18;
 #endif
     unsigned int loc;             /* Is user connecting via LOC? */
+    unsigned int no_notice;       /* Does the users client not see notices? */
     unsigned int dead : 1;        /* Is user waiting to be recycled? */
     irc_in_addr_t ip;             /* User's IP address */
     long modes;                   /* user flags +isw etc... */
@@ -208,9 +208,12 @@ struct userNode {
     int dma_code;
     int area_code;
     
+    char *mark;                   /* only filled if they are marked */
+    char *version_reply;          /* only filled in if a version query was triggered */
 
     time_t timestamp;             /* Time of last nick change */
     struct server *uplink;        /* Server that user is connected to */
+    time_t idle_since;
     struct modeList channels;     /* Vector of channels user is in */
     struct Privs   privs;