[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Wed Jan 16 05:27:02 MST 2013


The branch, master has been updated
       via  46b6afc s4-torture: add ndr64 spoolss openprinterex to ndr test.
       via  6cdf59d s4-torture: allow to do ndr tests with flags, not only ndr_flags.
       via  a4dcf7b spoolss: Make OpenPrinterEx work with NDR64 by using UserInfo Container.
      from  6bb7bf9 test: dbwrap_tool requires --persistent for the registry now

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


- Log -----------------------------------------------------------------
commit 46b6afc69baf89ba346e4418452b2d5a49b3e322
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 15 17:05:10 2013 +0100

    s4-torture: add ndr64 spoolss openprinterex to ndr test.
    
    Guenther
    
    Signed-off-by: Günther Deschner <gd at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Wed Jan 16 13:26:53 CET 2013 on sn-devel-104

commit 6cdf59d716eb41c8ce67ff55aa661eaa09fa2e1b
Author: Günther Deschner <gd at samba.org>
Date:   Tue Jan 15 17:04:08 2013 +0100

    s4-torture: allow to do ndr tests with flags, not only ndr_flags.
    
    Guenther
    
    Signed-off-by: Günther Deschner <gd at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit a4dcf7b94d8f2d8180bb5b390f49e89e2c956a88
Author: Günther Deschner <gd at samba.org>
Date:   Mon Jan 14 17:26:31 2013 +0100

    spoolss: Make OpenPrinterEx work with NDR64 by using UserInfo Container.
    
    Guenther
    
    Signed-off-by: Günther Deschner <gd at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

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

Summary of changes:
 librpc/idl/spoolss.idl                      |    3 +-
 source3/rpc_client/cli_spoolss.c            |    8 +++---
 source3/rpc_server/spoolss/srv_spoolss_nt.c |   14 ++++++----
 source4/rpc_server/spoolss/dcesrv_spoolss.c |    5 +--
 source4/torture/ndr/ndr.c                   |    5 ++++
 source4/torture/ndr/ndr.h                   |   12 +++++++--
 source4/torture/ndr/spoolss.c               |   28 +++++++++++++++++++++
 source4/torture/rpc/samba3rpc.c             |    8 +++---
 source4/torture/rpc/spoolss.c               |   35 +++++++++++++--------------
 source4/torture/rpc/spoolss_access.c        |    4 +-
 source4/torture/rpc/spoolss_win.c           |    8 +++---
 11 files changed, 84 insertions(+), 46 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index 06a0935..7d8e8de 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -2821,8 +2821,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
 		[in,unique]           [string,charset(UTF16)] uint16 *datatype,
 		[in]	              spoolss_DevmodeContainer devmode_ctr,
 		[in]	              spoolss_AccessRights access_mask,
-		[in]	              uint32 level,
-		[in,switch_is(level)] spoolss_UserLevel userlevel,
+		[in]	              spoolss_UserLevelCtr userlevel_ctr,
 		[out,ref]	      policy_handle *handle
 	);
 
diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c
index 5c8448b..1a8903d 100644
--- a/source3/rpc_client/cli_spoolss.c
+++ b/source3/rpc_client/cli_spoolss.c
@@ -40,7 +40,7 @@ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli,
 	NTSTATUS status;
 	WERROR werror;
 	struct spoolss_DevmodeContainer devmode_ctr;
-	union spoolss_UserLevel userlevel;
+	struct spoolss_UserLevelCtr userlevel_ctr;
 	struct spoolss_UserLevel1 level1;
 	struct dcerpc_binding_handle *b = cli->binding_handle;
 
@@ -55,15 +55,15 @@ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli,
 	level1.minor	= 0;
 	level1.processor = 0;
 
