summaryrefslogtreecommitdiff
path: root/source3/rpc_server/rpc_service_setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpc_server/rpc_service_setup.c')
-rw-r--r--source3/rpc_server/rpc_service_setup.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/source3/rpc_server/rpc_service_setup.c b/source3/rpc_server/rpc_service_setup.c
index f5716cdab9..a9633fb355 100644
--- a/source3/rpc_server/rpc_service_setup.c
+++ b/source3/rpc_server/rpc_service_setup.c
@@ -972,6 +972,7 @@ bool dcesrv_ep_setup(struct tevent_context *ev_ctx,
struct messaging_context *msg_ctx)
{
struct dcerpc_binding_vector *v;
+ const char *rpcsrv_type;
TALLOC_CTX *tmp_ctx;
NTSTATUS status;
bool ok;
@@ -993,14 +994,22 @@ bool dcesrv_ep_setup(struct tevent_context *ev_ctx,
goto done;
}
- status = rpc_setup_tcpip_sockets(ev_ctx,
- msg_ctx,
- &ndr_table_winreg,
- v,
- 0);
- if (!NT_STATUS_IS_OK(status)) {
- ok = false;
- goto done;
+ rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM,
+ "rpc_server",
+ "tcpip",
+ "no");
+
+ if (strcasecmp_m(rpcsrv_type, "yes") == 0 ||
+ strcasecmp_m(rpcsrv_type, "true") == 0) {
+ status = rpc_setup_tcpip_sockets(ev_ctx,
+ msg_ctx,
+ &ndr_table_winreg,
+ v,
+ 0);
+ if (!NT_STATUS_IS_OK(status)) {
+ ok = false;
+ goto done;
+ }
}
ok = rpc_setup_winreg(ev_ctx, msg_ctx, v);