From 5a522b31003d50cf476ead83fb322abeb1525957 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sun, 25 Sep 2005 12:26:07 +0000 Subject: r10486: This is a merge of Brad Henry's 'net join' rework, to better perform an ADS join, particularly as a DC. This represents the bulk of his Google SOC work, and I'm very pleased to intergrate it into the tree. (Metze will intergrate the DRSUAPI work later). Both metze and myself have also put a lot of time into this patch, and in mentoring Brad in general. In return, Brad has been a very good student, and has taken the comments well. Since it's last appearance on samba-technical@, I have made correctness and valgrind fixups, as well as adding a new 'BINDING' mode to the libnet_rpc routines. This allows the exact binding string to be passed down from the torture code, including options and exact target host. Andrew Bartlett (This used to be commit d6fa105fdabbeb83a9b0e50dad49d1649afdb2a4) --- source4/libnet/libnet_rpc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'source4/libnet/libnet_rpc.c') 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); } -- cgit