summaryrefslogtreecommitdiff
path: root/source4/web_server/web_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/web_server/web_server.c')
-rw-r--r--source4/web_server/web_server.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/source4/web_server/web_server.c b/source4/web_server/web_server.c
index d854a298a9c..faf1bc65650 100644
--- a/source4/web_server/web_server.c
+++ b/source4/web_server/web_server.c
@@ -330,8 +330,10 @@ static void websrv_task_init(struct task_server *task)
task->lp_ctx, model_ops,
&web_stream_ops,
"ip", address,
- &port, lpcfg_socket_options(task->lp_ctx),
- task);
+ &port,
+ lpcfg_socket_options(task->lp_ctx),
+ task,
+ task->process_context);
if (!NT_STATUS_IS_OK(status)) goto failed;
}
@@ -350,7 +352,8 @@ static void websrv_task_init(struct task_server *task)
&web_stream_ops,
"ip", wcard[i],
&port, lpcfg_socket_options(task->lp_ctx),
- wdata);
+ wdata,
+ task->process_context);
if (!NT_STATUS_IS_OK(status)) goto failed;
}
talloc_free(wcard);
@@ -372,5 +375,9 @@ failed:
/* called at smbd startup - register ourselves as a server service */
NTSTATUS server_service_web_init(TALLOC_CTX *ctx)
{
- return register_server_service(ctx, "web", websrv_task_init);
+ struct service_details details = {
+ .inhibit_fork_on_accept = true,
+ .inhibit_pre_fork = true
+ };
+ return register_server_service(ctx, "web", websrv_task_init, &details);
}