[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Thu Apr 29 17:27:23 MDT 2010


The branch, master has been updated
       via  6156a4b... s4-smbtorture: test all levels in test_netprintqgetinfo and test_netprintqenum.
       via  e8aaf40... s4-smbtorture: add rap_pull_rap_PrintQueue4.
       via  e85824d... s4-smbtorture: add rap_pull_rap_PrintQueue2.
       via  e13f2ed... s3: re-run make samba3-idl.
       via  7dd67f6... rap: fill in rap_PrintQueue4 IDL.
       via  131c51d... s3: re-run make samba3-idl.
       via  696e554... rap: fix jobinfo IDL.
       via  9d9fc4c... s4-smbtorture: fix parsing of rap_pull_rap_PrintQueue1 and rap_pull_rap_PrintQueue2.
       via  1cb7b8d... s3: re-run make samba3-idl.
       via  4fc3aef... rap: fix some rap_PrintQueue IDL structures.
       via  37901bb... s4-smbtorture: add test_netprintjob() to RAP-PRINTING.
      from  1f69a7a... Attempt to fix bug #7399 - SMB2: QUERY_DIRECTORY is returning invalid values.

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


- Log -----------------------------------------------------------------
commit 6156a4b73b6cb90bb31d927f0c07e6d53442481b
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:26:12 2010 +0200

    s4-smbtorture: test all levels in test_netprintqgetinfo and test_netprintqenum.
    
    Guenther

commit e8aaf4087b10a5aa88f3a3d2810a6a332fa2697e
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:24:20 2010 +0200

    s4-smbtorture: add rap_pull_rap_PrintQueue4.
    
    Guenther

commit e85824d9170644493e839c1ac2a82f7bd8345994
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:23:53 2010 +0200

    s4-smbtorture: add rap_pull_rap_PrintQueue2.
    
    Guenther

commit e13f2ed296f8f0432fb2f5035f724c4ad917f42c
Author: Günther Deschner <gd at samba.org>
Date:   Fri Apr 30 01:20:34 2010 +0200

    s3: re-run make samba3-idl.
    
    Guenther

commit 7dd67f6d035c827f3917f3ddcb056ec43fe37cb1
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:21:59 2010 +0200

    rap: fill in rap_PrintQueue4 IDL.
    
    Guenther

commit 131c51db382ddbeff61492f9b82b4bc283a9b0b3
Author: Günther Deschner <gd at samba.org>
Date:   Fri Apr 30 01:19:53 2010 +0200

    s3: re-run make samba3-idl.
    
    Guenther

commit 696e554e80a8ac9b3caea6c1afead14d1555ee95
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:20:07 2010 +0200

    rap: fix jobinfo IDL.
    
    Guenther

commit 9d9fc4cfe7f058baaf7d251a4d468d72e681e62c
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:21:40 2010 +0200

    s4-smbtorture: fix parsing of rap_pull_rap_PrintQueue1 and rap_pull_rap_PrintQueue2.
    
    Guenther

commit 1cb7b8ded66e0f9a7204b850ca2132d1392dfc6e
Author: Günther Deschner <gd at samba.org>
Date:   Fri Apr 30 01:19:20 2010 +0200

    s3: re-run make samba3-idl.
    
    Guenther

commit 4fc3aefc518af94de8c985ad177ff70c5df229ad
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:20:56 2010 +0200

    rap: fix some rap_PrintQueue IDL structures.
    
    Guenther

commit 37901bb96a7436f9b34e198d7de0b754b09612da
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 19:24:50 2010 +0200

    s4-smbtorture: add test_netprintjob() to RAP-PRINTING.
    
    Guenther

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

Summary of changes:
 librpc/gen_ndr/ndr_rap.c       |  226 ++++++++++++++++++++++++++++++++++++----
 librpc/gen_ndr/ndr_rap.h       |    1 +
 librpc/gen_ndr/rap.h           |   19 ++--
 librpc/idl/rap.idl             |   18 ++--
 source4/torture/rap/printing.c |   74 +++++++++++++-
 source4/torture/rap/rap.c      |   66 +++++++++++-
 6 files changed, 361 insertions(+), 43 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_rap.c b/librpc/gen_ndr/ndr_rap.c
index 1488b34..c1a3889 100644
--- a/librpc/gen_ndr/ndr_rap.c
+++ b/librpc/gen_ndr/ndr_rap.c
@@ -562,17 +562,17 @@ static enum ndr_err_code ndr_push_rap_PrintJobInfo1(struct ndr_push *ndr, int nd
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 5));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobID));
-		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->UserName, 21));
+		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->UserName, 21, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad));
-		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->NotifyName, 16));
-		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->DataType, 10));
+		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->NotifyName, 16, sizeof(uint8_t), CH_DOS));
+		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DataType, 10, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobPosition));
 		NDR_CHECK(ndr_push_rap_PrintJStatusCode(ndr, NDR_SCALARS, r->JobStatus));
 		NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobStatusString));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobStatusStringHigh));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TimeSubmitted));
