X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fircd_features.h;h=42c54ac94bf933fb2c2842aebc79206e76621070;hb=refs%2Fheads%2Fupstream-ssl;hp=ddb31db985c900d2998feeb1e41c0ff13c0e520a;hpb=cc05a230ac079fa15a2e43e6e68ef7126128cefd;p=ircu2.10.12-pk.git diff --git a/include/ircd_features.h b/include/ircd_features.h index ddb31db..42c54ac 100644 --- a/include/ircd_features.h +++ b/include/ircd_features.h @@ -17,12 +17,20 @@ * 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, @@ -34,6 +42,7 @@ enum Feature { FEAT_SERVER_PORT, FEAT_NODEFAULTMOTD, FEAT_MOTD_BANNER, + FEAT_PROVIDER, FEAT_KILL_IPMISMATCH, FEAT_IDLE_FROM_MSG, FEAT_HUB, @@ -44,22 +53,35 @@ enum Feature { FEAT_NICKNAMEHISTORYLENGTH, FEAT_HOST_HIDING, FEAT_HIDDEN_HOST, + FEAT_HIDDEN_IP, + FEAT_CONNEXIT_NOTICES, + FEAT_OPLEVELS, + FEAT_ZANNELS, + FEAT_LOCAL_CHANNELS, + FEAT_TOPIC_BURST, + FEAT_DISABLE_GLINES, /* 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, @@ -67,52 +89,73 @@ enum Feature { 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, - /* 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_URLREG, FEAT_LAST_F }; @@ -129,7 +172,8 @@ extern int feature_get(struct Client* from, const char* const* fields, 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);