> 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]>

Reply via email to