diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-06-30 10:31:09 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-06-30 10:31:09 -0400 |
| commit | 8d429559dfb5e00c3ff79ff4811f2d8f707838e4 (patch) | |
| tree | f3c874fb9577ae848c82dee5d0d3d082b2fa4cd8 | |
| parent | edaf6c016f00547970133b026a63ffab620a7ad2 (diff) | |
isisd: Fix zclient cleanup on shutdown
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
| -rw-r--r-- | isisd/isis_main.c | 1 | ||||
| -rw-r--r-- | isisd/isis_zebra.c | 7 | ||||
| -rw-r--r-- | isisd/isis_zebra.h | 2 |
3 files changed, 10 insertions, 0 deletions
diff --git a/isisd/isis_main.c b/isisd/isis_main.c index 58070c7f2a..674592f46b 100644 --- a/isisd/isis_main.c +++ b/isisd/isis_main.c @@ -101,6 +101,7 @@ void sigusr1(void); static __attribute__((__noreturn__)) void terminate (int i) { + isis_zebra_stop (); exit (i); } diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c index 0009dd5e27..af77250a01 100644 --- a/isisd/isis_zebra.c +++ b/isisd/isis_zebra.c @@ -720,3 +720,10 @@ isis_zebra_init (struct thread_master *master) return; } + +void +isis_zebra_stop (void) +{ + zclient_stop (zclient); + zclient_free (zclient); +} diff --git a/isisd/isis_zebra.h b/isisd/isis_zebra.h index 621c32c363..82d5a48d3e 100644 --- a/isisd/isis_zebra.h +++ b/isisd/isis_zebra.h @@ -25,6 +25,8 @@ extern struct zclient *zclient; void isis_zebra_init(struct thread_master *); +void isis_zebra_stop(void); + void isis_zebra_route_update (struct prefix *prefix, struct isis_route_info *route_info); int isis_distribute_list_update (int routetype); |