+		NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->TimeSubmitted));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobSize));
 		NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobCommentString));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobCommentStringHigh));
@@ -615,10 +615,10 @@ static enum ndr_err_code ndr_pull_rap_PrintJobInfo1(struct ndr_pull *ndr, int nd
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 5));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobID));
-		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->UserName, 21));
+		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->UserName, 21, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad));
-		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->NotifyName, 16));
-		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->DataType, 10));
+		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->NotifyName, 16, sizeof(uint8_t), CH_DOS));
+		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DataType, 10, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
 		if (_ptr_PrintParameterString) {
 			NDR_PULL_ALLOC(ndr, r->PrintParameterString);
@@ -637,7 +637,7 @@ static enum ndr_err_code ndr_pull_rap_PrintJobInfo1(struct ndr_pull *ndr, int nd
 			r->JobStatusString = NULL;
 		}
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobStatusStringHigh));
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TimeSubmitted));
+		NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->TimeSubmitted));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobSize));
 		NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobCommentString));
 		if (_ptr_JobCommentString) {
@@ -704,10 +704,10 @@ _PUBLIC_ void ndr_print_rap_PrintJobInfo1(struct ndr_print *ndr, const char *nam
 	ndr_print_struct(ndr, name, "rap_PrintJobInfo1");
 	ndr->depth++;
 	ndr_print_uint16(ndr, "JobID", r->JobID);
-	ndr_print_array_uint8(ndr, "UserName", r->UserName, 21);
+	ndr_print_string(ndr, "UserName", r->UserName);
 	ndr_print_uint8(ndr, "Pad", r->Pad);
-	ndr_print_array_uint8(ndr, "NotifyName", r->NotifyName, 16);
-	ndr_print_array_uint8(ndr, "DataType", r->DataType, 10);
+	ndr_print_string(ndr, "NotifyName", r->NotifyName);
+	ndr_print_string(ndr, "DataType", r->DataType);
 	ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
 	ndr->depth++;
 	if (r->PrintParameterString) {
@@ -724,7 +724,7 @@ _PUBLIC_ void ndr_print_rap_PrintJobInfo1(struct ndr_print *ndr, const char *nam
 	}
 	ndr->depth--;
 	ndr_print_uint16(ndr, "JobStatusStringHigh", r->JobStatusStringHigh);
-	ndr_print_uint32(ndr, "TimeSubmitted", r->TimeSubmitted);
+	ndr_print_time_t(ndr, "TimeSubmitted", r->TimeSubmitted);
 	ndr_print_uint32(ndr, "JobSize", r->JobSize);
 	ndr_print_ptr(ndr, "JobCommentString", r->JobCommentString);
 	ndr->depth++;
@@ -736,6 +736,176 @@ _PUBLIC_ void ndr_print_rap_PrintJobInfo1(struct ndr_print *ndr, const char *nam
 	ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_rap_PrintJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintJobInfo2 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_push_align(ndr, 5));
+		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobID));
+		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
+		NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->UserName));
+		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UserNameHigh));
+		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobPosition));
+		NDR_CHECK(ndr_push_rap_PrintJStatusCode(ndr, NDR_SCALARS, r->JobStatus));
+		NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->TimeSubmitted));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobSize));
+		NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobCommentString));
+		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobCommentStringHigh));
+		NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DocumentName));
+		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DocumentNameHigh));
+		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+		if (r->UserName) {
+			NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->UserName));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->UserName, CH_DOS)));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->UserName, CH_DOS)));
+			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->UserName, ndr_charset_length(r->UserName, CH_DOS), sizeof(uint8_t), CH_DOS));
+		}
+		if (r->JobCommentString) {
+			NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobCommentString));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
+			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->JobCommentString, ndr_charset_length(r->JobCommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
+		}
+		if (r->DocumentName) {
+			NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DocumentName));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DocumentName, CH_DOS)));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DocumentName, CH_DOS)));
+			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DocumentName, ndr_charset_length(r->DocumentName, CH_DOS), sizeof(uint8_t), CH_DOS));
+		}
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintJobInfo2 *r)
+{
+	uint16_t _ptr_UserName;
+	TALLOC_CTX *_mem_save_UserName_0;
+	uint16_t _ptr_JobCommentString;
+	TALLOC_CTX *_mem_save_JobCommentString_0;
+	uint16_t _ptr_DocumentName;
+	TALLOC_CTX *_mem_save_DocumentName_0;
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_pull_align(ndr, 5));
+		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobID));
+		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
+		NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_UserName));
+		if (_ptr_UserName) {
+			NDR_PULL_ALLOC(ndr, r->UserName);
+			NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->UserName, _ptr_UserName));
+		} else {
+			r->UserName = NULL;
+		}
+		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UserNameHigh));
+		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobPosition));
+		NDR_CHECK(ndr_pull_rap_PrintJStatusCode(ndr, NDR_SCALARS, &r->JobStatus));
+		NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->TimeSubmitted));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobSize));
+		NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobCommentString));
+		if (_ptr_JobCommentString) {
+			NDR_PULL_ALLOC(ndr, r->JobCommentString);
+			NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobCommentString, _ptr_JobCommentString));
+		} else {
+			r->JobCommentString = NULL;
+		}
+		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobCommentStringHigh));
+		NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DocumentName));
+		if (_ptr_DocumentName) {
+			NDR_PULL_ALLOC(ndr, r->DocumentName);
+			NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DocumentName, _ptr_DocumentName));
+		} else {
+			r->DocumentName = NULL;
+		}
+		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DocumentNameHigh));
+		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+		if (r->UserName) {
+			uint32_t _relative_save_offset;
+			_relative_save_offset = ndr->offset;
+			NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->UserName));
+			_mem_save_UserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, r->UserName, 0);
+			NDR_CHECK(ndr_pull_array_size(ndr, &r->UserName));
+			NDR_CHECK(ndr_pull_array_length(ndr, &r->UserName));
+			if (ndr_get_array_length(ndr, &r->UserName) > ndr_get_array_size(ndr, &r->UserName)) {
+				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->UserName), ndr_get_array_length(ndr, &r->UserName));
+			}
+			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->UserName), sizeof(uint8_t)));
+			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->UserName, ndr_get_array_length(ndr, &r->UserName), sizeof(uint8_t), CH_DOS));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_UserName_0, 0);
+		}
+		if (r->JobCommentString) {
+			uint32_t _relative_save_offset;
+			_relative_save_offset = ndr->offset;
+			NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->JobCommentString));
+			_mem_save_JobCommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, r->JobCommentString, 0);
+			NDR_CHECK(ndr_pull_array_size(ndr, &r->JobCommentString));
+			NDR_CHECK(ndr_pull_array_length(ndr, &r->JobCommentString));
+			if (ndr_get_array_length(ndr, &r->JobCommentString) > ndr_get_array_size(ndr, &r->JobCommentString)) {
+				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->JobCommentString), ndr_get_array_length(ndr, &r->JobCommentString));
+			}
+			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t)));
+			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->JobCommentString, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t), CH_DOS));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobCommentString_0, 0);
+		}
+		if (r->DocumentName) {
+			uint32_t _relative_save_offset;
+			_relative_save_offset = ndr->offset;
+			NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DocumentName));
+			_mem_save_DocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, r->DocumentName, 0);
+			NDR_CHECK(ndr_pull_array_size(ndr, &r->DocumentName));
+			NDR_CHECK(ndr_pull_array_length(ndr, &r->DocumentName));
+			if (ndr_get_array_length(ndr, &r->DocumentName) > ndr_get_array_size(ndr, &r->DocumentName)) {
+				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->DocumentName), ndr_get_array_length(ndr, &r->DocumentName));
+			}
+			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->DocumentName), sizeof(uint8_t)));
+			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DocumentName, ndr_get_array_length(ndr, &r->DocumentName), sizeof(uint8_t), CH_DOS));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DocumentName_0, 0);
+		}
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintJobInfo2(struct ndr_print *ndr, const char *name, const struct rap_PrintJobInfo2 *r)
+{
+	ndr_print_struct(ndr, name, "rap_PrintJobInfo2");
+	ndr->depth++;
+	ndr_print_uint16(ndr, "JobID", r->JobID);
+	ndr_print_uint16(ndr, "Priority", r->Priority);
+	ndr_print_ptr(ndr, "UserName", r->UserName);
+	ndr->depth++;
+	if (r->UserName) {
+		ndr_print_string(ndr, "UserName", r->UserName);
+	}
+	ndr->depth--;
+	ndr_print_uint16(ndr, "UserNameHigh", r->UserNameHigh);
+	ndr_print_uint16(ndr, "JobPosition", r->JobPosition);
+	ndr_print_rap_PrintJStatusCode(ndr, "JobStatus", r->JobStatus);
+	ndr_print_time_t(ndr, "TimeSubmitted", r->TimeSubmitted);
+	ndr_print_uint32(ndr, "JobSize", r->JobSize);
+	ndr_print_ptr(ndr, "JobCommentString", r->JobCommentString);
+	ndr->depth++;
+	if (r->JobCommentString) {
+		ndr_print_string(ndr, "JobCommentString", r->JobCommentString);
+	}
+	ndr->depth--;
+	ndr_print_uint16(ndr, "JobCommentStringHigh", r->JobCommentStringHigh);
+	ndr_print_ptr(ndr, "DocumentName", r->DocumentName);
+	ndr->depth++;
+	if (r->DocumentName) {
+		ndr_print_string(ndr, "DocumentName", r->DocumentName);
+	}
+	ndr->depth--;
+	ndr_print_uint16(ndr, "DocumentNameHigh", r->DocumentNameHigh);
+	ndr->depth--;
+}
+
 _PUBLIC_ enum ndr_err_code ndr_push_rap_PrintQStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintQStatusCode r)
 {
 	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
@@ -767,7 +937,7 @@ static enum ndr_err_code ndr_push_rap_PrintQueue0(struct ndr_push *ndr, int ndr_
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 1));
-		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
@@ -779,7 +949,7 @@ static enum ndr_err_code ndr_pull_rap_PrintQueue0(struct ndr_pull *ndr, int ndr_
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 1));
-		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
@@ -791,7 +961,7 @@ _PUBLIC_ void ndr_print_rap_PrintQueue0(struct ndr_print *ndr, const char *name,
 {
 	ndr_print_struct(ndr, name, "rap_PrintQueue0");
 	ndr->depth++;
-	ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13);
+	ndr_print_string(ndr, "PrintQName", r->PrintQName);
 	ndr->depth--;
 }
 
