Mercurial > hg > freeDiameter
diff libfdcore/cnxctx.c @ 1190:6a1042d8075b
Replace FDEV_TERMINATE events with calls to fd_core_shutdown to handle the core state properly
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Mon, 10 Jun 2013 16:44:18 +0800 |
parents | 56c36d1007b4 |
children | 48759e3f7611 |
line wrap: on
line diff
--- a/libfdcore/cnxctx.c Mon Jun 10 16:23:09 2013 +0800 +++ b/libfdcore/cnxctx.c Mon Jun 10 16:44:18 2013 +0800 @@ -610,7 +610,7 @@ fatal: /* An unrecoverable error occurred, stop the daemon */ ASSERT(0); - CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_TERMINATE, 0, NULL), ); + CHECK_FCT_DO(fd_core_shutdown(), ); } /* Set the timeout option on the socket */ @@ -842,8 +842,7 @@ CHECK_FCT_DO( fd_event_send( fd_cnx_target_queue(conn), FDEVP_CNX_MSG_RECV, rcv_data.length, rcv_data.buffer), { free_rcvdata(&rcv_data); - CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_TERMINATE, 0, NULL), ); - return NULL; + goto fatal; } ); } while (conn->cc_loop); @@ -854,7 +853,7 @@ fatal: /* An unrecoverable error occurred, stop the daemon */ - CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_TERMINATE, 0, NULL), ); + CHECK_FCT_DO(fd_core_shutdown(), ); goto out; } @@ -907,7 +906,7 @@ fatal: /* An unrecoverable error occurred, stop the daemon */ - CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_TERMINATE, 0, NULL), ); + CHECK_FCT_DO(fd_core_shutdown(), ); goto out; } #endif /* DISABLE_SCTP */ @@ -1098,7 +1097,7 @@ CHECK_FCT_DO( ret = fd_event_send( fd_cnx_target_queue(conn), FDEVP_CNX_MSG_RECV, rcv_data.length, rcv_data.buffer), { free_rcvdata(&rcv_data); - CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_TERMINATE, 0, NULL), ); + CHECK_FCT_DO(fd_core_shutdown(), ); return ret; } );