]> jfr.im git - solanum.git/blobdiff - ircd/bandbi.c
Correct order of chunking and encoding steps.
[solanum.git] / ircd / bandbi.c
index aa9410d29f481813846fe28c4375786abf372cea..cc7094844fd28a9a353815b275001c6c40f8cfe7 100644 (file)
@@ -46,6 +46,9 @@
 #include "msg.h"       /* XXX: MAXPARA */
 #include "operhash.h"
 
+static void
+bandb_handle_failure(rb_helper *helper, char **parv, int parc) __attribute__((noreturn));
+
 static char bandb_add_letter[LAST_BANDB_TYPE] = {
        'K', 'D', 'X', 'R'
 };
@@ -74,27 +77,21 @@ static int
 start_bandb(void)
 {
        char fullpath[PATH_MAX + 1];
-#ifdef _WIN32
-       const char *suffix = ".exe";
-#else
-       const char *suffix = "";
-#endif
 
-       rb_setenv("BANDB_DBPATH", PKGLOCALSTATEDIR "/ban.db", 1);
+       rb_setenv("BANDB_DBPATH", ircd_paths[IRCD_PATH_BANDB], 1);
        if(bandb_path == NULL)
        {
-               snprintf(fullpath, sizeof(fullpath), "%s/bandb%s", PKGLIBEXECDIR, suffix);
+               snprintf(fullpath, sizeof(fullpath), "%s/bandb", ircd_paths[IRCD_PATH_LIBEXEC]);
 
                if(access(fullpath, X_OK) == -1)
                {
-                       snprintf(fullpath, sizeof(fullpath), "%s/bin/bandb%s",
-                                   ConfigFileEntry.dpath, suffix);
+                       snprintf(fullpath, sizeof(fullpath), "%s/bin/bandb", ConfigFileEntry.dpath);
 
                        if(access(fullpath, X_OK) == -1)
                        {
                                ilog(L_MAIN,
-                                    "Unable to execute bandb%s in %s or %s/bin",
-                                    suffix, PKGLIBEXECDIR, ConfigFileEntry.dpath);
+                                    "Unable to execute bandb in %s or %s/bin",
+                                    ircd_paths[IRCD_PATH_LIBEXEC], ConfigFileEntry.dpath);
                                return 0;
                        }
                }
@@ -107,11 +104,13 @@ start_bandb(void)
        if(bandb_helper == NULL)
        {
                ilog(L_MAIN, "Unable to start bandb: %s", strerror(errno));
-               sendto_realops_snomask(SNO_GENERAL, L_ALL, "Unable to start bandb: %s",
+               sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "Unable to start bandb helper: %s",
                                     strerror(errno));
                return 1;
        }
 
+       ilog(L_MAIN, "bandb helper started");
+       sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "bandb helper started");
        rb_helper_run(bandb_helper);
        return 0;
 }
@@ -223,11 +222,9 @@ bandb_check_kline(struct ConfItem *aconf)
 
        if(aftype != HM_HOST)
        {
-#ifdef RB_IPV6
                if(aftype == HM_IPV6)
                        aftype = AF_INET6;
                else
-#endif
                        aftype = AF_INET;
 
                kconf = find_conf_by_address(aconf->host, NULL, NULL, (struct sockaddr *)&daddr,
@@ -326,7 +323,7 @@ bandb_handle_finish(void)
        struct ConfItem *aconf;
        rb_dlink_node *ptr, *next_ptr;
 
-       clear_out_address_conf_bans();
+       clear_out_address_conf(AC_BANDB);
        clear_s_newconf_bans();
 
        RB_DLINK_FOREACH_SAFE(ptr, next_ptr, bandb_pending.head)
@@ -389,7 +386,7 @@ bandb_handle_failure(rb_helper *helper, char **parv, int parc)
                fprintf(stderr, "bandb - bandb failure: %s\n", parv[1]);
 
        ilog(L_MAIN, "bandb - bandb failure: %s", parv[1]);
-       sendto_realops_snomask(SNO_GENERAL, L_ALL, "bandb - bandb failure: %s", parv[1]);
+       sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "bandb - bandb failure: %s", parv[1]);
        exit(1);
 }
 
@@ -397,12 +394,12 @@ static void
 bandb_parse(rb_helper *helper)
 {
        static char buf[READBUF_SIZE];
-       char *parv[MAXPARA + 1];
+       char *parv[MAXPARA];
        int len, parc;
 
        while((len = rb_helper_read(helper, buf, sizeof(buf))))
        {
-               parc = rb_string_to_array(buf, parv, MAXPARA);
+               parc = rb_string_to_array(buf, parv, sizeof(parv));
 
                if(parc < 1)
                        continue;
@@ -439,9 +436,9 @@ bandb_rehash_bans(void)
 static void
 bandb_restart_cb(rb_helper *helper)
 {
-       ilog(L_MAIN, "bandb - bandb_restart_cb called, bandb helper died?");
-       sendto_realops_snomask(SNO_GENERAL, L_ALL,
-                            "bandb - bandb_restart_cb called, bandb helper died?");
+       ilog(L_MAIN, "bandb helper died - attempting to restart");
+       sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
+                            "bandb helper died - attempting to restart");
        if(helper != NULL)
        {
                rb_helper_close(helper);