@@ -799,7 +969,7 @@ static enum ndr_err_code ndr_push_rap_PrintQueue1(struct ndr_push *ndr, int ndr_
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 5));
-		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad1));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime));
@@ -872,7 +1042,7 @@ static enum ndr_err_code ndr_pull_rap_PrintQueue1(struct ndr_pull *ndr, int ndr_
 	TALLOC_CTX *_mem_save_CommentString_0;
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 5));
-		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
+		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQName, 13, sizeof(uint8_t), CH_DOS));
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad1));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime));
@@ -1005,7 +1175,7 @@ _PUBLIC_ void ndr_print_rap_PrintQueue1(struct ndr_print *ndr, const char *name,
 {
 	ndr_print_struct(ndr, name, "rap_PrintQueue1");
 	ndr->depth++;
-	ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13);
+	ndr_print_string(ndr, "PrintQName", r->PrintQName);
 	ndr_print_uint8(ndr, "Pad1", r->Pad1);
 	ndr_print_uint16(ndr, "Priority", r->Priority);
 	ndr_print_uint16(ndr, "StartTime", r->StartTime);
@@ -1467,10 +1637,14 @@ _PUBLIC_ void ndr_print_rap_PrintQueue3(struct ndr_print *ndr, const char *name,
 static enum ndr_err_code ndr_push_rap_PrintQueue4(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue4 *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_push_align(ndr, 1));
-		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
+		NDR_CHECK(ndr_push_align(ndr, 5));
+		NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_SCALARS, &r->queue));
+		NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_SCALARS, &r->job));
+		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->queue));
+		NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_BUFFERS, &r->job));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -1478,10 +1652,14 @@ static enum ndr_err_code ndr_push_rap_PrintQueue4(struct ndr_push *ndr, int ndr_
 static enum ndr_err_code ndr_pull_rap_PrintQueue4(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue4 *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_pull_align(ndr, 1));
-		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
+		NDR_CHECK(ndr_pull_align(ndr, 5));
+		NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_SCALARS, &r->queue));
+		NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_SCALARS, &r->job));
+		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
+		NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->queue));
+		NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_BUFFERS, &r->job));
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -1490,6 +1668,8 @@ _PUBLIC_ void ndr_print_rap_PrintQueue4(struct ndr_print *ndr, const char *name,
 {
 	ndr_print_struct(ndr, name, "rap_PrintQueue4");
 	ndr->depth++;
+	ndr_print_rap_PrintQueue3(ndr, "queue", &r->queue);
+	ndr_print_rap_PrintJobInfo2(ndr, "job", &r->job);
 	ndr->depth--;
 }
 
@@ -1616,6 +1796,7 @@ static enum ndr_err_code ndr_push_rap_printq_info(struct ndr_push *ndr, int ndr_
 			break;
 
 			case 4:
+				NDR_CHECK(ndr_push_rap_PrintQueue4(ndr, NDR_BUFFERS, &r->info4));
 			break;
 
 			case 5:
@@ -1682,6 +1863,7 @@ static enum ndr_err_code ndr_pull_rap_printq_info(struct ndr_pull *ndr, int ndr_
 			break;
 
 			case 4:
+				NDR_CHECK(ndr_pull_rap_PrintQueue4(ndr, NDR_BUFFERS, &r->info4));
 			break;
 
 			case 5:
diff --git a/librpc/gen_ndr/ndr_rap.h b/librpc/gen_ndr/ndr_rap.h
index cb46248..0bd455c 100644
--- a/librpc/gen_ndr/ndr_rap.h
+++ b/librpc/gen_ndr/ndr_rap.h
@@ -35,6 +35,7 @@ enum ndr_err_code ndr_push_rap_PrintJStatusCode(struct ndr_push *ndr, int ndr_fl
 enum ndr_err_code ndr_pull_rap_PrintJStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintJStatusCode *r);
 void ndr_print_rap_PrintJStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintJStatusCode r);
 void ndr_print_rap_PrintJobInfo1(struct ndr_print *ndr, const char *name, const struct rap_PrintJobInfo1 *r);
+void ndr_print_rap_PrintJobInfo2(struct ndr_print *ndr, const char *name, const struct rap_PrintJobInfo2 *r);
 enum ndr_err_code ndr_push_rap_PrintQStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintQStatusCode r);
 enum ndr_err_code ndr_pull_rap_PrintQStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintQStatusCode *r);
 void ndr_print_rap_PrintQStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintQStatusCode r);
