[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-821-gc201a34

Günther Deschner gd at samba.org
Thu Feb 12 17:59:15 GMT 2009


The branch, master has been updated
       via  c201a341caee2bd88c9b37add75d004e1c8d4202 (commit)
       via  75c6bbea3b77dd283e0c9458dc85f0caca33399d (commit)
       via  80b3e5b36efb5f7c48b43e8f5d67a102ae71ebf5 (commit)
       via  8fa71b1a0858b5098b99478a869b3ffc9c41eccf (commit)
       via  135135e3a0a84d19d1bc6df1cc3c5813d1a244ec (commit)
       via  aa9eac08cd2614eefca6c6bc673e07619a55f842 (commit)
       via  aa60ffc6f8926a5d108ff8fbfb05f7612386f1bb (commit)
      from  ae259575c447e61665c8e7070c476914161b953f (commit)

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


- Log -----------------------------------------------------------------
commit c201a341caee2bd88c9b37add75d004e1c8d4202
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 12 18:04:06 2009 +0100

    re-run make samba3-idl.
    
    Guenther

commit 75c6bbea3b77dd283e0c9458dc85f0caca33399d
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 12 12:10:16 2009 +0100

    s3-spoolss: add init_systemtime helper.
    
    Guenther

commit 80b3e5b36efb5f7c48b43e8f5d67a102ae71ebf5
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 12 17:45:09 2009 +0100

    spoolss: always set version 2 in notify info and option structs.
    
    Guenther

commit 8fa71b1a0858b5098b99478a869b3ffc9c41eccf
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 12 17:26:17 2009 +0100

    spoolss: add spoolss_NotifyTable enum.
    
    Guenther

commit 135135e3a0a84d19d1bc6df1cc3c5813d1a244ec
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 12 14:00:49 2009 +0100

    spoolss: fix some cases in the spoolss_NotifyData union.
    
    Guenther

commit aa9eac08cd2614eefca6c6bc673e07619a55f842
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 11 21:32:18 2009 +0100

    spoolss: add spoolss_DriverInfo8.
    
    Guenther

commit aa60ffc6f8926a5d108ff8fbfb05f7612386f1bb
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 12 00:48:29 2009 +0100

    spoolss: fix spoolss_AddPrinterEx IDL.
    
    Guenther

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

Summary of changes:
 librpc/gen_ndr/cli_spoolss.c                       |    2 +
 librpc/gen_ndr/cli_spoolss.h                       |    1 +
 librpc/gen_ndr/ndr_spoolss.c                       |  343 ++++++++++----------
 librpc/gen_ndr/ndr_spoolss.h                       |    7 +-
 librpc/gen_ndr/spoolss.h                           |   82 ++++--
 librpc/gen_ndr/srv_spoolss.c                       |   13 +
 librpc/idl/spoolss.idl                             |   76 +++--
 source3/Makefile.in                                |    1 +
 source3/include/proto.h                            |    5 +
 .../eventlog.h => rpc_client/init_spoolss.c}       |   39 ++--
 10 files changed, 321 insertions(+), 248 deletions(-)
 copy source3/{include/eventlog.h => rpc_client/init_spoolss.c} (55%)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/cli_spoolss.c b/librpc/gen_ndr/cli_spoolss.c
