- The big forward port. I probably broke lots of stuff, so please look over any
[ircu2.10.12-pk.git] / ircd / s_numeric.c
index 8d9602be122bbdd4216e6f7a8900f53ba7ab8978..07e41ab3fc31f455bad41e0c5c565cdbd58f3024 100644 (file)
@@ -27,7 +27,7 @@
 #include "client.h"
 #include "hash.h"
 #include "ircd.h"
-#include "ircd_policy.h"
+#include "ircd_features.h"
 #include "ircd_snprintf.h"
 #include "numnicks.h"
 #include "send.h"
@@ -79,28 +79,17 @@ int do_numeric(int numeric, int nnn, struct Client *cptr, struct Client *sptr,
 
   ircd_snprintf(0, num, sizeof(num), "%03d", numeric);
 
-#ifdef HEAD_IN_SAND_REWRITE
   /* Since 2.10.10.pl14 we rewrite numerics from remote servers to appear to
    * come from the local server
    */
-  if (IsOper(acptr)) {
-#endif
-    if (acptr)
-      sendcmdto_one(sptr, num, num, acptr, "%C %s", acptr, parv[2]);
-    else
-      sendcmdto_channel_butone(sptr, num, num, achptr, cptr,
-                              SKIP_DEAF | SKIP_BURST, "%H %s", achptr,
-                              parv[2]);
-#ifdef HEAD_IN_SAND_REWRITE
-  } else {
-    if (acptr)
-      sendcmdto_one(&me, num, num, acptr, "%C %s", acptr, parv[2]);
-    else
-      sendcmdto_channel_butone(&me, num, num, achptr, cptr,
-                              SKIP_DEAF | SKIP_BURST, "%H %s", achptr,
-                              parv[2]);
-  }
-#endif
-
+  if (acptr)
+    sendcmdto_one((feature_bool(FEAT_HIS_REWRITE) && !IsOper(acptr)) ?
+                    &me : sptr,
+                  num, num, acptr, "%C %s", acptr, parv[2]);
+  else
+    sendcmdto_channel_butone((feature_bool(FEAT_HIS_REWRITE) && !IsOper(acptr)) ?
+                               &me : sptr,
+                             num, num, achptr, cptr, SKIP_DEAF | SKIP_BURST,
+                             "%H %s", achptr, parv[2]);
   return 0;
 }