diff options
Diffstat (limited to 'src/ipcpd')
-rw-r--r-- | src/ipcpd/normal/fmgr.c | 16 | ||||
-rw-r--r-- | src/ipcpd/normal/main.c | 12 |
2 files changed, 10 insertions, 18 deletions
diff --git a/src/ipcpd/normal/fmgr.c b/src/ipcpd/normal/fmgr.c index f7737b82..d8190572 100644 --- a/src/ipcpd/normal/fmgr.c +++ b/src/ipcpd/normal/fmgr.c @@ -78,16 +78,8 @@ static void * fmgr_nm1_acceptor(void * o) (void) o; while (true) { - ipcp_wait_state(IPCP_OPERATIONAL, NULL); - - pthread_rwlock_rdlock(&ipcpi.state_lock); - - if (ipcp_get_state() == IPCP_SHUTDOWN) { - pthread_rwlock_unlock(&ipcpi.state_lock); + if (ipcp_get_state() == IPCP_SHUTDOWN) return 0; - } - - pthread_rwlock_unlock(&ipcpi.state_lock); fd = flow_accept(&ae_name, &qs); if (fd < 0) { @@ -594,8 +586,7 @@ int fmgr_np1_post_buf(cep_id_t cep_id, buffer_t * buf) return ret; } -int fmgr_np1_post_sdu(cep_id_t cep_id, - struct shm_du_buff * sdb) +int fmgr_np1_post_sdu(cep_id_t cep_id, struct shm_du_buff * sdb) { int fd; @@ -687,8 +678,7 @@ int fmgr_nm1_write_sdu(struct pci * pci, struct shm_du_buff * sdb) return 0; } -int fmgr_nm1_write_buf(struct pci * pci, - buffer_t * buf) +int fmgr_nm1_write_buf(struct pci * pci, buffer_t * buf) { buffer_t * buffer; diff --git a/src/ipcpd/normal/main.c b/src/ipcpd/normal/main.c index 4eb708b4..34ba52da 100644 --- a/src/ipcpd/normal/main.c +++ b/src/ipcpd/normal/main.c @@ -215,22 +215,24 @@ int main(int argc, char * argv[]) pthread_sigmask(SIG_UNBLOCK, &sigset, NULL); - if (fmgr_init()) { + if (ribmgr_init()) { + fmgr_fini(); ipcp_fini(); close_logfile(); exit(EXIT_FAILURE); } - if (ribmgr_init()) { + if (ipcp_create_r(getpid())) { + LOG_ERR("Failed to notify IRMd we are initialized."); fmgr_fini(); ipcp_fini(); close_logfile(); exit(EXIT_FAILURE); } - if (ipcp_create_r(getpid())) { - LOG_ERR("Failed to notify IRMd we are initialized."); - fmgr_fini(); + ipcp_wait_state(IPCP_OPERATIONAL, NULL); + + if (fmgr_init()) { ipcp_fini(); close_logfile(); exit(EXIT_FAILURE); |