summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-06-30 10:32:26 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2017-06-30 10:32:26 -0400
commita2f9eb822f6fcec3896e8d9364dff7108240b61e (patch)
tree431d0c68312f2b9faaec4389ef823c4afb60a46c
parent7feb9237dc6d356bbfbebdc2e98080027fdad85a (diff)
ripd: Fix zclient cleanup on shutdown
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
-rw-r--r--ripd/rip_main.c2
-rw-r--r--ripd/rip_zebra.c7
-rw-r--r--ripd/ripd.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/ripd/rip_main.c b/ripd/rip_main.c
index 38c2875949..1a7d03bca1 100644
--- a/ripd/rip_main.c
+++ b/ripd/rip_main.c
@@ -100,6 +100,8 @@ sigint (void)
if (! retain_mode)
rip_clean ();
+ rip_zclient_stop ();
+
exit (0);
}
diff --git a/ripd/rip_zebra.c b/ripd/rip_zebra.c
index 337555b0b7..31204872ac 100644
--- a/ripd/rip_zebra.c
+++ b/ripd/rip_zebra.c
@@ -711,3 +711,10 @@ rip_zclient_init (struct thread_master *master)
install_element (RIP_NODE, &rip_default_information_originate_cmd);
install_element (RIP_NODE, &no_rip_default_information_originate_cmd);
}
+
+void
+rip_zclient_stop (void)
+{
+ zclient_stop (zclient);
+ zclient_free (zclient);
+}
diff --git a/ripd/ripd.h b/ripd/ripd.h
index d52df0d992..a8e65d1236 100644
--- a/ripd/ripd.h
+++ b/ripd/ripd.h
@@ -388,6 +388,7 @@ extern void rip_if_down_all (void);
extern void rip_route_map_init (void);
extern void rip_route_map_reset (void);
extern void rip_zclient_init(struct thread_master *);
+extern void rip_zclient_stop(void);
extern void rip_zclient_reset (void);
extern void rip_offset_init (void);
extern int if_check_address (struct in_addr addr);