[SCM] Samba Shared Repository - branch v3-4-test updated - release-4-0-0alpha7-391-g2e91b3a

Günther Deschner gd at samba.org
Tue Mar 17 10:38:10 GMT 2009


The branch, v3-4-test has been updated
       via  2e91b3abbe9cb2451ed363d98e987f8ed89ed63b (commit)
       via  adaf2d1554c55c80b259bc02f11d670acb5ab0d0 (commit)
       via  f8ca8f50e43be297b148bc091b179fb656c82456 (commit)
       via  1158eaa5c56908b8ba87283dd8cc1669040ec918 (commit)
       via  305b97fa8d79ce99c2672429e92e32114b34d946 (commit)
       via  8cb33c54922b489d20a62ff3ede7288e181f3062 (commit)
       via  a32f227e31fa6fed9f935b6686c9289ee574c0aa (commit)
       via  65d023dc5fcaa397670c176ca287f8e5cc6c17f7 (commit)
       via  ea68c717083cac063da0fd1f321f39ba72067212 (commit)
       via  4aa8510e8f300b677c7e2b367e6768946d44ed75 (commit)
       via  de3971c6f4818ed2bcbe2fddf1f81c29bdb31061 (commit)
       via  fa7ff3228085fd449c23055d2116238ece158196 (commit)
       via  8f13a06f5ebc203a5c540b8fc83f2315cab2b9a2 (commit)
       via  8a9f1cf71d9b74a272612bf82f27c2f18766d136 (commit)
      from  a6b0963d718d792f7b4cb218f6a070715ec7a091 (commit)

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


- Log -----------------------------------------------------------------
commit 2e91b3abbe9cb2451ed363d98e987f8ed89ed63b
Author: Günther Deschner <gd at samba.org>
Date:   Mon Mar 16 16:01:10 2009 +0100

    s4-smbtorture: fix RPC-SPOOLSS test after PrinterData changes.
    
    Guenther
    (cherry picked from commit 0e2139c6936b28015a8a2a539810c2bd7821d36f)

commit adaf2d1554c55c80b259bc02f11d670acb5ab0d0
Author: Günther Deschner <gd at samba.org>
Date:   Mon Mar 16 15:44:16 2009 +0100

    s4-spoolss: use winreg_Type for GetPrinterData implementation.
    
    Guenther
    (cherry picked from commit 4727e3fa9784b183d223cd0779b6748f9916a538)

commit f8ca8f50e43be297b148bc091b179fb656c82456
Author: Günther Deschner <gd at samba.org>
Date:   Mon Mar 16 16:45:57 2009 +0100

    s3: re-run make samba3-idl.
    
    Guenther
    (cherry picked from commit 67599539063ff1d797886ea4097c59760e8ecbc5)

commit 1158eaa5c56908b8ba87283dd8cc1669040ec918
Author: Günther Deschner <gd at samba.org>
Date:   Mon Mar 16 15:43:17 2009 +0100

    spoolss: use winreg_Type instead of spoolss_PrinterDataType for XPrinterData calls.
    
    Guenther
    (cherry picked from commit 849254d24c3d38326f7dbe80babb21a7fe47aedb)

commit 305b97fa8d79ce99c2672429e92e32114b34d946
Author: Günther Deschner <gd at samba.org>
Date:   Mon Mar 16 15:22:59 2009 +0100

    spoolss: use uint8 array instead of DATA_BLOB in EnumPrinterData IDL out pointer.
    
    Guenther
    (cherry picked from commit 28c6f1fb4734b6285e7684ec27f62481371a8654)

commit 8cb33c54922b489d20a62ff3ede7288e181f3062
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 01:39:39 2009 +0100

    spoolss: fix ndr_push_spoolss_SetPrinterData.
    
    Guenther
    (cherry picked from commit b560a99718a4c9d448c4d482486da127362db50a)

