]> jfr.im git - solanum.git/blobdiff - authd/authd.c
rehash: don't restart authd for DNS reloads
[solanum.git] / authd / authd.c
index 2e6861ae256877b2a046bad81f527c1addd3e057..999258cae8598eab34b1edf83d8893ea8950237e 100644 (file)
 
 #define MAXPARA 10
 
+static void handle_reload(int parc, char *parv[]);
 static void handle_stat(int parc, char *parv[]);
 
 rb_helper *authd_helper = NULL;
 authd_cmd_handler authd_cmd_handlers[255] = {
+       ['C'] = handle_reload,
        ['D'] = resolve_dns,
        ['S'] = handle_stat,
 };
@@ -35,6 +37,10 @@ authd_stat_handler authd_stat_handlers[255] = {
        ['D'] = enumerate_nameservers,
 };
 
+authd_reload_handler authd_reload_handlers[255] = {
+       ['D'] = reload_nameservers,
+};
+
 static void
 handle_stat(int parc, char *parv[])
 {
@@ -50,6 +56,21 @@ handle_stat(int parc, char *parv[])
        handler(parv[1], parv[2][0]);
 }
 
+static void
+handle_reload(int parc, char *parv[])
+{
+       authd_reload_handler handler;
+
+       if(parc < 2)
+                /* XXX Should log this somehow */
+               return;
+
+       if (!(handler = authd_reload_handlers[parv[1][0]]))
+               return;
+
+       handler(parv[1][0]);
+}
+
 static void
 parse_request(rb_helper *helper)
 {