]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_main.c
isisd: implement sighup handler
[mirror_frr.git] / isisd / isis_main.c
index 2d540348e450fbfb689d569be48bf7060b04bb34..9126e40d4233a0fd0d1dbbe47975cbc929812ecd 100644 (file)
@@ -58,6 +58,7 @@
 #include "isisd/isis_bfd.h"
 #include "isisd/isis_lsp.h"
 #include "isisd/isis_mt.h"
+#include "isisd/fabricd.h"
 
 /* Default configuration file name */
 #define ISISD_DEFAULT_CONFIG "isisd.conf"
@@ -106,12 +107,23 @@ static __attribute__((__noreturn__)) void terminate(int i)
 /*
  * Signal handlers
  */
-
+#ifdef FABRICD
 void sighup(void)
 {
-       zlog_notice("SIGHUP/reload is not implemented for isisd");
+       zlog_notice("SIGHUP/reload is not implemented for fabricd");
        return;
 }
+#else
+static struct frr_daemon_info isisd_di;
+void sighup(void)
+{
+       zlog_info("SIGHUP received");
+
+       /* Reload config file. */
+       vty_read_config(NULL, isisd_di.config_file, config_default);
+}
+
+#endif
 
 __attribute__((__noreturn__)) void sigint(void)
 {
@@ -150,8 +162,12 @@ struct quagga_signal_t isisd_signals[] = {
        },
 };
 
+
 static const struct frr_yang_module_info *isisd_yang_modules[] = {
        &frr_interface_info,
+#ifndef FABRICD
+       &frr_isisd_info,
+#endif /* ifndef FABRICD */
 };
 
 #ifdef FABRICD
@@ -216,6 +232,9 @@ int main(int argc, char **argv, char **envp)
        isis_init();
        isis_circuit_init();
        isis_vty_init();
+#ifndef FABRICD
+       isis_cli_init();
+#endif /* ifdef FABRICD */
        isis_spf_cmds_init();
        isis_redist_init();
        isis_route_map_init();
@@ -228,6 +247,7 @@ int main(int argc, char **argv, char **envp)
 
        isis_zebra_init(master);
        isis_bfd_init();
+       fabricd_init();
 
        frr_config_fork();
        frr_run(master);