#include "client.h"
#include "hash.h"
#include "ircd.h"
+#include "ircd_policy.h"
#include "ircd_snprintf.h"
#include "numnicks.h"
#include "send.h"
ircd_snprintf(0, num, sizeof(num), "%03d", numeric);
- 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
+ /* 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
return 0;
}