diff --git a/librpc/gen_ndr/rap.h b/librpc/gen_ndr/rap.h
index b209fd4..97ece53 100644
--- a/librpc/gen_ndr/rap.h
+++ b/librpc/gen_ndr/rap.h
@@ -436,17 +436,17 @@ struct rap_PrintJobInfo0 {
 
 struct rap_PrintJobInfo1 {
 	uint16_t JobID;
-	uint8_t UserName[21];
+	const char *UserName;/* [charset(DOS)] */
 	uint8_t Pad;
-	uint8_t NotifyName[16];
-	uint8_t DataType[10];
+	const char *NotifyName;/* [charset(DOS)] */
+	const char *DataType;/* [charset(DOS)] */
 	const char *PrintParameterString;/* [charset(DOS),relative_short] */
 	uint16_t PrintParameterStringHigh;
 	uint16_t JobPosition;
 	enum rap_PrintJStatusCode JobStatus;
 	const char *JobStatusString;/* [charset(DOS),relative_short] */
 	uint16_t JobStatusStringHigh;
-	uint32_t TimeSubmitted;
+	time_t TimeSubmitted;
 	uint32_t JobSize;
 	const char *JobCommentString;/* [charset(DOS),relative_short] */
 	uint16_t JobCommentStringHigh;
@@ -459,7 +459,7 @@ struct rap_PrintJobInfo2 {
 	uint16_t UserNameHigh;
 	uint16_t JobPosition;
 	enum rap_PrintJStatusCode JobStatus;
-	uint32_t TimeSubmitted;
+	time_t TimeSubmitted;
 	uint32_t JobSize;
 	const char *JobCommentString;/* [charset(DOS),relative_short] */
 	uint16_t JobCommentStringHigh;
@@ -474,7 +474,7 @@ struct rap_PrintJobInfo3 {
 	uint16_t UserNameHigh;
 	uint16_t JobPosition;
 	enum rap_PrintJStatusCode JobStatus;
-	uint32_t TimeSubmitted;
+	time_t TimeSubmitted;
 	uint32_t JobSize;
 	const char *JobCommentString;/* [charset(DOS),relative_short] */
 	uint16_t JobCommentStringHigh;
@@ -520,11 +520,11 @@ enum rap_PrintQStatusCode
 ;
 
 struct rap_PrintQueue0 {
-	uint8_t PrintQName[13];
+	const char *PrintQName;/* [charset(DOS)] */
 };
 
 struct rap_PrintQueue1 {
-	uint8_t PrintQName[13];
+	const char *PrintQName;/* [charset(DOS)] */
 	uint8_t Pad1;
 	uint16_t Priority;
 	uint16_t StartTime;
@@ -574,7 +574,8 @@ struct rap_PrintQueue3 {
 };
 
 struct rap_PrintQueue4 {
-	char _empty_;
+	struct rap_PrintQueue3 queue;
+	struct rap_PrintJobInfo2 job;
 };
 
 struct rap_PrintQueue5 {
diff --git a/librpc/idl/rap.idl b/librpc/idl/rap.idl
index 52a9c60..ebdf5fe 100644
--- a/librpc/idl/rap.idl
+++ b/librpc/idl/rap.idl
@@ -400,17 +400,17 @@ interface rap
 
 	typedef struct {
 		uint16 JobID;
-		uint8 UserName[21];
+		[charset(DOS)] uint8 UserName[21];
 		uint8 Pad;
-		uint8 NotifyName[16];
-		uint8 DataType[10];
+		[charset(DOS)] uint8 NotifyName[16];
+		[charset(DOS)] uint8 DataType[10];
 		[relative_short] [string,charset(DOS)] uint8 *PrintParameterString;
 		uint16 PrintParameterStringHigh;
 		uint16 JobPosition;
 		rap_PrintJStatusCode JobStatus;
 		[relative_short] [string,charset(DOS)] uint8 *JobStatusString;
 		uint16 JobStatusStringHigh;
-		uint32 TimeSubmitted;
+		time_t TimeSubmitted;
 		uint32 JobSize;
 		[relative_short] [string,charset(DOS)] uint8 *JobCommentString;
 		uint16 JobCommentStringHigh;
@@ -423,7 +423,7 @@ interface rap
 		uint16 UserNameHigh;
 		uint16 JobPosition;
 		rap_PrintJStatusCode JobStatus;
-		uint32 TimeSubmitted;
+		time_t TimeSubmitted;
 		uint32 JobSize;
 		[relative_short] [string,charset(DOS)] uint8 *JobCommentString;
 		uint16 JobCommentStringHigh;
@@ -438,7 +438,7 @@ interface rap
 		uint16 UserNameHigh;
 		uint16 JobPosition;
 		rap_PrintJStatusCode JobStatus;
-		uint32 TimeSubmitted;
+		time_t TimeSubmitted;
 		uint32 JobSize;
 		[relative_short] [string,charset(DOS)] uint8 *JobCommentString;
 		uint16 JobCommentStringHigh;
@@ -474,11 +474,11 @@ interface rap
 	} rap_PrintQStatusCode;
 
 	typedef struct {
-		uint8 PrintQName[13];
+		[charset(DOS)] uint8 PrintQName[13];
 	} rap_PrintQueue0;
 
 	typedef struct {
-		uint8 PrintQName[13];
+		[charset(DOS)] uint8 PrintQName[13];
 		uint8 Pad1;
 		uint16 Priority;
 		uint16 StartTime;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list