#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'
};
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;
}
}
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;
}
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,
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)
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);
}
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;
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);