index 2f15cb3..6225d2d 100644
--- a/librpc/gen_ndr/cli_spoolss.c
+++ b/librpc/gen_ndr/cli_spoolss.c
@@ -3314,6 +3314,7 @@ NTSTATUS rpccli_spoolss_AddPrinterEx(struct rpc_pipe_client *cli,
 				     struct security_descriptor *secdesc /* [in] [unique] */,
 				     uint32_t ulevel /* [in]  */,
 				     union spoolss_UserLevel userlevel /* [in] [switch_is(ulevel)] */,
+				     struct policy_handle *handle /* [out] [ref] */,
 				     WERROR *werror)
 {
 	struct spoolss_AddPrinterEx r;
@@ -3351,6 +3352,7 @@ NTSTATUS rpccli_spoolss_AddPrinterEx(struct rpc_pipe_client *cli,
 	}
 
 	/* Return variables */
+	*handle = *r.out.handle;
 
 	/* Return result */
 	if (werror) {
diff --git a/librpc/gen_ndr/cli_spoolss.h b/librpc/gen_ndr/cli_spoolss.h
index 6903aa6..34c50a0 100644
--- a/librpc/gen_ndr/cli_spoolss.h
+++ b/librpc/gen_ndr/cli_spoolss.h
@@ -420,6 +420,7 @@ NTSTATUS rpccli_spoolss_AddPrinterEx(struct rpc_pipe_client *cli,
 				     struct security_descriptor *secdesc /* [in] [unique] */,
 				     uint32_t ulevel /* [in]  */,
 				     union spoolss_UserLevel userlevel /* [in] [switch_is(ulevel)] */,
+				     struct policy_handle *handle /* [out] [ref] */,
 				     WERROR *werror);
 NTSTATUS rpccli_spoolss_47(struct rpc_pipe_client *cli,
 			   TALLOC_CTX *mem_ctx,
diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index 5525ad4..1bb419b 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -57,6 +57,65 @@ _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, co
 	ndr->depth--;
 }
 
+static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
+{
+	return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
+}
+
+static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_push_align(ndr, 4));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
+		NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+		if (r->time) {
+			NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
+		}
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
+{
+	uint32_t _ptr_time;
+	TALLOC_CTX *_mem_save_time_0;
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_pull_align(ndr, 4));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
+		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
+		if (_ptr_time) {
+			NDR_PULL_ALLOC(ndr, r->time);
+		} else {
+			r->time = NULL;
+		}
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+		if (r->time) {
+			_mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
+			NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
+		}
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
+{
+	ndr_print_struct(ndr, name, "spoolss_TimeCtr");
+	ndr->depth++;
+	ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
+	ndr_print_ptr(ndr, "time", r->time);
+	ndr->depth++;
+	if (r->time) {
+		ndr_print_spoolss_Time(ndr, "time", r->time);
+	}
+	ndr->depth--;
+	ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
@@ -10023,7 +10082,7 @@ static enum ndr_err_code ndr_push_spoolss_NotifyOptionsContainer(struct ndr_push
 	uint32_t cntr_options_1;
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
 		NDR_CHECK(ndr_push_unique_ptr(ndr, r->options));
@@ -10089,7 +10148,7 @@ _PUBLIC_ void ndr_print_spoolss_NotifyOptionsContainer(struct ndr_print *ndr, co
 	uint32_t cntr_options_1;
 	ndr_print_struct(ndr, name, "spoolss_NotifyOptionsContainer");
 	ndr->depth++;
-	ndr_print_uint32(ndr, "version", r->version);
+	ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
 	ndr_print_uint32(ndr, "flags", r->flags);
 	ndr_print_uint32(ndr, "count", r->count);
 	ndr_print_ptr(ndr, "options", r->options);
@@ -10110,7 +10169,7 @@ _PUBLIC_ void ndr_print_spoolss_NotifyOptionsContainer(struct ndr_print *ndr, co
 	ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_spoolss_NotifyUTF16String(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyUTF16String *r)
+static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 4));
@@ -10126,7 +10185,7 @@ static enum ndr_err_code ndr_push_spoolss_NotifyUTF16String(struct ndr_push *ndr
 	return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_spoolss_NotifyUTF16String(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyUTF16String *r)
+static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
 {
 	uint32_t _ptr_string;
 	TALLOC_CTX *_mem_save_string_0;
@@ -10155,68 +10214,9 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyUTF16String(struct ndr_pull *ndr
 	return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_spoolss_NotifyUTF16String(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyUTF16String *r)
-{
-	ndr_print_struct(ndr, name, "spoolss_NotifyUTF16String");
-	ndr->depth++;
-	ndr_print_uint32(ndr, "size", r->size);
-	ndr_print_ptr(ndr, "string", r->string);
-	ndr->depth++;
-	if (r->string) {
-		ndr_print_string(ndr, "string", r->string);
-	}
-	ndr->depth--;
-	ndr->depth--;
-}
-
-static enum ndr_err_code ndr_push_spoolss_NotifyDOSString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyDOSString *r)
-{
-	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-		if (r->string) {
-			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size, sizeof(uint8_t), CH_DOS));
-		}
-	}
-	return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_spoolss_NotifyDOSString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyDOSString *r)
+_PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
 {
-	uint32_t _ptr_string;
-	TALLOC_CTX *_mem_save_string_0;
-	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_pull_align(ndr, 4));
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
-		if (_ptr_string) {
-			NDR_PULL_ALLOC(ndr, r->string);
-		} else {
-			r->string = NULL;
-		}
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-		if (r->string) {
-			_mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint8_t), CH_DOS));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
-		}
-		if (r->string) {
-			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size));
-		}
-	}
-	return NDR_ERR_SUCCESS;
-}
-
-_PUBLIC_ void ndr_print_spoolss_NotifyDOSString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyDOSString *r)
-{
-	ndr_print_struct(ndr, name, "spoolss_NotifyDOSString");
+	ndr_print_struct(ndr, name, "spoolss_NotifyString");
 	ndr->depth++;
 	ndr_print_uint32(ndr, "size", r->size);
 	ndr_print_ptr(ndr, "string", r->string);
@@ -10228,104 +10228,32 @@ _PUBLIC_ void ndr_print_spoolss_NotifyDOSString(struct ndr_print *ndr, const cha
 	ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_spoolss_NotifyBlobData(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyBlobData *r)
-{
-	uint32_t cntr_data_0;
-	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_push_align(ndr, 2));
-		for (cntr_data_0 = 0; cntr_data_0 < 8; cntr_data_0++) {
-			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_0]));
-		}
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-	}
-	return NDR_ERR_SUCCESS;
-}
-
-static enum ndr_err_code ndr_pull_spoolss_NotifyBlobData(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyBlobData *r)
+static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
 {
-	uint32_t cntr_data_0;
-	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_pull_align(ndr, 2));
-		for (cntr_data_0 = 0; cntr_data_0 < 8; cntr_data_0++) {
-			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_0]));
-		}
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-	}
+	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 	return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_spoolss_NotifyBlobData(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyBlobData *r)
+static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
 {
-	uint32_t cntr_data_0;
-	ndr_print_struct(ndr, name, "spoolss_NotifyBlobData");
-	ndr->depth++;
-	ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)8);
-	ndr->depth++;
-	for (cntr_data_0=0;cntr_data_0<8;cntr_data_0++) {
-		char *idx_0=NULL;
-		if (asprintf(&idx_0, "[%d]", cntr_data_0) != -1) {
-			ndr_print_uint16(ndr, "data", r->data[cntr_data_0]);
-			free(idx_0);
-		}
-	}
-	ndr->depth--;
-	ndr->depth--;
-}
-
-static enum ndr_err_code ndr_push_spoolss_NotifyBlob(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyBlob *r)
-{
-	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-		if (r->data) {
-			NDR_CHECK(ndr_push_spoolss_NotifyBlobData(ndr, NDR_SCALARS, r->data));
-		}
-	}
+	uint32_t v;
+	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+	*r = v;
 	return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_spoolss_NotifyBlob(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyBlob *r)
