diff --git a/ldpd/lde.c b/ldpd/lde.c index 3220278960..afcbe6cd44 100644 --- a/ldpd/lde.c +++ b/ldpd/lde.c @@ -206,6 +206,8 @@ lde_shutdown(void) free(iev_main_sync); log_info("label decision engine exiting"); + + zlog_fini(); exit(0); } diff --git a/ldpd/ldpd.c b/ldpd/ldpd.c index 56734a4f76..e3b6f4dfcc 100644 --- a/ldpd/ldpd.c +++ b/ldpd/ldpd.c @@ -495,7 +495,8 @@ start_child(enum ldpd_process p, char *argv0, int fd_async, int fd_sync) int argc = 0, nullfd; pid_t pid; - switch (pid = fork()) { + pid = fork(); + switch (pid) { case -1: fatal("cannot fork"); case 0: diff --git a/ldpd/ldpe.c b/ldpd/ldpe.c index bae8a6e5c3..3f0a4fd33e 100644 --- a/ldpd/ldpe.c +++ b/ldpd/ldpe.c @@ -235,6 +235,9 @@ ldpe_shutdown(void) free(pkt_ptr); log_info("ldp engine exiting"); + + zlog_fini(); + exit(0); }