[SCM] Samba Shared Repository - branch master updated

Matthias Dieter Wallnöfer mdw at samba.org
Mon May 31 04:49:56 MDT 2010


The branch, master has been updated
       via  11e2608... s3/s4:netrEnumerateTrustedDomains - this call returns a "NTSTATUS" result
      from  0eec334... s4:dcesrv_netr_DsrEnumerateDomainTrusts - fix an integer type

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


- Log -----------------------------------------------------------------
commit 11e2608ba97018987b0143521248a83b2dab07e6
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date:   Mon May 31 10:15:25 2010 +0200

    s3/s4:netrEnumerateTrustedDomains - this call returns a "NTSTATUS" result
    
    See MS-NRPC 3.5.5.6.3.

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

Summary of changes:
 librpc/idl/netlogon.idl                       |    2 +-
 source3/rpc_server/srv_netlog_nt.c            |   14 +++++++-------
 source3/rpcclient/cmd_netlogon.c              |   22 +++++++++-------------
 source4/rpc_server/netlogon/dcerpc_netlogon.c |    4 ++--
 source4/torture/rpc/netlogon.c                |    2 +-
 5 files changed, 20 insertions(+), 24 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
index 4bebb83..7670d34 100644
--- a/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -1080,7 +1080,7 @@ interface netlogon
 		[size_is(length)] uint8 *data;
 	} netr_Blob;
 
