summaryrefslogtreecommitdiff
path: root/omapip
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2016-10-01 18:44:02 +0200
committerFrancis Dupont <fdupont@isc.org>2016-10-01 18:44:02 +0200
commit0985d149c60754feb41b34221f292de60d1ee80b (patch)
tree14555107d5c7a71b3936fddc1f6afa86b198fd9c /omapip
parent29b23207c05a7a0ec1a90d42dc4e49d47f9b1a7f (diff)
downloadisc-dhcp-0985d149c60754feb41b34221f292de60d1ee80b.tar.gz
Moved the call to isc_app_ctxstart() to not get signal block by all threads
Diffstat (limited to 'omapip')
-rw-r--r--omapip/isclib.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/omapip/isclib.c b/omapip/isclib.c
index 12608a7b..781db848 100644
--- a/omapip/isclib.c
+++ b/omapip/isclib.c
@@ -185,21 +185,6 @@ dhcp_context_create(int flags,
if (result != ISC_R_SUCCESS)
goto cleanup;
- result = isc_app_ctxstart(dhcp_gbl_ctx.actx);
- if (result != ISC_R_SUCCESS)
- return (result);
- dhcp_gbl_ctx.actx_started = ISC_TRUE;
-
- /* Not all OSs support suppressing SIGPIPE through socket
- * options, so set the sigal action to be ignore. This allows
- * broken connections to fail gracefully with EPIPE on writes */
- handle_signal(SIGPIPE, SIG_IGN);
-
- /* Reset handlers installed by isc_app_ctxstart()
- * to default for control-c and kill */
- handle_signal(SIGINT, SIG_DFL);
- handle_signal(SIGTERM, SIG_DFL);
-
result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx,
dhcp_gbl_ctx.actx,
1, 0,
@@ -222,6 +207,21 @@ dhcp_context_create(int flags,
result = isc_task_create(dhcp_gbl_ctx.taskmgr, 0, &dhcp_gbl_ctx.task);
if (result != ISC_R_SUCCESS)
goto cleanup;
+
+ result = isc_app_ctxstart(dhcp_gbl_ctx.actx);
+ if (result != ISC_R_SUCCESS)
+ return (result);
+ dhcp_gbl_ctx.actx_started = ISC_TRUE;
+
+ /* Not all OSs support suppressing SIGPIPE through socket
+ * options, so set the sigal action to be ignore. This allows
+ * broken connections to fail gracefully with EPIPE on writes */
+ handle_signal(SIGPIPE, SIG_IGN);
+
+ /* Reset handlers installed by isc_app_ctxstart()
+ * to default for control-c and kill */
+ handle_signal(SIGINT, SIG_DFL);
+ handle_signal(SIGTERM, SIG_DFL);
}
#if defined (NSUPDATE)