commit a32f227e31fa6fed9f935b6686c9289ee574c0aa
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 03:01:30 2009 +0100

    s3: re-run make samba3-idl.
    
    Guenther
    (cherry picked from commit 2ec1f850e3fc565e7830b94575eeafde18a37d27)

commit 65d023dc5fcaa397670c176ca287f8e5cc6c17f7
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 01:39:16 2009 +0100

    spoolss: fix IDL for spoolss_SetPrinterData.
    
    Guenther
    (cherry picked from commit 2b0a0b25e21f8149e242fb74816c62da470a3e8a)

commit ea68c717083cac063da0fd1f321f39ba72067212
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 01:38:08 2009 +0100

    s4-spoolss: fix spoolss_GetPrinterData w.r.t. out pointer changes.
    
    Guenther
    (cherry picked from commit be9a34e75d03ca09b4d57c57f59f83d4214c7754)

commit 4aa8510e8f300b677c7e2b367e6768946d44ed75
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 01:36:31 2009 +0100

    s4-smbtorture: fix test_GetPrinterData tests after out pointer changes.
    
    Guenther
    (cherry picked from commit c6e3e5eabc6de32117ce7d5403948e9ab739e4eb)

commit de3971c6f4818ed2bcbe2fddf1f81c29bdb31061
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 01:34:39 2009 +0100

    spoolss: fix GetPrinterData buffer helper.
    
    Guenther
    (cherry picked from commit e56be5cf847e758794687706a5f2ba4261b0c270)

commit fa7ff3228085fd449c23055d2116238ece158196
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 03:00:51 2009 +0100

    s3: re-run make samba3-idl.
    
    Guenther
    (cherry picked from commit 4de3a46c8626d4efb3479af0427edb82fc0aa34d)

commit 8f13a06f5ebc203a5c540b8fc83f2315cab2b9a2
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 01:33:41 2009 +0100

    spoolss: make spoolss_GetPrinterData out.data ref pointers.
    
    Guenther
    (cherry picked from commit 92e6525ae124c97d31a46b9fe3d6d1415c219e9f)

commit 8a9f1cf71d9b74a272612bf82f27c2f18766d136
Author: Günther Deschner <gd at samba.org>
Date:   Sat Mar 14 01:36:01 2009 +0100

    s4-smbtorture: fix build warning in test_EnumPrintProcDataTypes.
    
    Guenther
    (cherry picked from commit ec0c6e1617ea1d8a41ee4677ae270ede38024f2a)

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

Summary of changes:
 librpc/gen_ndr/cli_spoolss.c                |   20 ++--
 librpc/gen_ndr/cli_spoolss.h                |   14 +-
 librpc/gen_ndr/ndr_spoolss.c                |  221 ++++++++++++++-------------
 librpc/gen_ndr/ndr_spoolss.h                |    1 -
 librpc/gen_ndr/spoolss.h                    |   55 +++-----
 librpc/gen_ndr/srv_spoolss.c                |   35 +++--
 librpc/idl/spoolss.idl                      |   46 +++----
 librpc/ndr/ndr_spoolss_buf.c                |   30 +++--
 source4/ntptr/simple_ldb/ntptr_simple_ldb.c |   54 ++++----
 source4/rpc_server/spoolss/dcesrv_spoolss.c |   12 +-
 source4/torture/rpc/spoolss.c               |   19 ++-
 source4/torture/rpc/spoolss_win.c           |    6 +-
 12 files changed, 264 insertions(+), 249 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/cli_spoolss.c b/librpc/gen_ndr/cli_spoolss.c
