diff options
Diffstat (limited to 'src/ipcpd/shim-udp')
-rw-r--r-- | src/ipcpd/shim-udp/main.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/ipcpd/shim-udp/main.c b/src/ipcpd/shim-udp/main.c index 9bc8f287..8c0c0aac 100644 --- a/src/ipcpd/shim-udp/main.c +++ b/src/ipcpd/shim-udp/main.c @@ -1180,11 +1180,13 @@ int main(int argc, char * argv[]) } if (ap_init(NULL) < 0) { + LOG_ERR("Failed to init application."); close_logfile(); exit(EXIT_FAILURE); } if (udp_data_init() < 0) { + LOG_ERR("Failed to init shim-udp data."); close_logfile(); exit(EXIT_FAILURE); } @@ -1204,9 +1206,16 @@ int main(int argc, char * argv[]) sigaction(SIGHUP, &sig_act, NULL); sigaction(SIGPIPE, &sig_act, NULL); + if (ipcp_init(THIS_TYPE, &udp_ops) < 0) { + LOG_ERR("Failed to init IPCP."); + close_logfile(); + exit(EXIT_FAILURE); + } + pthread_sigmask(SIG_BLOCK, &sigset, NULL); - if (ipcp_init(THIS_TYPE, &udp_ops) < 0) { + if (ipcp_boot() < 0) { + LOG_ERR("Failed to boot IPCP."); close_logfile(); exit(EXIT_FAILURE); } @@ -1219,7 +1228,7 @@ int main(int argc, char * argv[]) exit(EXIT_FAILURE); } - ipcp_fini(); + ipcp_shutdown(); if (ipcp_get_state() == IPCP_SHUTDOWN) { pthread_cancel(udp_data.handler); @@ -1230,6 +1239,8 @@ int main(int argc, char * argv[]) pthread_join(udp_data.sdu_reader, NULL); } + ipcp_fini(); + udp_data_fini(); ap_fini(); |