-	WERROR netr_NetrEnumerateTrustedDomains(
+	NTSTATUS netr_NetrEnumerateTrustedDomains(
 		[in,unique] [string,charset(UTF16)] uint16 *server_name,
 		[out,ref] netr_Blob *trusted_domains_blob
 		);
diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c
index ec6ade6..f0b9bab 100644
--- a/source3/rpc_server/srv_netlog_nt.c
+++ b/source3/rpc_server/srv_netlog_nt.c
@@ -384,8 +384,8 @@ WERROR _netr_LogonControl2Ex(pipes_struct *p,
  _netr_NetrEnumerateTrustedDomains
  *************************************************************************/
 
-WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
-					 struct netr_NetrEnumerateTrustedDomains *r)
+NTSTATUS _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
+					   struct netr_NetrEnumerateTrustedDomains *r)
 {
 	NTSTATUS status;
 	DATA_BLOB blob;
@@ -403,25 +403,25 @@ WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
 	unbecome_root();
 
 	if (!NT_STATUS_IS_OK(status)) {
-		return ntstatus_to_werror(status);
+		return status;
 	}
 
 	trusted_domains = talloc_zero_array(p->mem_ctx, const char *, num_domains + 1);
 	if (!trusted_domains) {
-		return WERR_NOMEM;
+		return NT_STATUS_NO_MEMORY;
 	}
 
 	for (i = 0; i < num_domains; i++) {
 		trusted_domains[i] = talloc_strdup(trusted_domains, domains[i]->name);
 		if (!trusted_domains[i]) {
 			TALLOC_FREE(trusted_domains);
-			return WERR_NOMEM;
+			return NT_STATUS_NO_MEMORY;
 		}
 	}
 
 	if (!push_reg_multi_sz(trusted_domains, &blob, trusted_domains)) {
 		TALLOC_FREE(trusted_domains);
-		return WERR_NOMEM;
+		return NT_STATUS_NO_MEMORY;
 	}
 
 	r->out.trusted_domains_blob->data = blob.data;
@@ -429,7 +429,7 @@ WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
 
 	DEBUG(6,("_netr_NetrEnumerateTrustedDomains: %d\n", __LINE__));
 
-	return WERR_OK;
+	return NT_STATUS_OK;
 }
 
 /******************************************************************
diff --git a/source3/rpcclient/cmd_netlogon.c b/source3/rpcclient/cmd_netlogon.c
index 262975b..faa2bff 100644
--- a/source3/rpcclient/cmd_netlogon.c
+++ b/source3/rpcclient/cmd_netlogon.c
@@ -938,19 +938,18 @@ static WERROR cmd_netlogon_dsr_getforesttrustinfo(struct rpc_pipe_client *cli,
 	return werr;
 }
 
-static WERROR cmd_netlogon_enumtrusteddomains(struct rpc_pipe_client *cli,
-					      TALLOC_CTX *mem_ctx, int argc,
-					      const char **argv)
+static NTSTATUS cmd_netlogon_enumtrusteddomains(struct rpc_pipe_client *cli,
+						TALLOC_CTX *mem_ctx, int argc,
+						const char **argv)
 {
 	NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
-	WERROR werr = WERR_GENERAL_FAILURE;
 	const char *server_name = cli->desthost;
 	struct netr_Blob blob;
 
 
 	if (argc < 1 || argc > 3) {
 		fprintf(stderr, "Usage: %s <server_name>\n", argv[0]);
-		return WERR_OK;
+		return NT_STATUS_OK;
 	}
 
 	if (argc >= 2) {
@@ -959,18 +958,15 @@ static WERROR cmd_netlogon_enumtrusteddomains(struct rpc_pipe_client *cli,
 
 	status = rpccli_netr_NetrEnumerateTrustedDomains(cli, mem_ctx,
 							 server_name,
-							 &blob,
-							 &werr);
+							 &blob);
 	if (!NT_STATUS_IS_OK(status)) {
 		goto done;
 	}
 
-	if (W_ERROR_IS_OK(werr)) {
-		printf("success\n");
-		dump_data(1, blob.data, blob.length);
-	}
+	printf("success\n");
+	dump_data(1, blob.data, blob.length);
  done:
-	return werr;
+	return status;
 }
 
 static WERROR cmd_netlogon_enumtrusteddomainsex(struct rpc_pipe_client *cli,
@@ -1175,7 +1171,7 @@ struct cmd_set netlogon_commands[] = {
 	{ "dsr_enumtrustdom", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_enumtrustdom, &ndr_table_netlogon.syntax_id, NULL, "Enumerate trusted domains",     "" },
 	{ "dsenumdomtrusts",  RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_enumtrustdom, &ndr_table_netlogon.syntax_id, NULL, "Enumerate all trusted domains in an AD forest",     "" },
 	{ "deregisterdnsrecords", RPC_RTYPE_WERROR, NULL, cmd_netlogon_deregisterdnsrecords, &ndr_table_netlogon.syntax_id, NULL, "Deregister DNS records",     "" },
-	{ "netrenumtrusteddomains", RPC_RTYPE_WERROR, NULL, cmd_netlogon_enumtrusteddomains, &ndr_table_netlogon.syntax_id, NULL, "Enumerate trusted domains",     "" },
+	{ "netrenumtrusteddomains", RPC_RTYPE_NTSTATUS, cmd_netlogon_enumtrusteddomains, NULL, &ndr_table_netlogon.syntax_id, NULL, "Enumerate trusted domains",     "" },
 	{ "netrenumtrusteddomainsex", RPC_RTYPE_WERROR, NULL, cmd_netlogon_enumtrusteddomainsex, &ndr_table_netlogon.syntax_id, NULL, "Enumerate trusted domains",     "" },
 	{ "getdcsitecoverage", RPC_RTYPE_WERROR, NULL, cmd_netlogon_getdcsitecoverage, &ndr_table_netlogon.syntax_id, NULL, "Get the Site-Coverage from a DC",     "" },
 	{ "database_redo", RPC_RTYPE_NTSTATUS, cmd_netlogon_database_redo, NULL, &ndr_table_netlogon.syntax_id, NULL, "Replicate single object from a DC",     "" },
diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c
index cfcb4f6..8bfa449 100644
--- a/source4/rpc_server/netlogon/dcerpc_netlogon.c
+++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c
@@ -1066,9 +1066,9 @@ static NTSTATUS dcesrv_netr_DatabaseRedo(struct dcesrv_call_state *dce_call, TAL
 
 
 /*
-  netr_NetrEnumerateTurstedDomains
+  netr_NetrEnumerateTrustedDomains
 */
-static WERROR dcesrv_netr_NetrEnumerateTrustedDomains(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static NTSTATUS dcesrv_netr_NetrEnumerateTrustedDomains(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
 		       struct netr_NetrEnumerateTrustedDomains *r)
 {
 	DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
diff --git a/source4/torture/rpc/netlogon.c b/source4/torture/rpc/netlogon.c
index b1d6d1b..03de3bd 100644
--- a/source4/torture/rpc/netlogon.c
+++ b/source4/torture/rpc/netlogon.c
@@ -2139,7 +2139,7 @@ static bool test_netr_NetrEnumerateTrustedDomains(struct torture_context *tctx,
 
 	status = dcerpc_netr_NetrEnumerateTrustedDomains_r(b, tctx, &r);
 	torture_assert_ntstatus_ok(tctx, status, "netr_NetrEnumerateTrustedDomains");
-	torture_assert_werr_ok(tctx, r.out.result, "NetrEnumerateTrustedDomains");
+	torture_assert_ntstatus_ok(tctx, r.out.result, "NetrEnumerateTrustedDomains");
 
 	return true;
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list