* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id$
+ */
+/** @file
+ * @brief Public interfaces and declarations for dealing with configurable features.
+ * @version $Id$
*/
struct Client;
+struct StatDesc;
+
+extern struct Client his;
+/** Contains all feature settings for ircu.
+ * For documentation of each, see doc/readme.features.
+ */
enum Feature {
/* Misc. features */
FEAT_LOG,
FEAT_SERVER_PORT,
FEAT_NODEFAULTMOTD,
FEAT_MOTD_BANNER,
+ FEAT_PROVIDER,
FEAT_KILL_IPMISMATCH,
FEAT_IDLE_FROM_MSG,
FEAT_HUB,
FEAT_NICKNAMEHISTORYLENGTH,
FEAT_HOST_HIDING,
FEAT_HIDDEN_HOST,
+ FEAT_HIDDEN_IP,
+ FEAT_CONNEXIT_NOTICES,
+ FEAT_OPLEVELS,
+ FEAT_ZANNELS,
+ FEAT_LOCAL_CHANNELS,
+ FEAT_TOPIC_BURST,
/* features that probably should not be touched */
FEAT_KILLCHASETIMELIMIT,
FEAT_MAXCHANNELSPERUSER,
+ FEAT_NICKLEN,
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,
+ FEAT_SOCKSENDBUF,
+ FEAT_SOCKRECVBUF,
+ FEAT_IPCHECK_CLONE_LIMIT,
+ FEAT_IPCHECK_CLONE_PERIOD,
+ FEAT_IPCHECK_CLONE_DELAY,
+ FEAT_CHANNELLEN,
/* Some misc. default paths */
FEAT_MPATH,
FEAT_PPATH,
/* Networking features */
- FEAT_VIRTUAL_HOST,
FEAT_TOS_SERVER,
FEAT_TOS_CLIENT,
FEAT_POLLS_PER_LOOP,
+ FEAT_IRCD_RES_RETRIES,
+ FEAT_IRCD_RES_TIMEOUT,
+ FEAT_AUTH_TIMEOUT,
+ FEAT_ANNOUNCE_INVITES,
/* features that affect all operators */
- FEAT_CRYPT_OPER_PASSWORD,
- FEAT_OPER_NO_CHAN_LIMIT,
- FEAT_OPER_MODE_LCHAN,
- FEAT_OPER_WALK_THROUGH_LMODES,
- FEAT_NO_OPER_DEOP_LCHAN,
- FEAT_SHOW_INVISIBLE_USERS,
- FEAT_SHOW_ALL_INVISIBLE_USERS,
- FEAT_UNLIMIT_OPER_QUERY,
- FEAT_LOCAL_KILL_ONLY,
FEAT_CONFIG_OPERCMDS,
- FEAT_LIST_CHAN,
-
- /* features that affect global opers on this server */
- FEAT_OPER_KILL,
- FEAT_OPER_REHASH,
- FEAT_OPER_RESTART,
- FEAT_OPER_DIE,
- FEAT_OPER_GLINE,
- FEAT_OPER_LGLINE,
- FEAT_OPER_JUPE,
- FEAT_OPER_LJUPE,
- FEAT_OPER_OPMODE,
- FEAT_OPER_LOPMODE,
- FEAT_OPER_BADCHAN,
- FEAT_OPER_LBADCHAN,
- FEAT_OPER_SET,
- FEAT_OPERS_SEE_IN_SECRET_CHANNELS,
- FEAT_OPER_WIDE_GLINE,
-
- /* features that affect local opers on this server */
- FEAT_LOCOP_KILL,
- FEAT_LOCOP_REHASH,
- FEAT_LOCOP_RESTART,
- FEAT_LOCOP_DIE,
- FEAT_LOCOP_LGLINE,
- FEAT_LOCOP_LJUPE,
- FEAT_LOCOP_LOPMODE,
- FEAT_LOCOP_LBADCHAN,
- FEAT_LOCOP_SET,
- FEAT_LOCOP_SEE_IN_SECRET_CHANNELS,
- FEAT_LOCOP_WIDE_GLINE,
+
+ /* HEAD_IN_SAND Features */
+ FEAT_HIS_SNOTICES,
+ FEAT_HIS_SNOTICES_OPER_ONLY,
+ FEAT_HIS_DEBUG_OPER_ONLY,
+ FEAT_HIS_WALLOPS,
+ FEAT_HIS_MAP,
+ FEAT_HIS_LINKS,
+ FEAT_HIS_TRACE,
+ FEAT_HIS_STATS_a,
+ FEAT_HIS_STATS_c,
+ FEAT_HIS_STATS_d,
+ FEAT_HIS_STATS_e,
+ FEAT_HIS_STATS_f,
+ FEAT_HIS_STATS_g,
+ FEAT_HIS_STATS_i,
+ FEAT_HIS_STATS_j,
+ FEAT_HIS_STATS_J,
+ FEAT_HIS_STATS_k,
+ FEAT_HIS_STATS_l,
+ FEAT_HIS_STATS_L,
+ FEAT_HIS_STATS_M,
+ FEAT_HIS_STATS_m,
+ FEAT_HIS_STATS_o,
+ FEAT_HIS_STATS_p,
+ FEAT_HIS_STATS_q,
+ FEAT_HIS_STATS_R,
+ FEAT_HIS_STATS_r,
+ FEAT_HIS_STATS_t,
+ FEAT_HIS_STATS_T,
+ FEAT_HIS_STATS_u,
+ FEAT_HIS_STATS_U,
+ FEAT_HIS_STATS_v,
+ FEAT_HIS_STATS_w,
+ FEAT_HIS_STATS_x,
+ FEAT_HIS_STATS_y,
+ FEAT_HIS_STATS_z,
+ FEAT_HIS_STATS_IAUTH,
+ FEAT_HIS_WHOIS_SERVERNAME,
+ FEAT_HIS_WHOIS_IDLETIME,
+ FEAT_HIS_WHOIS_LOCALCHAN,
+ FEAT_HIS_WHO_SERVERNAME,
+ FEAT_HIS_WHO_HOPCOUNT,
+ FEAT_HIS_MODEWHO,
+ FEAT_HIS_BANWHO,
+ FEAT_HIS_KILLWHO,
+ FEAT_HIS_REWRITE,
+ FEAT_HIS_REMOTE,
+ FEAT_HIS_NETSPLIT,
+ FEAT_HIS_SERVERNAME,
+ FEAT_HIS_SERVERINFO,
+ FEAT_HIS_URLSERVERS,
+
+ /* Misc. random stuff */
+ FEAT_NETWORK,
+ FEAT_URL_CLIENTS,
FEAT_LAST_F
};
extern void feature_unmark(void);
extern void feature_mark(void);
-extern void feature_report(struct Client* to);
+extern void feature_report(struct Client* to, const struct StatDesc* sd,
+ char* param);
extern int feature_int(enum Feature feat);
extern int feature_bool(enum Feature feat);