summaryrefslogtreecommitdiff
path: root/source4/libnet/libnet_rpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libnet/libnet_rpc.c')
-rw-r--r--source4/libnet/libnet_rpc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source4/libnet/libnet_rpc.c b/source4/libnet/libnet_rpc.c
index 8184b9b828..7b07cedeac 100644
--- a/source4/libnet/libnet_rpc.c
+++ b/source4/libnet/libnet_rpc.c
@@ -36,8 +36,14 @@ static NTSTATUS libnet_RpcConnectSrv(struct libnet_context *ctx, TALLOC_CTX *mem
{
NTSTATUS status;
const char *binding = NULL;
-
- binding = talloc_asprintf(mem_ctx, "ncacn_np:%s", r->in.domain_name);
+ switch (r->level) {
+ case LIBNET_RPC_CONNECT_SERVER:
+ binding = talloc_asprintf(mem_ctx, "ncacn_np:%s", r->in.domain_name);
+ break;
+ case LIBNET_RPC_CONNECT_BINDING:
+ binding = r->in.binding;
+ break;
+ }
status = dcerpc_pipe_connect(mem_ctx, &r->out.dcerpc_pipe,
binding, r->in.dcerpc_iface_uuid,r->in.dcerpc_iface_version,
@@ -115,6 +121,8 @@ NTSTATUS libnet_RpcConnect(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
switch (r->level) {
case LIBNET_RPC_CONNECT_SERVER:
return libnet_RpcConnectSrv(ctx, mem_ctx, r);
+ case LIBNET_RPC_CONNECT_BINDING:
+ return libnet_RpcConnectSrv(ctx, mem_ctx, r);
case LIBNET_RPC_CONNECT_PDC:
return libnet_RpcConnectPdc(ctx, mem_ctx, r);
}