#include "authd.h"
#include "dns.h"
+#include "provider.h"
#define MAXPARA 10
rb_helper *authd_helper = NULL;
authd_cmd_handler authd_cmd_handlers[256] = {
- ['C'] = handle_reload,
+ ['C'] = handle_new_connection,
['D'] = resolve_dns,
+ ['R'] = handle_reload,
['S'] = handle_stat,
};
authd_stat_handler handler;
if(parc < 3)
- /* XXX Should log this somehow */
+ {
+ warn_opers(L_CRIT, "BUG: handle_stat received too few parameters (at least 3 expected, got %d)", parc);
return;
+ }
- if (!(handler = authd_stat_handlers[parv[2][0]]))
+ if (!(handler = authd_stat_handlers[(unsigned char)parv[2][0]]))
return;
handler(parv[1], parv[2][0]);
authd_reload_handler handler;
if(parc < 2)
- /* XXX Should log this somehow */
+ {
+ /* Reload all handlers */
+ for(size_t i = 0; i < sizeof(authd_reload_handlers); i++)
+ {
+ if ((handler = authd_reload_handlers[(unsigned char) i]) != NULL)
+ handler(parv[1][0]);
+ }
+
return;
+ }
- if (!(handler = authd_reload_handlers[parv[1][0]]))
+ if (!(handler = authd_reload_handlers[(unsigned char)parv[1][0]]))
return;
handler(parv[1][0]);
if(parc < 1)
continue;
- handler = authd_cmd_handlers[parv[0][0]];
+ handler = authd_cmd_handlers[(unsigned char)parv[0][0]];
if (handler != NULL)
handler(parc, parv);
}
exit(1);
}
-#ifndef WINDOWS
+#ifndef _WIN32
static void
dummy_handler(int sig)
{
static void
setup_signals(void)
{
-#ifndef WINDOWS
+#ifndef _WIN32
struct sigaction act;
act.sa_flags = 0;
rb_set_time();
setup_signals();
init_resolver();
+ init_providers();
rb_init_prng(NULL, RB_PRNG_DEFAULT);
rb_helper_loop(authd_helper, 0);