]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/hash.h
mod-python: refactor modeList conversion into separate function
[irc/evilnet/x3.git] / src / hash.h
index 842f7569f6150c92e68bc1c222c9ef0ca37d5e6f..ad469fdcff814db133054905de912f8bc63aa72b 100644 (file)
@@ -60,7 +60,7 @@
 #define FLAGS_LOCOP            0x000002 /* Local operator +o */
 #define FLAGS_INVISIBLE                0x000004 /* invisible +i */
 #define FLAGS_WALLOP           0x000008 /* receives wallops +w */
-#define FLAGS_SERVNOTICE       0x000010 /* receives server notices +s */
+#define FLAGS_DUMMY             0x000010 /* user is not announced to other servers */
 #define FLAGS_DEAF             0x000020 /* deaf +d */
 #define FLAGS_SERVICE          0x000040 /* cannot be kicked, killed or deoped +k */
 #define FLAGS_GLOBAL           0x000080 /* receives global messages +g */
@@ -85,7 +85,6 @@
 #define IsInvisible(x)          ((x)->modes & FLAGS_INVISIBLE)
 #define IsGlobal(x)             ((x)->modes & FLAGS_GLOBAL)
 #define IsWallOp(x)             ((x)->modes & FLAGS_WALLOP)
-#define IsServNotice(x)         ((x)->modes & FLAGS_SERVNOTICE)
 #define IsBotM(x)                      ((x)->modes & FLAGS_BOT)
 #define IsHideChans(x)         ((x)->modes & FLAGS_HIDECHANS)
 #define IsHideIdle(x)          ((x)->modes & FLAGS_HIDEIDLE)
@@ -98,6 +97,7 @@
 #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 IsFakeHost(x)           ((x)->fakehost[0] != '\0')
 #define IsLocal(x)              ((x)->uplink == self)
 
@@ -151,6 +151,7 @@ enum Priv {
   PRIV_SEE_CHAN,        /**< oper can see in secret chans */
   PRIV_PROPAGATE,       /**< propagate oper status */
   PRIV_DISPLAY,         /**< "Is an oper" displayed */
+  PRIV_DISPLAY_MODE,    /**< oper can set +H hide oper */
   PRIV_SEE_OPERS,       /**< display hidden opers */
   PRIV_WIDE_GLINE,      /**< oper can set wider G-lines */
   PRIV_WIDE_ZLINE,      /**< oper can set wider Z-Lines */
@@ -164,6 +165,11 @@ enum Priv {
   PRIV_HIDE_IDLE,       /**< oper can set/unset user mode +I */
   PRIV_XTRAOP,          /**< oper can set/unset user mode +X */
   PRIV_HIDE_CHANNELS,   /**< oper can set/unset user mode +n */
+  PRIV_FREEFORM,        /**< oper can set any host on themseves using set host
+                              as long as its a valid host */
+  PRIV_REMOVE,          /**< oper can force remove deactivated glines,
+                             shuns and zlines. */
+  PRIV_SPAMFILTER,      /**< oper can set spamfilters via SPAMFILTER */
   PRIV_LAST_PRIV        /**< number of privileges */
 };
 
@@ -224,6 +230,7 @@ struct userNode {
     char *version_reply;          /* only filled in if a version query was triggered */
 
     time_t timestamp;             /* Time of last nick change */
+    time_t idle_since;
     struct server *uplink;        /* Server that user is connected to */
     struct modeList channels;     /* Vector of channels user is in */
     struct Privs   privs;
@@ -299,7 +306,7 @@ struct modeNode {
 struct server {
     char name[SERVERNAMEMAX+1];
     time_t boot;
-    time_t link;
+    time_t link_time;
     char description[SERVERDESCRIPTMAX+1];
 #ifdef WITH_PROTOCOL_P10
     char numeric[COMBO_NUMERIC_LEN+1];
@@ -364,9 +371,10 @@ struct server* GetServerH(const char *name); /* using full name */
 struct userNode* GetUserH(const char *nick);   /* using nick */
 struct chanNode* GetChannel(const char *name);
 struct modeNode* GetUserMode(struct chanNode* channel, struct userNode* user);
+int userList_contains(struct userList *list, struct userNode *user);
 unsigned int IsUserP(struct userNode *user);
 
-typedef void (*server_link_func_t) (struct server *server);
+typedef int (*server_link_func_t) (struct server *server);
 void reg_server_link_func(server_link_func_t handler);
 
 typedef int (*new_user_func_t) (struct userNode *user);