index 2e0582e..54346b5 100644
--- a/librpc/gen_ndr/cli_spoolss.c
+++ b/librpc/gen_ndr/cli_spoolss.c
@@ -1302,8 +1302,8 @@ NTSTATUS rpccli_spoolss_GetPrinterData(struct rpc_pipe_client *cli,
 				       struct policy_handle *handle /* [in] [ref] */,
 				       const char *value_name /* [in] [charset(UTF16)] */,
 				       uint32_t offered /* [in]  */,
-				       enum spoolss_PrinterDataType *type /* [out] [ref] */,
-				       union spoolss_PrinterData data /* [out] [subcontext_size(offered),subcontext(4),switch_is(*type)] */,
+				       enum winreg_Type *type /* [out] [ref] */,
+				       union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
 				       uint32_t *needed /* [out] [ref] */,
 				       WERROR *werror)
 {
@@ -1339,7 +1339,7 @@ NTSTATUS rpccli_spoolss_GetPrinterData(struct rpc_pipe_client *cli,
 
 	/* Return variables */
 	*type = *r.out.type;
-	return NT_STATUS_NOT_SUPPORTED;
+	*data = *r.out.data;
 	*needed = *r.out.needed;
 
 	/* Return result */
@@ -1354,7 +1354,7 @@ NTSTATUS rpccli_spoolss_SetPrinterData(struct rpc_pipe_client *cli,
 				       TALLOC_CTX *mem_ctx,
 				       struct policy_handle *handle /* [in] [ref] */,
 				       const char *value_name /* [in] [charset(UTF16)] */,
-				       enum spoolss_PrinterDataType type /* [in]  */,
+				       enum winreg_Type type /* [in]  */,
 				       union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
 				       uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
 				       WERROR *werror)
@@ -3426,8 +3426,8 @@ NTSTATUS rpccli_spoolss_EnumPrinterData(struct rpc_pipe_client *cli,
 					const char *value_name /* [out] [charset(UTF16),size_is(value_offered/2)] */,
 					uint32_t value_offered /* [in]  */,
 					uint32_t *value_needed /* [out] [ref] */,
-					uint32_t *printerdata_type /* [out] [ref] */,
-					DATA_BLOB *buffer /* [out] [ref] */,
+					enum winreg_Type *type /* [out] [ref] */,
+					uint8_t *data /* [out] [ref,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(data_offered)] */,
 					uint32_t data_offered /* [in]  */,
 					uint32_t *data_needed /* [out] [ref] */,
 					WERROR *werror)
@@ -3466,8 +3466,8 @@ NTSTATUS rpccli_spoolss_EnumPrinterData(struct rpc_pipe_client *cli,
 	/* Return variables */
 	memcpy(CONST_DISCARD(char *, value_name), r.out.value_name, r.in.value_offered / 2 * sizeof(*value_name));
 	*value_needed = *r.out.value_needed;
-	*printerdata_type = *r.out.printerdata_type;
-	*buffer = *r.out.buffer;
+	*type = *r.out.type;
+	memcpy(data, r.out.data, r.in.data_offered * sizeof(*data));
 	*data_needed = *r.out.data_needed;
 
 	/* Return result */
@@ -3651,7 +3651,7 @@ NTSTATUS rpccli_spoolss_SetPrinterDataEx(struct rpc_pipe_client *cli,
 					 struct policy_handle *handle /* [in] [ref] */,
 					 const char *key_name /* [in] [charset(UTF16)] */,
 					 const char *value_name /* [in] [charset(UTF16)] */,
-					 uint32_t type /* [in]  */,
+					 enum winreg_Type type /* [in]  */,
 					 uint8_t *buffer /* [in] [ref,size_is(offered)] */,
 					 uint32_t offered /* [in]  */,
 					 WERROR *werror)
@@ -3704,7 +3704,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
 					 struct policy_handle *handle /* [in] [ref] */,
 					 const char *key_name /* [in] [charset(UTF16)] */,
 					 const char *value_name /* [in] [charset(UTF16)] */,
-					 uint32_t *type /* [out] [ref] */,
+					 enum winreg_Type *type /* [out] [ref] */,
 					 uint8_t *buffer /* [out] [ref,size_is(offered)] */,
 					 uint32_t offered /* [in]  */,
 					 uint32_t *needed /* [out] [ref] */,
diff --git a/librpc/gen_ndr/cli_spoolss.h b/librpc/gen_ndr/cli_spoolss.h
index 3aebf33..a58aa3c 100644
--- a/librpc/gen_ndr/cli_spoolss.h
+++ b/librpc/gen_ndr/cli_spoolss.h
@@ -191,15 +191,15 @@ NTSTATUS rpccli_spoolss_GetPrinterData(struct rpc_pipe_client *cli,
 				       struct policy_handle *handle /* [in] [ref] */,
 				       const char *value_name /* [in] [charset(UTF16)] */,
 				       uint32_t offered /* [in]  */,
-				       enum spoolss_PrinterDataType *type /* [out] [ref] */,
-				       union spoolss_PrinterData data /* [out] [subcontext_size(offered),subcontext(4),switch_is(*type)] */,
+				       enum winreg_Type *type /* [out] [ref] */,
+				       union spoolss_PrinterData *data /* [out] [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */,
 				       uint32_t *needed /* [out] [ref] */,
 				       WERROR *werror);
 NTSTATUS rpccli_spoolss_SetPrinterData(struct rpc_pipe_client *cli,
 				       TALLOC_CTX *mem_ctx,
 				       struct policy_handle *handle /* [in] [ref] */,
 				       const char *value_name /* [in] [charset(UTF16)] */,
-				       enum spoolss_PrinterDataType type /* [in]  */,
+				       enum winreg_Type type /* [in]  */,
 				       union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
 				       uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
 				       WERROR *werror);
@@ -446,8 +446,8 @@ NTSTATUS rpccli_spoolss_EnumPrinterData(struct rpc_pipe_client *cli,
 					const char *value_name /* [out] [charset(UTF16),size_is(value_offered/2)] */,
 					uint32_t value_offered /* [in]  */,
 					uint32_t *value_needed /* [out] [ref] */,
-					uint32_t *printerdata_type /* [out] [ref] */,
-					DATA_BLOB *buffer /* [out] [ref] */,
+					enum winreg_Type *type /* [out] [ref] */,
+					uint8_t *data /* [out] [ref,flag(LIBNDR_PRINT_ARRAY_HEX),size_is(data_offered)] */,
 					uint32_t data_offered /* [in]  */,
 					uint32_t *data_needed /* [out] [ref] */,
 					WERROR *werror);
@@ -470,7 +470,7 @@ NTSTATUS rpccli_spoolss_SetPrinterDataEx(struct rpc_pipe_client *cli,
 					 struct policy_handle *handle /* [in] [ref] */,
 					 const char *key_name /* [in] [charset(UTF16)] */,
 					 const char *value_name /* [in] [charset(UTF16)] */,
-					 uint32_t type /* [in]  */,
+					 enum winreg_Type type /* [in]  */,
 					 uint8_t *buffer /* [in] [ref,size_is(offered)] */,
 					 uint32_t offered /* [in]  */,
 					 WERROR *werror);
@@ -479,7 +479,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
 					 struct policy_handle *handle /* [in] [ref] */,
 					 const char *key_name /* [in] [charset(UTF16)] */,
 					 const char *value_name /* [in] [charset(UTF16)] */,
-					 uint32_t *type /* [out] [ref] */,
+					 enum winreg_Type *type /* [out] [ref] */,
 					 uint8_t *buffer /* [out] [ref,size_is(offered)] */,
 					 uint32_t offered /* [in]  */,
 					 uint32_t *needed /* [out] [ref] */,
diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index 8c8b687..a05a10a 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -14530,43 +14530,15 @@ _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r
 	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
 }
 
-static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
-{
-	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
-	return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
-{
-	uint32_t v;
-	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
-	*r = v;
-	return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
-{
-	const char *val = NULL;
-
-	switch (r) {
-		case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
-		case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
-		case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
-		case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
-		case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
-	}
-	ndr_print_enum(ndr, name, "ENUM", val, r);
-}
-
 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
 		int level = ndr_push_get_switch_value(ndr, r);
 		switch (level) {
-			case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
+			case REG_NONE: {
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
+			case REG_SZ: {
 				{
 					uint32_t _flags_save_string = ndr->flags;
 					ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
@@ -14575,7 +14547,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, in
 				}
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
+			case REG_BINARY: {
 				{
 					uint32_t _flags_save_DATA_BLOB = ndr->flags;
 					ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
@@ -14584,11 +14556,11 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, in
 				}
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
+			case REG_DWORD: {
 				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
+			case REG_MULTI_SZ: {
 				{
 					uint32_t _flags_save_string_array = ndr->flags;
 					ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
@@ -14611,19 +14583,19 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, in
 	if (ndr_flags & NDR_BUFFERS) {
 		int level = ndr_push_get_switch_value(ndr, r);
 		switch (level) {
-			case SPOOLSS_PRINTER_DATA_TYPE_NULL:
+			case REG_NONE:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING:
+			case REG_SZ:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
+			case REG_BINARY:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
+			case REG_DWORD:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
+			case REG_MULTI_SZ:
 			break;
 
 			default:
@@ -14640,10 +14612,10 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, in
 	level = ndr_pull_get_switch_value(ndr, r);
 	if (ndr_flags & NDR_SCALARS) {
 		switch (level) {
-			case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
+			case REG_NONE: {
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
+			case REG_SZ: {
 				{
 					uint32_t _flags_save_string = ndr->flags;
 					ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
@@ -14652,7 +14624,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, in
 				}
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
+			case REG_BINARY: {
 				{
 					uint32_t _flags_save_DATA_BLOB = ndr->flags;
 					ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
@@ -14661,11 +14633,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, in
 				}
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
+			case REG_DWORD: {
 				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
 			break; }
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
+			case REG_MULTI_SZ: {
 				{
 					uint32_t _flags_save_string_array = ndr->flags;
 					ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
@@ -14687,19 +14659,19 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, in
 	}
 	if (ndr_flags & NDR_BUFFERS) {
 		switch (level) {
-			case SPOOLSS_PRINTER_DATA_TYPE_NULL:
+			case REG_NONE:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING:
+			case REG_SZ:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
+			case REG_BINARY:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
+			case REG_DWORD:
 			break;
 
-			case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
+			case REG_MULTI_SZ:
 			break;
 
 			default:
@@ -14716,22 +14688,22 @@ _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *n
 	level = ndr_print_get_switch_value(ndr, r);
 	ndr_print_union(ndr, name, level, "spoolss_PrinterData");
 	switch (level) {
-		case SPOOLSS_PRINTER_DATA_TYPE_NULL:
+		case REG_NONE:
 		break;
 
-		case SPOOLSS_PRINTER_DATA_TYPE_STRING:
+		case REG_SZ:
 			ndr_print_string(ndr, "string", r->string);
 		break;
 
-		case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
+		case REG_BINARY:
 			ndr_print_DATA_BLOB(ndr, "binary", r->binary);
 		break;
 
-		case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
+		case REG_DWORD:
 			ndr_print_uint32(ndr, "value", r->value);
 		break;
 
-		case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
+		case REG_MULTI_SZ:
 			ndr_print_string_array(ndr, "string_array", r->string_array);
 		break;
 
@@ -21610,8 +21582,11 @@ _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr
 		if (r->out.type == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
-		NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
+		NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
+		if (r->out.data == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
 		if (r->out.needed == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
@@ -21625,6 +21600,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr
 {
 	TALLOC_CTX *_mem_save_handle_0;
 	TALLOC_CTX *_mem_save_type_0;
+	TALLOC_CTX *_mem_save_data_0;
 	TALLOC_CTX *_mem_save_needed_0;
 	if (flags & NDR_IN) {
 		ZERO_STRUCT(r->out);
@@ -21646,6 +21622,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
 		NDR_PULL_ALLOC(ndr, r->out.type);
 		ZERO_STRUCTP(r->out.type);
+		NDR_PULL_ALLOC(ndr, r->out.data);
+		ZERO_STRUCTP(r->out.data);
 		NDR_PULL_ALLOC(ndr, r->out.needed);
 		ZERO_STRUCTP(r->out.needed);
 	}
@@ -21655,9 +21633,15 @@ _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr
 		}
 		_mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
 		NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
+		NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
 		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC(ndr, r->out.data);
+		}
+		_mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
 		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 			NDR_PULL_ALLOC(ndr, r->out.needed);
 		}
@@ -21673,25 +21657,37 @@ _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr
 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
 {
 	if (flags & NDR_IN) {
-		NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
+		NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
 	}
 	if (flags & NDR_OUT) {
-		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
-		NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
+		if (r->out.data == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
+		NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
 	}
 	return NDR_ERR_SUCCESS;
 }
 
 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
 {
+	TALLOC_CTX *_mem_save_data_0;
 	if (flags & NDR_IN) {
 		ZERO_STRUCT(r->out);
 
-		NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
+		NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
+		NDR_PULL_ALLOC(ndr, r->out.data);
+		ZERO_STRUCTP(r->out.data);
 	}
 	if (flags & NDR_OUT) {
-		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
-		NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC(ndr, r->out.data);
+		}
+		_mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
+		NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -21719,10 +21715,13 @@ _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char
 		ndr->depth++;
 		ndr_print_ptr(ndr, "type", r->out.type);
 		ndr->depth++;
-		ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
+		ndr_print_winreg_Type(ndr, "type", *r->out.type);
+		ndr->depth--;
+		ndr_print_ptr(ndr, "data", r->out.data);
+		ndr->depth++;
+		ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
+		ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
 		ndr->depth--;
-		ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
-		ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
 		ndr_print_ptr(ndr, "needed", r->out.needed);
 		ndr->depth++;
 		ndr_print_uint32(ndr, "needed", *r->out.needed);
@@ -21744,7 +21743,7 @@ _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
 		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
-		NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
+		NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
 		NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
 	}
@@ -21757,11 +21756,14 @@ _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr
 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
 {
 	if (flags & NDR_IN) {
-		NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
+		NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
 	}
 	if (flags & NDR_OUT) {
-		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
-		NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
+		if (r->out.data == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
+		NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -21784,7 +21786,7 @@ static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, i
 		}
 		NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
 		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
-		NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
+		NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
 		{
 			struct ndr_pull *_ndr_data;
 			NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
@@ -21815,7 +21817,7 @@ _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char
 		ndr_print_policy_handle(ndr, "handle", r->in.handle);
 		ndr->depth--;
 		ndr_print_string(ndr, "value_name", r->in.value_name);
-		ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
+		ndr_print_winreg_Type(ndr, "type", r->in.type);
 		ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
 		ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
 		ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
@@ -25550,14 +25552,20 @@ static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr,
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
-		if (r->out.printerdata_type == NULL) {
+		if (r->out.type == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
-		if (r->out.buffer == NULL) {
-			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
+		{
+			uint32_t _flags_save_uint8 = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
+			if (r->out.data == NULL) {
+				return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+			}
+			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
+			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
+			ndr->flags = _flags_save_uint8;
 		}
-		NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
 		if (r->out.data_needed == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
@@ -25571,8 +25579,7 @@ static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr,
 {
 	TALLOC_CTX *_mem_save_handle_0;
 	TALLOC_CTX *_mem_save_value_needed_0;
-	TALLOC_CTX *_mem_save_printerdata_type_0;
-	TALLOC_CTX *_mem_save_buffer_0;
+	TALLOC_CTX *_mem_save_type_0;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list