diff options
-rw-r--r-- | src/ipcpd/unicast/main.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/src/ipcpd/unicast/main.c b/src/ipcpd/unicast/main.c index 873c6ce3..eafb7f2a 100644 --- a/src/ipcpd/unicast/main.c +++ b/src/ipcpd/unicast/main.c @@ -145,6 +145,11 @@ static int start_components(void) ipcp_set_state(IPCP_OPERATIONAL); + if (dt_start()) { + log_err("Failed to start data transfer."); + goto fail_dt_start; + } + if (fa_start()) { log_err("Failed to start flow allocator."); goto fail_fa_start; @@ -167,6 +172,8 @@ static int start_components(void) fail_enroll_start: fa_stop(); fail_fa_start: + dt_stop(); + fail_dt_start: ipcp_set_state(IPCP_INIT); return -1; } @@ -182,6 +189,8 @@ static void stop_components(void) fa_stop(); + dt_stop(); + ipcp_set_state(IPCP_INIT); } @@ -189,7 +198,6 @@ static int bootstrap_components(void) { if (dir_bootstrap()) { log_err("Failed to bootstrap directory."); - dt_stop(); return -1; } @@ -217,11 +225,6 @@ static int unicast_ipcp_enroll(const char * dst, goto fail_enroll_boot; } - if (dt_start()) { - log_err("Failed to initialize IPCP components."); - goto fail_dt_start; - } - if (start_components()) { log_err("Failed to start components."); goto fail_start_comp; @@ -241,8 +244,6 @@ static int unicast_ipcp_enroll(const char * dst, return 0; fail_start_comp: - dt_stop(); - fail_dt_start: finalize_components(); fail_enroll_boot: connmgr_dealloc(COMPID_ENROLL, &conn); @@ -262,11 +263,6 @@ static int unicast_ipcp_bootstrap(const struct ipcp_config * conf) goto fail_init; } - if (dt_start()) { - log_err("Failed to initialize IPCP components."); - goto fail_dt_start; - }; - if (start_components()) { log_err("Failed to init IPCP components."); goto fail_start; @@ -284,8 +280,6 @@ static int unicast_ipcp_bootstrap(const struct ipcp_config * conf) fail_bootstrap: stop_components(); fail_start: - dt_stop(); - fail_dt_start: finalize_components(); fail_init: return -1; @@ -347,7 +341,6 @@ int main(int argc, ipcp_shutdown(); if (ipcp_get_state() == IPCP_SHUTDOWN) { - dt_stop(); stop_components(); finalize_components(); } |