[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Wed Feb 2 13:39:02 MST 2011


The branch, master has been updated
       via  885887a s3-waf: no need to call pidl with --samba3-ndr-client anymore.
       via  2534e01 s3-build: remove --samba3-ndr-client from build_idl.sh script.
       via  d57ddc6 s3-waf: remove RPCCLI_LSA subsystem.
       via  ad15128 s3-build: remove RPCCLI_LSA subsystem.
       via  387d154 s3-winbind: prefer dcerpc_lsa_X functions in winbindd/winbindd_rpc.c.
       via  04ac046 s3-winbind: prefer dcerpc_lsa_X functions in winbindd/winbindd_samr.c.
       via  a85b20a s3-winbind: prefer dcerpc_lsa_X functions in winbindd/winbind_cm.c
      from  586b2ee s3-epmap: use correct dcerpc client header in dcerpc_ep.c

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 885887ac1b7de1dbbc3da63843600d69efd5f6e8
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 2 18:51:45 2011 +0100

    s3-waf: no need to call pidl with --samba3-ndr-client anymore.
    
    Guenther
    
    Autobuild-User: Günther Deschner <gd at samba.org>
    Autobuild-Date: Wed Feb  2 21:38:23 CET 2011 on sn-devel-104

commit 2534e01a3ac187f42c0d359da2fd72b11ea0f5ae
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 2 18:53:54 2011 +0100

    s3-build: remove --samba3-ndr-client from build_idl.sh script.
    
    Guenther

commit d57ddc64c5a0551554756de01acb5135d4cb3a6f
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 18 18:07:04 2011 +0100

    s3-waf: remove RPCCLI_LSA subsystem.
    
    Guenther

commit ad15128d78065e56f1a2c630dd96cc4aa115d3d0
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 18 18:06:52 2011 +0100

    s3-build: remove RPCCLI_LSA subsystem.
    
    Guenther

commit 387d1543ed8ac16389ace7a09cb9a452e2d220db
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 18 18:05:49 2011 +0100

    s3-winbind: prefer dcerpc_lsa_X functions in winbindd/winbindd_rpc.c.
    
    Guenther

commit 04ac046a46fe59b0551e2898ebc8940da601c406
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 18 18:02:27 2011 +0100

    s3-winbind: prefer dcerpc_lsa_X functions in winbindd/winbindd_samr.c.
    
    Guenther

commit a85b20a1649980e17077e64de4d474fe6cd6f202
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 18 17:54:24 2011 +0100

    s3-winbind: prefer dcerpc_lsa_X functions in winbindd/winbind_cm.c
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 librpc/build_idl.sh              |    6 ++--
 librpc/idl/wscript_build         |    4 +-
 source3/Makefile.in              |    3 +-
 source3/librpc/idl/wscript_build |    9 ++++-
 source3/script/build_idl.sh      |    6 ++--
 source3/winbindd/winbindd_cm.c   |   64 ++++++++++++++++++++-----------------
 source3/winbindd/winbindd_rpc.c  |   19 +++++++----
 source3/winbindd/winbindd_samr.c |   38 +++++++++++++++--------
 source3/wscript_build            |    6 +---
 9 files changed, 89 insertions(+), 66 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/build_idl.sh b/librpc/build_idl.sh
index c335557..afab910 100755
--- a/librpc/build_idl.sh
+++ b/librpc/build_idl.sh
@@ -7,7 +7,7 @@ else
 	FULL=0
 fi
 
-ARGS="--outputdir $PIDL_OUTPUTDIR --header --ndr-parser --samba3-ndr-server --samba3-ndr-client --server --client --python --dcom-proxy --com-header $PIDL_ARGS --"
+ARGS="--outputdir $PIDL_OUTPUTDIR --header --ndr-parser --samba3-ndr-server --server --client --python --dcom-proxy --com-header $PIDL_ARGS --"
 IDL_FILES="$*"
 
 oldpwd=`pwd`
@@ -30,8 +30,8 @@ fi
 list=""
 for f in ${IDL_FILES}; do
         b=`basename $f .idl`
-	outfiles="cli_$b.c $b.h ndr_${b}_c.c ndr_$b.h ndr_${b}_s.c srv_$b.c"
-	outfiles="$outfiles cli_$b.h ndr_$b.c ndr_${b}_c.h py_$b.c srv_$b.h"
+	outfiles="$b.h ndr_${b}_c.c ndr_$b.h ndr_${b}_s.c srv_$b.c"
+	outfiles="$outfiles ndr_$b.c ndr_${b}_c.h py_$b.c srv_$b.h"
 
 	for o in $outfiles; do
 	    [ -f $PIDL_OUTPUTDIR/$o ] || {
diff --git a/librpc/idl/wscript_build b/librpc/idl/wscript_build
index 7342228..6fdd5f3 100644
--- a/librpc/idl/wscript_build
+++ b/librpc/idl/wscript_build
@@ -11,12 +11,12 @@ bld.SAMBA_PIDL_LIST('PIDL',
                        oxidresolver.idl samr.idl srvsvc.idl winreg.idl dcerpc.idl
                        drsblobs.idl efs.idl frstrans.idl mgmt.idl netlogon.idl
                        policyagent.idl scerpc.idl svcctl.idl wkssvc.idl eventlog6.idl backupkey.idl''',
-                    options='--header --ndr-parser --samba3-ndr-server --samba3-ndr-client --server --client --python',
+                    options='--header --ndr-parser --samba3-ndr-server --server --client --python',
                     output_dir='../gen_ndr')
 
 bld.SAMBA_PIDL_LIST('PIDL',
                     'wmi.idl dcom.idl',
-                    options='--header --ndr-parser --samba3-ndr-server --samba3-ndr-client --server --client --python --dcom-proxy --com-header',
+                    options='--header --ndr-parser --server --client --python --dcom-proxy --com-header',
                     output_dir='../gen_ndr')
 
 bld.SAMBA_PIDL_LIST('PIDL',
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 5771f40..09cd713 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -367,8 +367,7 @@ LIBCLI_WKSSVC_OBJ = librpc/gen_ndr/ndr_wkssvc_c.o
 
 LIBCLI_SRVSVC_OBJ = librpc/gen_ndr/ndr_srvsvc_c.o
 
-LIBCLI_LSA_OBJ = librpc/gen_ndr/cli_lsa.o \
-		 librpc/gen_ndr/ndr_lsa_c.o \
+LIBCLI_LSA_OBJ = librpc/gen_ndr/ndr_lsa_c.o \
 		 rpc_client/cli_lsarpc.o \
 		 rpc_client/init_lsa.o
 
diff --git a/source3/librpc/idl/wscript_build b/source3/librpc/idl/wscript_build
index 5dc46cf..9957614 100644
--- a/source3/librpc/idl/wscript_build
+++ b/source3/librpc/idl/wscript_build
@@ -2,7 +2,12 @@
 
 bld.SAMBA_PIDL_LIST('PIDL',
                     '''messaging.idl libnetapi.idl notify.idl
-                       wbint.idl perfcount.idl secrets.idl libnet_join.idl preg.idl''',
-                    options='--includedir=../librpc/idl --header --ndr-parser --samba3-ndr-server --samba3-ndr-client --client',
+                       perfcount.idl secrets.idl libnet_join.idl preg.idl''',
+                    options='--includedir=../librpc/idl --header --ndr-parser',
+                    output_dir='../gen_ndr')
+
+bld.SAMBA_PIDL_LIST('PIDL',
+                    'wbint.idl',
+                    options='--includedir=../librpc/idl --header --ndr-parser --samba3-ndr-server --client',
                     output_dir='../gen_ndr')
 
diff --git a/source3/script/build_idl.sh b/source3/script/build_idl.sh
index 8f88588..97e813e 100755
--- a/source3/script/build_idl.sh
+++ b/source3/script/build_idl.sh
@@ -7,7 +7,7 @@ else
 	FULL=0
 fi
 
-ARGS="--includedir=../librpc/idl --outputdir $PIDL_OUTPUTDIR --header --ndr-parser --samba3-ndr-server --samba3-ndr-client $PIDL_ARGS --"
+ARGS="--includedir=../librpc/idl --outputdir $PIDL_OUTPUTDIR --header --ndr-parser --client --samba3-ndr-server $PIDL_ARGS --"
 IDL_FILES="$*"
 
 oldpwd=`pwd`
@@ -30,8 +30,8 @@ fi
 list=""
 for f in ${IDL_FILES}; do
         b=`basename $f .idl`
-	outfiles="cli_$b.c $b.h ndr_$b.h srv_$b.c"
-	outfiles="$outfiles cli_$b.h ndr_$b.c srv_$b.h"
+	outfiles="$b.h ndr_$b.h srv_$b.c"
+	outfiles="$outfiles ndr_$b.c srv_$b.h"
 
 	for o in $outfiles; do
 	    [ -f $PIDL_OUTPUTDIR/$o ] || {
diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c
index 98598cf..42f33ab 100644
--- a/source3/winbindd/winbindd_cm.c
+++ b/source3/winbindd/winbindd_cm.c
@@ -64,7 +64,7 @@
 #include "../librpc/gen_ndr/ndr_netlogon_c.h"
 #include "rpc_client/cli_netlogon.h"
 #include "../librpc/gen_ndr/ndr_samr_c.h"
-#include "../librpc/gen_ndr/cli_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa_c.h"
 #include "rpc_client/cli_lsarpc.h"
 #include "../librpc/gen_ndr/ndr_dssetup_c.h"
 #include "libads/sitename_cache.h"
@@ -1626,6 +1626,8 @@ static NTSTATUS cm_open_connection(struct winbindd_domain *domain,
 
 void invalidate_cm_connection(struct winbindd_cm_conn *conn)
 {
+	NTSTATUS result;
+
 	/* We're closing down a possibly dead
 	   connection. Don't have impossibly long (10s) timeouts. */
 
@@ -1635,7 +1637,6 @@ void invalidate_cm_connection(struct winbindd_cm_conn *conn)
 
 	if (conn->samr_pipe != NULL) {
 		if (is_valid_policy_hnd(&conn->sam_connect_handle)) {
-			NTSTATUS result;
 			dcerpc_samr_Close(conn->samr_pipe->binding_handle,
 					  talloc_tos(),
 					  &conn->sam_connect_handle,
@@ -1650,8 +1651,10 @@ void invalidate_cm_connection(struct winbindd_cm_conn *conn)
 
 	if (conn->lsa_pipe != NULL) {
 		if (is_valid_policy_hnd(&conn->lsa_policy)) {
-			rpccli_lsa_Close(conn->lsa_pipe, talloc_tos(),
-					 &conn->lsa_policy);
+			dcerpc_lsa_Close(conn->lsa_pipe->binding_handle,
+					 talloc_tos(),
+					 &conn->lsa_policy,
+					 &result);
 		}
 		TALLOC_FREE(conn->lsa_pipe);
 		/* Ok, it must be dead. Drop timeout to 0.5 sec. */
@@ -1662,8 +1665,10 @@ void invalidate_cm_connection(struct winbindd_cm_conn *conn)
 
 	if (conn->lsa_pipe_tcp != NULL) {
 		if (is_valid_policy_hnd(&conn->lsa_policy)) {
-			rpccli_lsa_Close(conn->lsa_pipe, talloc_tos(),
-					 &conn->lsa_policy);
+			dcerpc_lsa_Close(conn->lsa_pipe->binding_handle,
+					 talloc_tos(),
+					 &conn->lsa_policy,
+					 &result);
 		}
 		TALLOC_FREE(conn->lsa_pipe_tcp);
 		/* Ok, it must be dead. Drop timeout to 0.5 sec. */
@@ -1920,7 +1925,7 @@ static bool set_dc_type_and_flags_trustinfo( struct winbindd_domain *domain )
 
 static void set_dc_type_and_flags_connect( struct winbindd_domain *domain )
 {
-	NTSTATUS 		result;
+	NTSTATUS status, result;
 	WERROR werr;
 	TALLOC_CTX              *mem_ctx = NULL;
 	struct rpc_pipe_client  *cli = NULL;
@@ -1941,14 +1946,14 @@ static void set_dc_type_and_flags_connect( struct winbindd_domain *domain )
 
 	DEBUG(5, ("set_dc_type_and_flags_connect: domain %s\n", domain->name ));
 
-	result = cli_rpc_pipe_open_noauth(domain->conn.cli,
+	status = cli_rpc_pipe_open_noauth(domain->conn.cli,
 					  &ndr_table_dssetup.syntax_id,
 					  &cli);
 
-	if (!NT_STATUS_IS_OK(result)) {
+	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(5, ("set_dc_type_and_flags_connect: Could not bind to "
 			  "PI_DSSETUP on domain %s: (%s)\n",
-			  domain->name, nt_errstr(result)));
+			  domain->name, nt_errstr(status)));
 
 		/* if this is just a non-AD domain we need to continue
 		 * identifying so that we can in the end return with
@@ -1957,26 +1962,26 @@ static void set_dc_type_and_flags_connect( struct winbindd_domain *domain )
 		goto no_dssetup;
 	}
 
-	result = dcerpc_dssetup_DsRoleGetPrimaryDomainInformation(cli->binding_handle, mem_ctx,
+	status = dcerpc_dssetup_DsRoleGetPrimaryDomainInformation(cli->binding_handle, mem_ctx,
 								  DS_ROLE_BASIC_INFORMATION,
 								  &info,
 								  &werr);
 	TALLOC_FREE(cli);
 
-	if (NT_STATUS_IS_OK(result)) {
+	if (NT_STATUS_IS_OK(status)) {
 		result = werror_to_ntstatus(werr);
 	}
-	if (!NT_STATUS_IS_OK(result)) {
+	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(5, ("set_dc_type_and_flags_connect: rpccli_ds_getprimarydominfo "
 			  "on domain %s failed: (%s)\n",
-			  domain->name, nt_errstr(result)));
+			  domain->name, nt_errstr(status)));
 
 		/* older samba3 DCs will return DCERPC_FAULT_OP_RNG_ERROR for
 		 * every opcode on the DSSETUP pipe, continue with
 		 * no_dssetup mode here as well to get domain->initialized
 		 * set - gd */
 
-		if (NT_STATUS_V(result) == DCERPC_FAULT_OP_RNG_ERROR) {
+		if (NT_STATUS_V(status) == DCERPC_FAULT_OP_RNG_ERROR) {
 			goto no_dssetup;
 		}
 
@@ -1992,31 +1997,32 @@ static void set_dc_type_and_flags_connect( struct winbindd_domain *domain )
 	}
 
 no_dssetup:
-	result = cli_rpc_pipe_open_noauth(domain->conn.cli,
+	status = cli_rpc_pipe_open_noauth(domain->conn.cli,
 					  &ndr_table_lsarpc.syntax_id, &cli);
 
-	if (!NT_STATUS_IS_OK(result)) {
+	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(5, ("set_dc_type_and_flags_connect: Could not bind to "
 			  "PI_LSARPC on domain %s: (%s)\n",
-			  domain->name, nt_errstr(result)));
+			  domain->name, nt_errstr(status)));
 		TALLOC_FREE(cli);
 		TALLOC_FREE(mem_ctx);
 		return;
 	}
 
-	result = rpccli_lsa_open_policy2(cli, mem_ctx, True, 
+	status = rpccli_lsa_open_policy2(cli, mem_ctx, True,
 					 SEC_FLAG_MAXIMUM_ALLOWED, &pol);
 
-	if (NT_STATUS_IS_OK(result)) {
+	if (NT_STATUS_IS_OK(status)) {
 		/* This particular query is exactly what Win2k clients use 
 		   to determine that the DC is active directory */
-		result = rpccli_lsa_QueryInfoPolicy2(cli, mem_ctx,
+		status = dcerpc_lsa_QueryInfoPolicy2(cli->binding_handle, mem_ctx,
 						     &pol,
 						     LSA_POLICY_INFO_DNS,
-						     &lsa_info);
+						     &lsa_info,
+						     &result);
 	}
 
-	if (NT_STATUS_IS_OK(result)) {
+	if (NT_STATUS_IS_OK(status) && NT_STATUS_IS_OK(result)) {
 		domain->active_directory = True;
 
 		if (lsa_info->dns.name.string) {
@@ -2046,20 +2052,20 @@ no_dssetup:
 	} else {
 		domain->active_directory = False;
 
-		result = rpccli_lsa_open_policy(cli, mem_ctx, True, 
+		status = rpccli_lsa_open_policy(cli, mem_ctx, True,
 						SEC_FLAG_MAXIMUM_ALLOWED,
 						&pol);
 
-		if (!NT_STATUS_IS_OK(result)) {
+		if (!NT_STATUS_IS_OK(status)) {
 			goto done;
 		}
 
-		result = rpccli_lsa_QueryInfoPolicy(cli, mem_ctx,
+		status = dcerpc_lsa_QueryInfoPolicy(cli->binding_handle, mem_ctx,
 						    &pol,
 						    LSA_POLICY_INFO_ACCOUNT_DOMAIN,
-						    &lsa_info);
-
-		if (NT_STATUS_IS_OK(result)) {
+						    &lsa_info,
+						    &result);
+		if (NT_STATUS_IS_OK(status) && NT_STATUS_IS_OK(result)) {
 
 			if (lsa_info->account_domain.name.string) {
 				fstrcpy(domain->name,
diff --git a/source3/winbindd/winbindd_rpc.c b/source3/winbindd/winbindd_rpc.c
index a2aa54c..5efd57e 100644
--- a/source3/winbindd/winbindd_rpc.c
+++ b/source3/winbindd/winbindd_rpc.c
@@ -29,7 +29,7 @@
 
 #include "librpc/gen_ndr/ndr_samr_c.h"
 #include "librpc/gen_ndr/srv_samr.h"
-#include "librpc/gen_ndr/cli_lsa.h"
+#include "librpc/gen_ndr/ndr_lsa_c.h"
 #include "librpc/gen_ndr/srv_lsa.h"
 #include "rpc_client/cli_samr.h"
 #include "rpc_client/cli_lsarpc.h"
@@ -969,7 +969,8 @@ NTSTATUS rpc_trusted_domains(TALLOC_CTX *mem_ctx,
 	struct netr_DomainTrust *array = NULL;
 	uint32_t enum_ctx = 0;
 	uint32_t count = 0;
-	NTSTATUS status;
+	NTSTATUS status, result;
+	struct dcerpc_binding_handle *b = lsa_pipe->binding_handle;
 
 	do {
 		struct lsa_DomainList dom_list;
@@ -980,15 +981,19 @@ NTSTATUS rpc_trusted_domains(TALLOC_CTX *mem_ctx,
 		 * We don't run into deadlocks here, cause winbind_off() is
 		 * called in the main function.
 		 */
-		status = rpccli_lsa_EnumTrustDom(lsa_pipe,
+		status = dcerpc_lsa_EnumTrustDom(b,
 						 mem_ctx,
 						 lsa_policy,
 						 &enum_ctx,
 						 &dom_list,
-						 (uint32_t) -1);
+						 (uint32_t) -1,
+						 &result);
 		if (!NT_STATUS_IS_OK(status)) {
-			if (!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) {
-				return status;
+			return status;
+		}
+		if (!NT_STATUS_IS_OK(result)) {
+			if (!NT_STATUS_EQUAL(result, STATUS_MORE_ENTRIES)) {
+				return result;
 			}
 		}
 
@@ -1020,7 +1025,7 @@ NTSTATUS rpc_trusted_domains(TALLOC_CTX *mem_ctx,
 			sid_copy(sid, dom_list.domains[i].sid);
 			trust->sid = sid;
 		}
-	} while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES));
+	} while (NT_STATUS_EQUAL(result, STATUS_MORE_ENTRIES));
 
 	*pnum_trusts = count;
 	*ptrusts = array;
diff --git a/source3/winbindd/winbindd_samr.c b/source3/winbindd/winbindd_samr.c
index 22235e3..ef27d38 100644
--- a/source3/winbindd/winbindd_samr.c
+++ b/source3/winbindd/winbindd_samr.c
@@ -30,7 +30,7 @@
 #include "../librpc/gen_ndr/ndr_samr_c.h"
 #include "rpc_client/cli_samr.h"
 #include "../librpc/gen_ndr/srv_samr.h"
-#include "../librpc/gen_ndr/cli_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa_c.h"
 #include "rpc_client/cli_lsarpc.h"
 #include "../librpc/gen_ndr/srv_lsa.h"
 #include "rpc_server/rpc_ncacn_np.h"
@@ -371,7 +371,8 @@ static NTSTATUS sam_trusted_domains(struct winbindd_domain *domain,
 	struct netr_DomainTrust *trusts = NULL;
 	uint32_t num_trusts = 0;
 	TALLOC_CTX *tmp_ctx;
-	NTSTATUS status;
+	NTSTATUS status, result;
+	struct dcerpc_binding_handle *b = NULL;
 
 	DEBUG(3,("samr: trusted domains\n"));
 
@@ -391,6 +392,8 @@ static NTSTATUS sam_trusted_domains(struct winbindd_domain *domain,
 		goto done;
 	}
 
+	b = lsa_pipe->binding_handle;
+
 	status = rpc_trusted_domains(tmp_ctx,
 				     lsa_pipe,
 				     &lsa_policy,
@@ -406,8 +409,8 @@ static NTSTATUS sam_trusted_domains(struct winbindd_domain *domain,
 	}
 
 done:
-	if (is_valid_policy_hnd(&lsa_policy)) {
-		rpccli_lsa_Close(lsa_pipe, mem_ctx, &lsa_policy);
+	if (b && is_valid_policy_hnd(&lsa_policy)) {
+		dcerpc_lsa_Close(b, mem_ctx, &lsa_policy, &result);
 	}
 
 	TALLOC_FREE(tmp_ctx);
@@ -623,7 +626,8 @@ static NTSTATUS sam_name_to_sid(struct winbindd_domain *domain,
 	struct dom_sid sid;
 	enum lsa_SidType type;
 	TALLOC_CTX *tmp_ctx;
-	NTSTATUS status;
+	NTSTATUS status, result;
+	struct dcerpc_binding_handle *b = NULL;
 
 	DEBUG(3,("sam_name_to_sid\n"));
 
@@ -639,6 +643,8 @@ static NTSTATUS sam_name_to_sid(struct winbindd_domain *domain,
 		goto done;
 	}
 
+	b = lsa_pipe->binding_handle;
+
 	status = rpc_name_to_sid(tmp_ctx,
 				 lsa_pipe,
 				 &lsa_policy,
@@ -659,8 +665,8 @@ static NTSTATUS sam_name_to_sid(struct winbindd_domain *domain,
 	}
 
 done:
-	if (is_valid_policy_hnd(&lsa_policy)) {
-		rpccli_lsa_Close(lsa_pipe, mem_ctx, &lsa_policy);
+	if (b && is_valid_policy_hnd(&lsa_policy)) {
+		dcerpc_lsa_Close(b, mem_ctx, &lsa_policy, &result);
 	}
 
 	TALLOC_FREE(tmp_ctx);
@@ -681,7 +687,8 @@ static NTSTATUS sam_sid_to_name(struct winbindd_domain *domain,
 	char *name = NULL;
 	enum lsa_SidType type;
 	TALLOC_CTX *tmp_ctx;
-	NTSTATUS status;
+	NTSTATUS status, result;
+	struct dcerpc_binding_handle *b = NULL;
 
 	DEBUG(3,("sam_sid_to_name\n"));
 
@@ -710,6 +717,8 @@ static NTSTATUS sam_sid_to_name(struct winbindd_domain *domain,
 		goto done;
 	}
 
+	b = lsa_pipe->binding_handle;
+
 	status = rpc_sid_to_name(tmp_ctx,
 				 lsa_pipe,
 				 &lsa_policy,
@@ -732,8 +741,8 @@ static NTSTATUS sam_sid_to_name(struct winbindd_domain *domain,
 	}
 
 done:
-	if (is_valid_policy_hnd(&lsa_policy)) {
-		rpccli_lsa_Close(lsa_pipe, mem_ctx, &lsa_policy);
+	if (b && is_valid_policy_hnd(&lsa_policy)) {
+		dcerpc_lsa_Close(b, mem_ctx, &lsa_policy, &result);
 	}
 
 	TALLOC_FREE(tmp_ctx);
@@ -755,7 +764,8 @@ static NTSTATUS sam_rids_to_names(struct winbindd_domain *domain,
 	char *domain_name = NULL;
 	char **names = NULL;
 	TALLOC_CTX *tmp_ctx;
-	NTSTATUS status;
+	NTSTATUS status, result;
+	struct dcerpc_binding_handle *b = NULL;
 
 	DEBUG(3,("sam_rids_to_names for %s\n", domain->name));
 
@@ -784,6 +794,8 @@ static NTSTATUS sam_rids_to_names(struct winbindd_domain *domain,
 		goto done;
 	}
 
+	b = lsa_pipe->binding_handle;
+
 	status = rpc_rids_to_names(tmp_ctx,
 				   lsa_pipe,
 				   &lsa_policy,
@@ -811,8 +823,8 @@ static NTSTATUS sam_rids_to_names(struct winbindd_domain *domain,
 	}
 
 done:
-	if (is_valid_policy_hnd(&lsa_policy)) {
-		rpccli_lsa_Close(lsa_pipe, mem_ctx, &lsa_policy);
+	if (b && is_valid_policy_hnd(&lsa_policy)) {
+		dcerpc_lsa_Close(b, mem_ctx, &lsa_policy, &result);
 	}
 
 	TALLOC_FREE(tmp_ctx);
diff --git a/source3/wscript_build b/source3/wscript_build
index 297b3b8..611e28d 100644
--- a/source3/wscript_build
+++ b/source3/wscript_build
@@ -1076,17 +1076,13 @@ bld.SAMBA_SUBSYSTEM('NDR_NBT_BUF',
 	deps='talloc',
 	autoproto='nbtname.h')
 
-bld.SAMBA_SUBSYSTEM('RPCCLI_LSA',
-	source='../librpc/gen_ndr/cli_lsa.c',
-	public_deps='RPC_NDR_LSA')
-
 bld.SAMBA_SUBSYSTEM('LIBCLI_SAMR',
                     source=LIBCLI_SAMR_SRC,
                     deps='RPC_NDR_SAMR')
 
 bld.SAMBA_SUBSYSTEM('LIBCLI_LSA',
                     source=LIBCLI_LSA_SRC,
-                    deps='RPCCLI_LSA INIT_LSA')
+                    deps='RPC_NDR_LSA INIT_LSA')
 
 bld.SAMBA_SUBSYSTEM('LIBRPCCLI_NETLOGON',
                     source=LIBRPCCLI_NETLOGON_SRC,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list