-	userlevel.level1 = &level1;
+	userlevel_ctr.level = 1;
+	userlevel_ctr.user_info.level1 = &level1;
 
 	status = dcerpc_spoolss_OpenPrinterEx(b, mem_ctx,
 					      printername,
 					      NULL,
 					      devmode_ctr,
 					      access_desired,
-					      1, /* level */
-					      userlevel,
+					      userlevel_ctr,
 					      handle,
 					      &werror);
 
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index 28ef836..48a2981 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -1632,15 +1632,17 @@ WERROR _spoolss_OpenPrinter(struct pipes_struct *p,
 			    struct spoolss_OpenPrinter *r)
 {
 	struct spoolss_OpenPrinterEx e;
+	struct spoolss_UserLevel1 level1;
 	WERROR werr;
 
-	ZERO_STRUCT(e.in.userlevel);
+	ZERO_STRUCT(level1);
 
 	e.in.printername	= r->in.printername;
 	e.in.datatype		= r->in.datatype;
 	e.in.devmode_ctr	= r->in.devmode_ctr;
 	e.in.access_mask	= r->in.access_mask;
-	e.in.level		= 0;
+	e.in.userlevel_ctr.level		= 1;
+	e.in.userlevel_ctr.user_info.level1	= &level1;
 
 	e.out.handle		= r->out.handle;
 
@@ -1714,12 +1716,12 @@ WERROR _spoolss_OpenPrinterEx(struct pipes_struct *p,
 		return WERR_INVALID_PARAM;
 	}
 
-	if (r->in.level > 3) {
+	if (r->in.userlevel_ctr.level > 3) {
 		return WERR_INVALID_PARAM;
 	}
-	if ((r->in.level == 1 && !r->in.userlevel.level1) ||
-	    (r->in.level == 2 && !r->in.userlevel.level2) ||
-	    (r->in.level == 3 && !r->in.userlevel.level3)) {
+	if ((r->in.userlevel_ctr.level == 1 && !r->in.userlevel_ctr.user_info.level1) ||
+	    (r->in.userlevel_ctr.level == 2 && !r->in.userlevel_ctr.user_info.level2) ||
+	    (r->in.userlevel_ctr.level == 3 && !r->in.userlevel_ctr.user_info.level3)) {
 		return WERR_INVALID_PARAM;
 	}
 
diff --git a/source4/rpc_server/spoolss/dcesrv_spoolss.c b/source4/rpc_server/spoolss/dcesrv_spoolss.c
index 76035f3..e3df4e0 100644
--- a/source4/rpc_server/spoolss/dcesrv_spoolss.c
+++ b/source4/rpc_server/spoolss/dcesrv_spoolss.c
@@ -269,9 +269,8 @@ static WERROR dcesrv_spoolss_OpenPrinter(struct dcesrv_call_state *dce_call, TAL
 	r2->in.datatype		= r->in.datatype;
 	r2->in.devmode_ctr	= r->in.devmode_ctr;
 	r2->in.access_mask	= r->in.access_mask;
-	r2->in.level		= 1;
-	r2->in.userlevel.level1	= NULL;
-
+	r2->in.userlevel_ctr.level	= 1;
+	r2->in.userlevel_ctr.user_info.level1 = NULL;
 	r2->out.handle		= r->out.handle;
 
 	/* TODO: we should take care about async replies here,
diff --git a/source4/torture/ndr/ndr.c b/source4/torture/ndr/ndr.c
index a7e580f..30cd46a 100644
--- a/source4/torture/ndr/ndr.c
+++ b/source4/torture/ndr/ndr.c
@@ -31,6 +31,7 @@ struct ndr_pull_test_data {
 	ndr_pull_flags_fn_t pull_fn;
 	ndr_push_flags_fn_t push_fn;
 	int ndr_flags;
+	int flags;
 };
 
 static bool wrap_ndr_pullpush_test(struct torture_context *tctx,
@@ -43,6 +44,8 @@ static bool wrap_ndr_pullpush_test(struct torture_context *tctx,
 	void *ds = talloc_zero_size(ndr, data->struct_size);
 	bool ret;
 
+	ndr->flags |= data->flags;
+
 	ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
 
 	torture_assert_ndr_success(tctx, data->pull_fn(ndr, data->ndr_flags, ds),
@@ -76,6 +79,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pullpush_test(
 	DATA_BLOB db,
 	size_t struct_size,
 	int ndr_flags,
+	int flags,
 	bool (*check_fn) (struct torture_context *ctx, void *data))
 {
 	struct torture_test *test;
@@ -93,6 +97,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pullpush_test(
 	data = talloc(test, struct ndr_pull_test_data);
 	data->data = db;
 	data->ndr_flags = ndr_flags;
+	data->flags = flags;
 	data->struct_size = struct_size;
 	data->pull_fn = pull_fn;
 	data->push_fn = push_fn;
diff --git a/source4/torture/ndr/ndr.h b/source4/torture/ndr/ndr.h
index ee4db0a..068d5f6 100644
--- a/source4/torture/ndr/ndr.h
+++ b/source4/torture/ndr/ndr.h
@@ -32,6 +32,7 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pullpush_test(
 					DATA_BLOB db,
 					size_t struct_size,
 					int ndr_flags,
+					int flags,
 					bool (*check_fn) (struct torture_context *, void *data));
 
 _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test(
@@ -45,19 +46,24 @@ _PUBLIC_ struct torture_test *_torture_suite_add_ndr_pull_inout_test(
 #define torture_suite_add_ndr_pull_test(suite,name,data,check_fn) \
 		_torture_suite_add_ndr_pullpush_test(suite, #name, \
 			 (ndr_pull_flags_fn_t)ndr_pull_ ## name, NULL, data_blob_const(data, sizeof(data)), \
-			 sizeof(struct name), NDR_SCALARS|NDR_BUFFERS, (bool (*) (struct torture_context *, void *)) check_fn);
+			 sizeof(struct name), NDR_SCALARS|NDR_BUFFERS, 0, (bool (*) (struct torture_context *, void *)) check_fn);
 
 #define torture_suite_add_ndr_pull_fn_test(suite,name,data,flags,check_fn) \
 		_torture_suite_add_ndr_pullpush_test(suite, #name "_" #flags, \
 			 (ndr_pull_flags_fn_t)ndr_pull_ ## name, NULL, data_blob_const(data, sizeof(data)), \
-			 sizeof(struct name), flags, (bool (*) (struct torture_context *, void *)) check_fn);
+			 sizeof(struct name), flags, 0, (bool (*) (struct torture_context *, void *)) check_fn);
+
+#define torture_suite_add_ndr_pull_fn_test_flags(suite,name,data,flags,flags2,check_fn) \
+		_torture_suite_add_ndr_pullpush_test(suite, #name "_" #flags "_" #flags2, \
+			 (ndr_pull_flags_fn_t)ndr_pull_ ## name, NULL, data_blob_const(data, sizeof(data)), \
+			 sizeof(struct name), flags, flags2, (bool (*) (struct torture_context *, void *)) check_fn);
 
 #define torture_suite_add_ndr_pullpush_test(suite,name,data_blob,check_fn) \
 		_torture_suite_add_ndr_pullpush_test(suite, #name, \
 			 (ndr_pull_flags_fn_t)ndr_pull_ ## name, \
 			 (ndr_push_flags_fn_t)ndr_push_ ## name, \
 			 data_blob, \
-			 sizeof(struct name), NDR_SCALARS|NDR_BUFFERS, (bool (*) (struct torture_context *, void *)) check_fn);
+			 sizeof(struct name), NDR_SCALARS|NDR_BUFFERS, 0, (bool (*) (struct torture_context *, void *)) check_fn);
 
 #define torture_suite_add_ndr_pull_io_test(suite,name,data_in,data_out,check_fn_out) \
 		_torture_suite_add_ndr_pull_inout_test(suite, #name "_INOUT", \
diff --git a/source4/torture/ndr/spoolss.c b/source4/torture/ndr/spoolss.c
index 0cb792a..437677b 100644
--- a/source4/torture/ndr/spoolss.c
+++ b/source4/torture/ndr/spoolss.c
@@ -1602,6 +1602,32 @@ static bool getprinterdriver2_out_check(struct torture_context *tctx,
 	return true;
 }
 
+static const uint8_t openprinterex_64_req_data[] = {
+	0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x5c, 0x00,
+	0x31, 0x00, 0x39, 0x00, 0x32, 0x00, 0x2e, 0x00, 0x31, 0x00, 0x36, 0x00,
+	0x38, 0x00, 0x2e, 0x00, 0x33, 0x00, 0x2e, 0x00, 0x37, 0x00, 0x35, 0x00,
+	0x5c, 0x00, 0x68, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x23, 0x00, 0x00,
+	0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+	0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x57, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x53, 0x00, 0x41, 0x00, 0x4d, 0x00, 0x42, 0x00,
+	0x41, 0x00, 0x5c, 0x00, 0x41, 0x00, 0x64, 0x00, 0x6d, 0x00, 0x69, 0x00,
+	0x6e, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x61, 0x00,
+	0x74, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x00, 0x00
+};
+
 struct torture_suite *ndr_spoolss_suite(TALLOC_CTX *ctx)
 {
 	struct torture_suite *suite = torture_suite_create(ctx, "spoolss");
@@ -1657,5 +1683,7 @@ struct torture_suite *ndr_spoolss_suite(TALLOC_CTX *ctx)
 	torture_suite_add_ndr_pull_fn_test(suite, spoolss_GetPrinterDriver2, getprinterdriver2_in_data, NDR_IN, getprinterdriver2_in_check);
 	torture_suite_add_ndr_pull_io_test(suite, spoolss_GetPrinterDriver2, getprinterdriver2_in_data, getprinterdriver2_out_data, getprinterdriver2_out_check);
 
+	torture_suite_add_ndr_pull_fn_test_flags(suite, spoolss_OpenPrinterEx, openprinterex_64_req_data, NDR_IN, LIBNDR_FLAG_NDR64, NULL);
+
 	return suite;
 }
diff --git a/source4/torture/rpc/samba3rpc.c b/source4/torture/rpc/samba3rpc.c
index c19476d..f7c7674 100644
--- a/source4/torture/rpc/samba3rpc.c
+++ b/source4/torture/rpc/samba3rpc.c
@@ -2804,8 +2804,8 @@ static bool torture_samba3_rpc_spoolss(struct torture_context *torture)
 						   servername);
 		r.in.datatype = NULL;
 		r.in.access_mask = 0;
-		r.in.level = 1;
-		r.in.userlevel.level1 = &userlevel1;
+		r.in.userlevel_ctr.level = 1;
+		r.in.userlevel_ctr.user_info.level1 = &userlevel1;
 		r.out.handle = &server_handle;
 
 		torture_assert_ntstatus_ok(torture,
@@ -2836,8 +2836,8 @@ static bool torture_samba3_rpc_spoolss(struct torture_context *torture)
 			torture, "\\\\%s\\%s", servername, printers[0]);
 		r.in.datatype = NULL;
 		r.in.access_mask = 0;
-		r.in.level = 1;
-		r.in.userlevel.level1 = &userlevel1;
+		r.in.userlevel_ctr.level = 1;
+		r.in.userlevel_ctr.user_info.level1 = &userlevel1;
 		r.out.handle = &printer_handle;
 
 		torture_assert_ntstatus_ok(torture,
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index b1229ac..064d3b4 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -5777,8 +5777,8 @@ static bool test_OpenPrinter_badname(struct torture_context *tctx,
 	opEx.in.datatype		= NULL;
 	opEx.in.devmode_ctr.devmode	= NULL;
 	opEx.in.access_mask		= 0;
-	opEx.in.level			= 1;
-	opEx.in.userlevel.level1	= NULL;
+	opEx.in.userlevel_ctr.level		= 1;
+	opEx.in.userlevel_ctr.user_info.level1 = NULL;
 	opEx.out.handle			= &handle;
 
 	torture_comment(tctx, "Testing OpenPrinterEx(%s) with bad name\n", opEx.in.printername);
@@ -5887,8 +5887,7 @@ static bool test_OpenPrinterEx(struct torture_context *tctx,
 			       const char *datatype,
 			       struct spoolss_DeviceMode *devmode,
 			       uint32_t access_mask,
-			       uint32_t level,
-			       union spoolss_UserLevel *userlevel,
+			       struct spoolss_UserLevelCtr *userlevel_ctr,
 			       struct policy_handle *handle,
 			       WERROR expected_result)
 {
@@ -5898,8 +5897,7 @@ static bool test_OpenPrinterEx(struct torture_context *tctx,
 	r.in.datatype		= datatype;
 	r.in.devmode_ctr.devmode= devmode;
 	r.in.access_mask	= access_mask;
-	r.in.level		= level;
-	r.in.userlevel		= *userlevel;
+	r.in.userlevel_ctr	= *userlevel_ctr;
 	r.out.handle		= handle;
 
 	torture_comment(tctx, "Testing OpenPrinterEx(%s)\n", r.in.printername);
@@ -5920,7 +5918,7 @@ static bool call_OpenPrinterEx(struct torture_context *tctx,
 			       struct spoolss_DeviceMode *devmode,
 			       struct policy_handle *handle)
 {
-	union spoolss_UserLevel userlevel;
+	struct spoolss_UserLevelCtr userlevel_ctr;
 	struct spoolss_UserLevel1 userlevel1;
 	struct dcerpc_binding_handle *b = p->binding_handle;
 
@@ -5932,12 +5930,12 @@ static bool call_OpenPrinterEx(struct torture_context *tctx,
 	userlevel1.minor = 3;
 	userlevel1.processor = 4;
 
-	userlevel.level1 = &userlevel1;
+	userlevel_ctr.level = 1;
+	userlevel_ctr.user_info.level1 = &userlevel1;
 
 	return test_OpenPrinterEx(tctx, b, name, NULL, devmode,
 				  SEC_FLAG_MAXIMUM_ALLOWED,
-				  1,
-				  &userlevel,
+				  &userlevel_ctr,
 				  handle,
 				  WERR_OK);
 }
@@ -6041,7 +6039,7 @@ static bool test_openprinter(struct torture_context *tctx,
 			     struct dcerpc_binding_handle *b,
 			     const char *real_printername)
 {
-	union spoolss_UserLevel userlevel;
+	struct spoolss_UserLevelCtr userlevel_ctr;
 	struct policy_handle handle;
 	struct spoolss_UserLevel1 userlevel1;
 	const char *printername = NULL;
@@ -6119,13 +6117,14 @@ static bool test_openprinter(struct torture_context *tctx,
 	userlevel1.minor = 3;
 	userlevel1.processor = 4;
 
-	userlevel.level1 = &userlevel1;
+	userlevel_ctr.level = 1;
+	userlevel_ctr.user_info.level1 = &userlevel1;
 
 	torture_comment(tctx, "Testing openprinterex printername pattern\n");
 
 	torture_assert(tctx,
-		test_OpenPrinterEx(tctx, b, real_printername, NULL, NULL, 0, 1,
-				   &userlevel, &handle,
+		test_OpenPrinterEx(tctx, b, real_printername, NULL, NULL, 0,
+				   &userlevel_ctr, &handle,
 				   WERR_OK),
 		"OpenPrinterEx failed");
 	test_ClosePrinter(tctx, b, &handle);
@@ -6137,8 +6136,8 @@ static bool test_openprinter(struct torture_context *tctx,
 					      tests[i].suffix);
 
 		torture_assert(tctx,
-			test_OpenPrinterEx(tctx, b, printername, NULL, NULL, 0, 1,
-					   &userlevel, &handle,
+			test_OpenPrinterEx(tctx, b, printername, NULL, NULL, 0,
+					   &userlevel_ctr, &handle,
 					   tests[i].expected_result),
 			"OpenPrinterEx failed");
 		if (W_ERROR_IS_OK(tests[i].expected_result)) {
@@ -7335,8 +7334,8 @@ static bool test_architecture_buffer(struct torture_context *tctx,
 		r.in.datatype		= NULL;
 		r.in.devmode_ctr.devmode= NULL;
 		r.in.access_mask	= SEC_FLAG_MAXIMUM_ALLOWED;
-		r.in.level		 = 1;
-		r.in.userlevel.level1	= &u1;
+		r.in.userlevel_ctr.level = 1;
+		r.in.userlevel_ctr.user_info.level1 = &u1;
 		r.out.handle		= &handle;
 
 		torture_assert_ntstatus_ok(tctx, dcerpc_spoolss_OpenPrinterEx_r(b, tctx, &r), "");
diff --git a/source4/torture/rpc/spoolss_access.c b/source4/torture/rpc/spoolss_access.c
index a935cbd..411dac1 100644
--- a/source4/torture/rpc/spoolss_access.c
+++ b/source4/torture/rpc/spoolss_access.c
@@ -83,8 +83,8 @@ static bool test_openprinter_handle(struct torture_context *tctx,
 	r.in.datatype		= NULL;
 	r.in.devmode_ctr.devmode= NULL;
 	r.in.access_mask	= access_mask;
-	r.in.level		= 1;
-	r.in.userlevel.level1	= &level1;
+	r.in.userlevel_ctr.level = 1;
+	r.in.userlevel_ctr.user_info.level1 = &level1;
 	r.out.handle		= handle;
 
 	torture_comment(tctx, "Testing OpenPrinterEx(%s) with access_mask 0x%08x (%s)\n",
diff --git a/source4/torture/rpc/spoolss_win.c b/source4/torture/rpc/spoolss_win.c
index 96c3a24..bda0f3a 100644
--- a/source4/torture/rpc/spoolss_win.c
+++ b/source4/torture/rpc/spoolss_win.c
@@ -54,8 +54,8 @@ static bool test_OpenPrinterEx(struct torture_context *tctx,
 	op.in.datatype			= NULL;
 	op.in.devmode_ctr.devmode	= NULL;
 	op.in.access_mask		= access_mask;
-	op.in.level			= 1;
-	op.in.userlevel.level1		= &ul_1;
+	op.in.userlevel_ctr.level	= 1;
+	op.in.userlevel_ctr.user_info.level1 = &ul_1;
 	op.out.handle			= handle;
 
 	ul_1.size 			= 1234;
@@ -95,8 +95,8 @@ static bool test_OpenPrinterAsAdmin(struct torture_context *tctx,
 	op.in.datatype			= NULL;
 	op.in.devmode_ctr.devmode	= NULL;
 	op.in.access_mask		= SERVER_ALL_ACCESS;
-	op.in.level			= 1;
-	op.in.userlevel.level1		= &ul_1;
+	op.in.userlevel_ctr.level	= 1;
+	op.in.userlevel_ctr.user_info.level1 = &ul_1;
 	op.out.handle			= &handle;
 
 	cp.in.handle			= &handle;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list