+_PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
 {
-	uint32_t _ptr_data;
-	TALLOC_CTX *_mem_save_data_0;
-	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_pull_align(ndr, 4));
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
-		if (_ptr_data) {
-			NDR_PULL_ALLOC(ndr, r->data);
-		} else {
-			r->data = NULL;
-		}
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-		if (r->data) {
-			_mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
-			NDR_CHECK(ndr_pull_spoolss_NotifyBlobData(ndr, NDR_SCALARS, r->data));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
-		}
-	}
-	return NDR_ERR_SUCCESS;
-}
+	const char *val = NULL;
 
-_PUBLIC_ void ndr_print_spoolss_NotifyBlob(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyBlob *r)
-{
-	ndr_print_struct(ndr, name, "spoolss_NotifyBlob");
-	ndr->depth++;
-	ndr_print_uint32(ndr, "len", r->len);
-	ndr_print_ptr(ndr, "data", r->data);
-	ndr->depth++;
-	if (r->data) {
-		ndr_print_spoolss_NotifyBlobData(ndr, "data", r->data);
+	switch (r) {
+		case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
+		case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
+		case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
+		case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
+		case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
 	}
-	ndr->depth--;
-	ndr->depth--;
+	ndr_print_enum(ndr, name, "ENUM", val, r);
 }
 
 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
@@ -10335,23 +10263,26 @@ static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int n
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
 		switch (level) {
 			case 1: {
-				NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->integer));
+				uint32_t cntr_integer_0;
+				for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
+					NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
+				}
 			break; }
 
 			case 2: {
-				NDR_CHECK(ndr_push_spoolss_NotifyUTF16String(ndr, NDR_SCALARS, &r->utf16_string));
+				NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
 			break; }
 
 			case 3: {
-				NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
+				NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
 			break; }
 
 			case 4: {
-				NDR_CHECK(ndr_push_spoolss_NotifyBlob(ndr, NDR_SCALARS, &r->blob));
+				NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
 			break; }
 
 			case 5: {
-				NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
+				NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
 			break; }
 
 			default:
