]> jfr.im git - solanum.git/blobdiff - modules/core/m_error.c
Keep propagated bans in a dictionary, not a list
[solanum.git] / modules / core / m_error.c
index 213d892a6fe37bd2485441cb1949cb2bcd1ceea6..69712363cfed5e1995699667c7db22a782894379 100644 (file)
@@ -24,7 +24,6 @@
 
 #include "stdinc.h"
 #include "client.h"
-#include "common.h"            /* FALSE */
 #include "ircd.h"
 #include "numeric.h"
 #include "send.h"
 #include "logger.h"
 #include "s_conf.h"
 
-static int m_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
-static int ms_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
+static const char error_desc[] =
+       "Provides the ERROR command for clients and servers";
+
+static void m_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
+static void ms_error(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
 
 struct Message error_msgtab = {
        "ERROR", 0, 0, 0, 0,
@@ -45,37 +47,37 @@ mapi_clist_av1 error_clist[] = {
        &error_msgtab, NULL
 };
 
-DECLARE_MODULE_AV1(error, NULL, NULL, error_clist, NULL, NULL, "$Revision: 494 $");
+DECLARE_MODULE_AV2(error, NULL, NULL, error_clist, NULL, NULL, NULL, NULL, error_desc);
 
 /* Determine whether an ERROR message is safe to show (no IP address in it) */
-static int
+static bool
 is_safe_error(const char *message)
 {
        char prefix2[100];
        const char *p;
 
        if (!strncmp(message, "Closing Link: 127.0.0.1 (", 25))
-               return 1;
+               return true;
        snprintf(prefix2, sizeof prefix2,
                        "Closing Link: 127.0.0.1 %s (", me.name);
        if (!strncmp(message, prefix2, strlen(prefix2)))
-               return 1;
+               return true;
        if (!strncmp(message, "Restart by ", 11))
-               return 1;
+               return true;
        if (!strncmp(message, "Terminated by ", 14))
-               return 1;
+               return true;
 
-       if (!ircncmp(message, "Closing Link", 12))
-               return 0;
+       if (!rb_strncasecmp(message, "Closing Link", 12))
+               return false;
        if (strchr(message, '['))
-               return 0;
+               return false;
        p = strchr(message, '.');
        if (p != NULL && p[1] != '\0')
-               return 0;
+               return false;
        if (strchr(message, ':'))
-               return 0;
+               return false;
 
-       return 1;
+       return true;
 }
 
 /*
@@ -85,7 +87,7 @@ is_safe_error(const char *message)
  *
  *      parv[*] = parameters
  */
-int
+static void
 m_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        const char *para;
@@ -104,21 +106,19 @@ m_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
        if(IsAnyServer(client_p))
        {
                if (hideit < 2)
-                       sendto_realops_snomask(SNO_GENERAL, hideit ? L_ADMIN : (is_remote_connect(client_p) ? L_NETWIDE : L_ALL),
+                       sendto_realops_snomask(SNO_GENERAL, hideit ? L_ADMIN : L_NETWIDE,
                                        "ERROR :from %s -- %s",
                                        client_p->name, para);
                if (hideit > 0)
-                       sendto_realops_snomask(SNO_GENERAL, (hideit == 1 ? L_OPER : L_ALL) | (is_remote_connect(client_p) ? L_NETWIDE : L_ALL),
+                       sendto_realops_snomask(SNO_GENERAL, hideit == 1 ? L_OPER | L_NETWIDE : L_NETWIDE,
                                        "ERROR :from %s -- <hidden>",
                                        client_p->name);
        }
 
        exit_client(client_p, source_p, source_p, "ERROR");
-
-       return 0;
 }
 
-static int
+static void
 ms_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        const char *para;
@@ -132,18 +132,16 @@ ms_error(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
        if(is_safe_error(para))
                hideit = 0;
        if(hideit == 2)
-               return 0;
+               return;
 
        if(client_p == source_p)
        {
-               sendto_realops_snomask(SNO_GENERAL, hideit ? L_ADMIN : L_ALL, "ERROR :from %s -- %s",
+               sendto_realops_snomask(SNO_GENERAL, hideit ? L_ADMIN : L_NETWIDE, "ERROR :from %s -- %s",
                                     client_p->name, para);
        }
        else
        {
-               sendto_realops_snomask(SNO_GENERAL, hideit ? L_ADMIN : L_ALL, "ERROR :from %s via %s -- %s",
+               sendto_realops_snomask(SNO_GENERAL, hideit ? L_ADMIN : L_NETWIDE, "ERROR :from %s via %s -- %s",
                                     source_p->name, client_p->name, para);
        }
-
-       return 0;
 }