summaryrefslogtreecommitdiff
path: root/src/ipcpd/eth
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2022-07-08 16:55:51 +0200
committerSander Vrijders <sander@ouroboros.rocks>2022-07-13 08:56:02 +0200
commit763227aee4a3d86e718c3665fe5fa13055f67f03 (patch)
tree837a603731335d950e45e7bc2aada9d2448d7a6b /src/ipcpd/eth
parentb9d674dc5a63b0206d96ff67366ed84c6d5d2962 (diff)
downloadouroboros-763227aee4a3d86e718c3665fe5fa13055f67f03.tar.gz
ouroboros-763227aee4a3d86e718c3665fe5fa13055f67f03.zip
ipcpd: Refactor main functions
The structure of main functions of the IPCPs was a bit strange with a ipcp_shutdown() call that combined waiting for a terminating signal with stopping the internal threads. This is now revised into a symmetrical design of ipcp_start(), which now includes the create response towards the IRMd. ipcp_sigwait(), which waits for a shutdown signal ipcp_stop() that then stops the internal threads. Now the main() functions of the IPCPs will make sense without checking what that ipcp_shutdown() functions actually does. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/eth')
-rw-r--r--src/ipcpd/eth/eth.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/ipcpd/eth/eth.c b/src/ipcpd/eth/eth.c
index 294373b6..3a27d2c6 100644
--- a/src/ipcpd/eth/eth.c
+++ b/src/ipcpd/eth/eth.c
@@ -1849,18 +1849,12 @@ int main(int argc,
goto fail_data_init;
}
- if (ipcp_boot() < 0) {
- log_err("Failed to boot IPCP.");
- goto fail_boot;
+ if (ipcp_start() < 0) {
+ log_err("Failed to start IPCP.");
+ goto fail_start;
}
- if (ipcp_create_r(0)) {
- log_err("Failed to notify IRMd we are initialized.");
- ipcp_set_state(IPCP_NULL);
- goto fail_create_r;
- }
-
- ipcp_shutdown();
+ ipcp_sigwait();
if (ipcp_get_state() == IPCP_SHUTDOWN) {
for (i = 0; i < IPCP_ETH_WR_THR; ++i)
@@ -1883,19 +1877,18 @@ int main(int argc,
#endif
}
+ ipcp_stop();
+
ipcp_fini();
eth_data_fini();
exit(EXIT_SUCCESS);
- fail_create_r:
- ipcp_shutdown();
- fail_boot:
+ fail_start:
eth_data_fini();
fail_data_init:
ipcp_fini();
fail_init:
- ipcp_create_r(-1);
exit(EXIT_FAILURE);
}