[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-2894-g2351b08

Günther Deschner gd at samba.org
Tue Jun 17 18:02:49 GMT 2008


The branch, v3-3-test has been updated
       via  2351b0845ca78707901daca6a6d0425959c6f28e (commit)
      from  ad105177686da823ef9cce1c1bedaf0f84a49b8c (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 2351b0845ca78707901daca6a6d0425959c6f28e
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jun 11 10:12:29 2008 +0200

    rpcclient: add more generic internal dscracknames call.
    
    Guenther

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

Summary of changes:
 source/rpcclient/cmd_drsuapi.c |   83 +++++++++++++++++++++++++++------------
 1 files changed, 57 insertions(+), 26 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/rpcclient/cmd_drsuapi.c b/source/rpcclient/cmd_drsuapi.c
index 8617f56..ca041be 100644
--- a/source/rpcclient/cmd_drsuapi.c
+++ b/source/rpcclient/cmd_drsuapi.c
@@ -21,6 +21,56 @@
 #include "includes.h"
 #include "rpcclient.h"
 
+static WERROR cracknames(struct rpc_pipe_client *cli,
+			 TALLOC_CTX *mem_ctx,
+			 struct policy_handle *bind_handle,
+			 enum drsuapi_DsNameFormat format_offered,
+			 enum drsuapi_DsNameFormat format_desired,
+			 int argc,
+			 const char **argv,
+			 union drsuapi_DsNameCtr *ctr)
+{
+	NTSTATUS status;
+	WERROR werr;
+	int i;
+	int32_t level = 1;
+	union drsuapi_DsNameRequest req;
+	int32_t level_out;
+	struct drsuapi_DsNameString *names;
+
+	names = TALLOC_ZERO_ARRAY(mem_ctx, struct drsuapi_DsNameString, argc);
+	W_ERROR_HAVE_NO_MEMORY(names);
+
+	for (i=0; i<argc; i++) {
+		names[i].str = argv[i];
+	}
+
+	req.req1.codepage	= 1252; /* german */
+	req.req1.language	= 0x00000407; /* german */
+	req.req1.count		= argc;
+	req.req1.names		= names;
+	req.req1.format_flags	= DRSUAPI_DS_NAME_FLAG_NO_FLAGS;
+	req.req1.format_offered	= format_offered;
+	req.req1.format_desired	= format_desired;
+
+	status = rpccli_drsuapi_DsCrackNames(cli, mem_ctx,
+					     bind_handle,
+					     level,
+					     &req,
+					     &level_out,
+					     ctr,
+					     &werr);
+	if (!NT_STATUS_IS_OK(status)) {
+		return ntstatus_to_werror(status);
+	}
+
+	if (!W_ERROR_IS_OK(werr)) {
+		return werr;
+	}
+
+	return WERR_OK;
+}
+
 static WERROR cmd_drsuapi_cracknames(struct rpc_pipe_client *cli,
 				     TALLOC_CTX *mem_ctx, int argc,
 				     const char **argv)
@@ -32,11 +82,7 @@ static WERROR cmd_drsuapi_cracknames(struct rpc_pipe_client *cli,
 	struct GUID bind_guid;
 	struct policy_handle bind_handle;
 
-	int32_t level = 1;
-	union drsuapi_DsNameRequest req;
-	int32_t level_out;
 	union drsuapi_DsNameCtr ctr;
-	struct drsuapi_DsNameString names[1];
 
 	if (argc < 2) {
 		printf("usage: %s name\n", argv[0]);
@@ -55,28 +101,13 @@ static WERROR cmd_drsuapi_cracknames(struct rpc_pipe_client *cli,
 		return ntstatus_to_werror(status);
 	}
 
-	names[0].str = argv[1];
-
-	req.req1.codepage	= 1252; /* german */
-	req.req1.language	= 0x00000407; /* german */
-	req.req1.count		= 1;
-	req.req1.names		= names;
-	req.req1.format_flags	= DRSUAPI_DS_NAME_FLAG_NO_FLAGS;
-	req.req1.format_offered	= DRSUAPI_DS_NAME_FORMAT_UKNOWN;
-	req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
-
-	status = rpccli_drsuapi_DsCrackNames(cli, mem_ctx,
-					     &bind_handle,
-					     level,
-					     &req,
-					     &level_out,
-					     &ctr,
-					     &werr);
-
-	if (!NT_STATUS_IS_OK(status)) {
-		werr = ntstatus_to_werror(status);
-		goto out;
-	}
+	werr = cracknames(cli, mem_ctx,
+			  &bind_handle,
+			  DRSUAPI_DS_NAME_FORMAT_UKNOWN,
+			  DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+			  1,
+			  argv+1,
+			  &ctr);
 
 	if (!W_ERROR_IS_OK(werr)) {
 		goto out;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list