@@ -10365,19 +10296,21 @@ static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int n
 			break;
 
 			case 2:
-				NDR_CHECK(ndr_push_spoolss_NotifyUTF16String(ndr, NDR_BUFFERS, &r->utf16_string));
+				NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
 			break;
 
 			case 3:
-				NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
+				if (r->devmode) {
+					NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
+				}
 			break;
 
 			case 4:
-				NDR_CHECK(ndr_push_spoolss_NotifyBlob(ndr, NDR_BUFFERS, &r->blob));
+				NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
 			break;
 
 			case 5:
-				NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
+				NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
 			break;
 
 			default:
@@ -10391,6 +10324,7 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int n
 {
 	int level;
 	uint32_t _level;
+	TALLOC_CTX *_mem_save_devmode_0;
 	level = ndr_pull_get_switch_value(ndr, r);
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
@@ -10399,23 +10333,32 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int n
 		}
 		switch (level) {
 			case 1: {
-				NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->integer));
+				uint32_t cntr_integer_0;
+				for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
+					NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
+				}
 			break; }
 
 			case 2: {
-				NDR_CHECK(ndr_pull_spoolss_NotifyUTF16String(ndr, NDR_SCALARS, &r->utf16_string));
+				NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
 			break; }
 
 			case 3: {
-				NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
+				uint32_t _ptr_devmode;
+				NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
+				if (_ptr_devmode) {
+					NDR_PULL_ALLOC(ndr, r->devmode);
+				} else {
+					r->devmode = NULL;
+				}
 			break; }
 
 			case 4: {
-				NDR_CHECK(ndr_pull_spoolss_NotifyBlob(ndr, NDR_SCALARS, &r->blob));
+				NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
 			break; }
 
 			case 5: {
-				NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
+				NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
 			break; }
 
 			default:
@@ -10428,19 +10371,24 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int n
 			break;
 
 			case 2:
-				NDR_CHECK(ndr_pull_spoolss_NotifyUTF16String(ndr, NDR_BUFFERS, &r->utf16_string));
+				NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
 			break;
 
 			case 3:
-				NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
+				if (r->devmode) {
+					_mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
+					NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
+					NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
+					NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
+				}
 			break;
 
 			case 4:
-				NDR_CHECK(ndr_pull_spoolss_NotifyBlob(ndr, NDR_BUFFERS, &r->blob));
+				NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
 			break;
 
 			case 5:
-				NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
+				NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
 			break;
 
 			default:
@@ -10453,27 +10401,42 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int n
 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
 {
 	int level;
+	uint32_t cntr_integer_0;
 	level = ndr_print_get_switch_value(ndr, r);
 	ndr_print_union(ndr, name, level, "spoolss_NotifyData");
 	switch (level) {
 		case 1:
-			ndr_print_dlong(ndr, "integer", r->integer);
+			ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
+			ndr->depth++;
+			for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
+				char *idx_0=NULL;
+				if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
+					ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
+					free(idx_0);
+				}
+			}
+			ndr->depth--;
 		break;
 
 		case 2:
-			ndr_print_spoolss_NotifyUTF16String(ndr, "utf16_string", &r->utf16_string);
+			ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
 		break;
 
 		case 3:
-			ndr_print_spoolss_NotifyDOSString(ndr, "ascii_string", &r->ascii_string);
+			ndr_print_ptr(ndr, "devmode", r->devmode);
+			ndr->depth++;
+			if (r->devmode) {
+				ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
+			}
+			ndr->depth--;
 		break;
 
 		case 4:


-- 
Samba Shared Repository


More information about the samba-cvs mailing list