diff options
author | Gary Lockyer <gary@catalyst.net.nz> | 2017-09-15 07:09:23 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-10-19 05:33:09 +0200 |
commit | b852ad044b98c0c574c3420956e153055d46136d (patch) | |
tree | 4246355fbade866ba399d3e6266b7572df953b09 /source4/dns_server/dns_server.c | |
parent | 6d7a8d80cdc9ee996ff503d8834037001cf233d9 (diff) | |
download | samba-b852ad044b98c0c574c3420956e153055d46136d.tar.gz |
source4/smbd: refactor the process model for prefork
Refactor the process model code to allow the addition of a prefork
process model.
- Add a process context to contain process model specific state
- Add a service details structure to allow service to indicate which
process model options they can support.
In the new code the services advertise the features they support to the
process model. The process model context is plumbed through to allow the
process model to keep track of the supported options, and any state
the process model may require.
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Diffstat (limited to 'source4/dns_server/dns_server.c')
-rw-r--r-- | source4/dns_server/dns_server.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source4/dns_server/dns_server.c b/source4/dns_server/dns_server.c index d4f5f27d0bb..6a90e3089f5 100644 --- a/source4/dns_server/dns_server.c +++ b/source4/dns_server/dns_server.c @@ -642,7 +642,8 @@ static NTSTATUS dns_add_socket(struct dns_server *dns, &dns_tcp_stream_ops, "ip", address, &port, lpcfg_socket_options(dns->task->lp_ctx), - dns_socket); + dns_socket, + dns->task->process_context); if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("Failed to bind to %s:%u TCP - %s\n", address, port, nt_errstr(status))); @@ -929,5 +930,9 @@ static void dns_task_init(struct task_server *task) NTSTATUS server_service_dns_init(TALLOC_CTX *ctx) { - return register_server_service(ctx, "dns", dns_task_init); + struct service_details details = { + .inhibit_fork_on_accept = true, + .inhibit_pre_fork = true, + }; + return register_server_service(ctx, "dns", dns_task_init, &details); } |