Author: LordLuke <lordluke@undernet.org>
[ircu2.10.12-pk.git] / include / ircd_features.h
index e506df6fe9e260b1ce9a2da4739527237be4a389..82397bb9c400ce68f3f75f826525d968aedfb09f 100644 (file)
 struct Client;
 
 enum Feature {
+  /* Misc. features */
   FEAT_LOG,
+  FEAT_DOMAINNAME,
+  FEAT_RELIABLE_CLOCK,
+  FEAT_BUFFERPOOL,
+  FEAT_HAS_FERGUSON_FLUSHER,
+  FEAT_CLIENT_FLOOD,
+  FEAT_SERVER_PORT,
+  FEAT_NODEFAULTMOTD,
+  FEAT_MOTD_BANNER,
+  FEAT_KILL_IPMISMATCH,
+  FEAT_IDLE_FROM_MSG,
+  FEAT_HUB,
+  FEAT_WALLOPS_OPER_ONLY,
+  FEAT_NODNS,
+  FEAT_RANDOM_SEED,
+  FEAT_DEFAULT_LIST_PARAM,
+  FEAT_NICKNAMEHISTORYLENGTH,
+  FEAT_HOST_HIDING,
+  FEAT_HIDDEN_HOST,
 
+  /* features that probably should not be touched */
+  FEAT_KILLCHASETIMELIMIT,
+  FEAT_MAXCHANNELSPERUSER,
+  FEAT_AVBANLEN,
+  FEAT_MAXBANS,
+  FEAT_MAXSILES,
+  FEAT_HANGONGOODLINK,
+  FEAT_HANGONRETRYDELAY,
+  FEAT_CONNECTTIMEOUT,
+  FEAT_TIMESEC,
+  FEAT_MAXIMUM_LINKS,
+  FEAT_PINGFREQUENCY,
+  FEAT_CONNECTFREQUENCY,
+  FEAT_DEFAULTMAXSENDQLENGTH,
+  FEAT_GLINEMAXUSERCOUNT,
+
+  /* Some misc. default paths */
+  FEAT_MPATH,
+  FEAT_RPATH,
+  FEAT_PPATH,
+
+  /* Networking features */
+  FEAT_VIRTUAL_HOST,
+  FEAT_TOS_SERVER,
+  FEAT_TOS_CLIENT,
+  FEAT_POLLS_PER_LOOP,
+
+  /* features that affect all operators */
+  FEAT_CRYPT_OPER_PASSWORD,
   FEAT_OPER_NO_CHAN_LIMIT,
   FEAT_OPER_MODE_LCHAN,
   FEAT_OPER_WALK_THROUGH_LMODES,
@@ -34,10 +82,10 @@ enum Feature {
   FEAT_SHOW_ALL_INVISIBLE_USERS,
   FEAT_UNLIMIT_OPER_QUERY,
   FEAT_LOCAL_KILL_ONLY,
-  FEAT_TOS_SERVER,
-  FEAT_TOS_CLIENT,
   FEAT_CONFIG_OPERCMDS,
+  FEAT_LIST_CHAN,
 
+  /* features that affect global opers on this server */
   FEAT_OPER_KILL,
   FEAT_OPER_REHASH,
   FEAT_OPER_RESTART,
@@ -50,8 +98,12 @@ enum Feature {
   FEAT_OPER_LOPMODE,
   FEAT_OPER_BADCHAN,
   FEAT_OPER_LBADCHAN,
+  FEAT_OPER_SET,
   FEAT_OPERS_SEE_IN_SECRET_CHANNELS,
+  FEAT_OPER_WIDE_GLINE,
+  FEAT_OPER_LIST_CHAN,
 
+  /* features that affect local opers on this server */
   FEAT_LOCOP_KILL,
   FEAT_LOCOP_REHASH,
   FEAT_LOCOP_RESTART,
@@ -60,11 +112,16 @@ enum Feature {
   FEAT_LOCOP_LJUPE,
   FEAT_LOCOP_LOPMODE,
   FEAT_LOCOP_LBADCHAN,
+  FEAT_LOCOP_SET,
   FEAT_LOCOP_SEE_IN_SECRET_CHANNELS,
+  FEAT_LOCOP_WIDE_GLINE,
+  FEAT_LOCOP_LIST_CHAN,
 
   FEAT_LAST_F
 };
 
+extern void feature_init(void);
+
 extern int feature_set(struct Client* from, const char* const* fields,
                       int count);
 extern int feature_reset(struct Client* from, const char* const* fields,