From: Samuel Cabrero Date: Wed, 27 Feb 2019 13:36:30 +0000 (+0100) Subject: s3:rpc_server: Initialize the embedded services endpoints X-Git-Tag: ldb-2.2.0~1338 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d2c48812158ef5cb73da89f6968d36dacbb4966;p=thirdparty%2Fsamba.git s3:rpc_server: Initialize the embedded services endpoints Signed-off-by: Samuel Cabrero Reviewed-by: Andrew Bartlett --- diff --git a/source3/rpc_server/rpc_service_setup.c b/source3/rpc_server/rpc_service_setup.c index 529ba952870..4eebb280eb2 100644 --- a/source3/rpc_server/rpc_service_setup.c +++ b/source3/rpc_server/rpc_service_setup.c @@ -257,6 +257,41 @@ NTSTATUS dcesrv_setup_endpoint_sockets(struct tevent_context *ev_ctx, return status; } +static NTSTATUS dcesrv_init_endpoints(struct tevent_context *ev_ctx, + struct messaging_context *msg_ctx, + struct dcesrv_context *dce_ctx) +{ + struct dcesrv_endpoint *e = NULL; + NTSTATUS status; + + for (e = dce_ctx->endpoint_list; e; e = e->next) { + enum dcerpc_transport_t transport = + dcerpc_binding_get_transport(e->ep_description); + + if (transport == NCACN_HTTP) { + /* + * We don't support ncacn_http yet + */ + continue; + } + + status = dcesrv_setup_endpoint_sockets(ev_ctx, + msg_ctx, + dce_ctx, + e, + NULL, + NULL, + NULL); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + /* TODO If NCACN_NP register in endpoint mapper */ + } + + return NT_STATUS_OK; +} + static NTSTATUS rpc_setup_winreg(struct tevent_context *ev_ctx, struct messaging_context *msg_ctx) { @@ -903,6 +938,15 @@ NTSTATUS dcesrv_init(TALLOC_CTX *mem_ctx, goto done; } + DBG_INFO("Initializing DCE/RPC connection endpoints\n"); + + status = dcesrv_init_endpoints(ev_ctx, msg_ctx, dce_ctx); + if (!NT_STATUS_IS_OK(status)) { + DBG_ERR("Failed to init DCE/RPC endpoints: %s\n", + nt_errstr(status)); + goto done; + } + status = NT_STATUS_OK; done: talloc_free(tmp_ctx);