> This is my patch to move IRCD Policy to F: Lines. I havent debugged them > completely *YET*
>From my brief scan, this patch looks OK. Some comments: > + /* head in sand features */ > + FEAT_HIS_SNOTICES, > + FEAT_HIS_SNOTICES_OPER_ONLY, Why do we have SNOTICES and SNOTICES_OPER_ONLY? (I can't look at the code at the moment to see if we had these before...) > -#include "ircd_policy.h" > +//#include "ircd_policy.h" All the world's not gcc--we can't include "//"-style comments... > -#ifdef HEAD_IN_SAND_BANWHO > - if (IsServer(cptr)) > + if (IsServer(cptr) && feature_bool(FEAT_HIS_BANWHO)) I would invert the order--"if (feature_bool(FEAT_HIS_BANWHO) && IsServer(cptr))"--this allows us to skip the IsServer() test. In this particular statement, though, and perhaps in the rest of them, there's not that much overhead involved either way... > /* deal with clients... */ > - if (MB_TYPE(mbuf, i) & (MODE_CHANOP | MODE_VOICE)) > + if (MB_TYPE(mbuf, i) & (MODE_CHANOP | MODE_VOICE)) > build_string(strptr, strptr_i, cli_name(MB_CLIENT(mbuf, i)), 0, ' '); > - > + You've got extraneous spaces creeping in in places--minor worts (I wouldn't reject the patch for this), but worth fixing, IMHO. > - else if ((MB_TYPE(mbuf, i) & (MODE_ADD | MODE_LIMIT)) == > - (MODE_ADD | MODE_LIMIT)) > + else if ((MB_TYPE(mbuf, i) & (MODE_ADD | MODE_LIMIT)) > + == (MODE_ADD | MODE_LIMIT)) I prefer to have the "==" at the end of the preceeding line. Also, the indentation is not consistent with the rest of the code here... again, minor wort, but here I'd feel obliged to fix it ;) > diff -u -r1.15.2.5 ircd_features.c > --- ircd/ircd_features.c 2002/05/17 16:42:19 1.15.2.5 > +++ ircd/ircd_features.c 2002/06/21 19:04:20 > @@ -324,6 +324,52 @@ > F_B(LOCOP_SET, 0, 0, 0), > F_B(LOCOP_SEE_IN_SECRET_CHANNELS, 0, 0, 0), > F_B(LOCOP_WIDE_GLINE, 0, 0, 0), > + > + /* Head in sand features */ > + F_B(HIS_SNOTICES, 0, 1, 0), > + F_B(HIS_SNOTICES_OPER_ONLY, 0, 1, 0), > + F_B(HIS_DESYNCS, 0, 1, 0), > + F_B(HIS_DEBUG_OPER_ONLY, 0, 1, 0), > + F_B(HIS_WALLOPS, 0, 1, 0), > + F_B(HIS_MAP, 0, 1, 0), > + F_B(HIS_LINKS, 0, 1, 0), > + F_B(HIS_TRACE, 0, 1, 0), > + F_B(HIS_STATS_L, 0, 1, 0), > + F_B(HIS_STATS_C, 0, 1, 0), > + F_B(HIS_STATS_G, 0, 1, 0), > + F_B(HIS_STATS_H, 0, 1, 0), > + F_B(HIS_STATS_K, 0, 1, 0), > + F_B(HIS_STATS_F, 0, 1, 0), > + F_B(HIS_STATS_I, 0, 1, 0), > + F_B(HIS_STATS_J, 0, 1, 0), > + F_B(HIS_STATS_M, 0, 1, 0), > + F_B(HIS_STATS_m, 0, 1, 0), > + F_B(HIS_STATS_O, 0, 1, 0), > + F_B(HIS_STATS_P, 0, 1, 0), > + F_B(HIS_STATS_R, 0, 1, 0), > + F_B(HIS_STATS_D, 0, 1, 0), > + F_B(HIS_STATS_d, 0, 1, 0), > + F_B(HIS_STATS_E, 0, 1, 0), > + F_B(HIS_STATS_t, 0, 1, 0), > + F_B(HIS_STATS_T, 0, 1, 0), > + F_B(HIS_STATS_U, 0, 1, 0), > + F_B(HIS_STATS_u, 0, 1, 0), > + F_B(HIS_STATS_W, 0, 1, 0), > + F_B(HIS_STATS_X, 0, 1, 0), > + F_B(HIS_STATS_Y, 0, 1, 0), > + F_B(HIS_STATS_Z, 0, 1, 0), > + F_B(HIS_WHOIS_SERVERNAME, 0, 1, 0), > + F_B(HIS_WHOIS_IDLETIME, 0, 1, 0), > + F_B(HIS_WHO_SERVERNAME, 0, 1, 0), > + F_B(HIS_WHO_HOPCOUNT, 0, 1, 0), > + F_B(HIS_BANWHO, 0, 1, 0), > + F_B(HIS_KILLWHO, 0, 1, 0), > + F_B(HIS_REWRITE, 0, 1, 0), > + F_I(HIS_REMOTE, 0, 1, 0), > + F_B(HIS_NETSPLIT, 0, 1, 0), > + F_S(HIS_SERVERNAME, 0, "*.undernet.org", 0), > + F_S(HIS_SERVERINFO, 0, "The Undernet Underworld", 0), > + F_S(HIS_URLSERVERS, 0, "http://www.undernet.org/servers.php", 0), There may be some flags you want to set in some of these--again, I'm not looking at the code at the moment, but I just want to verify that you looked at them... Other comments: Make sure you remember to log changes in ChangeLog-- it'll help if you do it now rather than later. Also, don't forget to update the documentation in doc/readme.features, and make sure that all features are listed in doc/example.conf... -- Kevin L. Mitchell <[EMAIL PROTECTED]>