/** Sets a feature to the given value.
* @param[in] from Client trying to set parameters.
* @param[in] fields Array of parameters to set.
/** Sets a feature to the given value.
* @param[in] from Client trying to set parameters.
* @param[in] fields Array of parameters to set.
F_S(PROVIDER, FEAT_NULL, 0, 0),
F_B(KILL_IPMISMATCH, FEAT_OPER, 0, 0),
F_B(IDLE_FROM_MSG, 0, 1, 0),
F_S(PROVIDER, FEAT_NULL, 0, 0),
F_B(KILL_IPMISMATCH, FEAT_OPER, 0, 0),
F_B(IDLE_FROM_MSG, 0, 1, 0),
F_B(WALLOPS_OPER_ONLY, 0, 0, 0),
F_B(NODNS, 0, 0, 0),
F_N(RANDOM_SEED, FEAT_NODISP, random_seed_set, 0, 0, 0, 0, 0, 0),
F_B(WALLOPS_OPER_ONLY, 0, 0, 0),
F_B(NODNS, 0, 0, 0),
F_N(RANDOM_SEED, FEAT_NODISP, random_seed_set, 0, 0, 0, 0, 0, 0),
F_B(ZANNELS, 0, 1, 0),
F_B(LOCAL_CHANNELS, 0, 1, 0),
F_B(TOPIC_BURST, 0, 0, 0),
F_B(ZANNELS, 0, 1, 0),
F_B(LOCAL_CHANNELS, 0, 1, 0),
F_B(TOPIC_BURST, 0, 0, 0),
/* features that probably should not be touched */
F_I(KILLCHASETIMELIMIT, 0, 30, 0),
F_I(MAXCHANNELSPERUSER, 0, 10, 0),
F_I(NICKLEN, 0, 12, 0),
F_I(AVBANLEN, 0, 40, 0),
/* features that probably should not be touched */
F_I(KILLCHASETIMELIMIT, 0, 30, 0),
F_I(MAXCHANNELSPERUSER, 0, 10, 0),
F_I(NICKLEN, 0, 12, 0),
F_I(AVBANLEN, 0, 40, 0),
- F_I(MAXBANS, 0, 45, 0),
- F_I(MAXSILES, 0, 15, 0),
+ F_I(MAXBANS, 0, 50, 0),
+ F_I(MAXSILES, 0, 25, 0),
F_I(HANGONGOODLINK, 0, 300, 0),
F_I(HANGONRETRYDELAY, 0, 10, 0),
F_I(CONNECTTIMEOUT, 0, 90, 0),
F_I(HANGONGOODLINK, 0, 300, 0),
F_I(HANGONRETRYDELAY, 0, 10, 0),
F_I(CONNECTTIMEOUT, 0, 90, 0),
/* Misc. random stuff */
F_S(NETWORK, 0, "UnderNet", 0),
F_S(URL_CLIENTS, 0, "ftp://ftp.undernet.org/pub/irc/clients", 0),
/* Misc. random stuff */
F_S(NETWORK, 0, "UnderNet", 0),
F_S(URL_CLIENTS, 0, "ftp://ftp.undernet.org/pub/irc/clients", 0),
- if (features[i].flags & FEAT_MARK) /* it's been changed */
- send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "F %s %d",
- features[i].type, features[i].v_int);
+ if (report) /* it's been changed */
+ send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "%c %s %d",
+ changed, features[i].type, features[i].v_int);
- if (features[i].flags & FEAT_MARK) /* it's been changed */
- send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "F %s %s",
- features[i].type, features[i].v_int ? "TRUE" : "FALSE");
+ if (report) /* it's been changed */
+ send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "%c %s %s",
+ changed, features[i].type, features[i].v_int ? "TRUE" : "FALSE");
- send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "F %s %s",
- features[i].type, features[i].v_str);
+ send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "%c %s %s",
+ changed, features[i].type, features[i].v_str);
- send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "F %s",
- features[i].type);
+ send_reply(to, SND_EXPLICIT | RPL_STATSFLINE, "%c %s",
+ changed, features[i].type);