The branch, master has been updated
       via  400c07f... s4-smbtorture: add test_netprintjobenum to RAP-PRINTING.
       via  753fde9... s4-smbtorture: add smbcli_rap_netprintjobenum().
       via  3d5c790... s3: re-run make samba3-idl.
       via  cd90e00... s3: add rap_NetPrintJobEnum (again a call not documented 
in MS-RAP).
      from  52b669b... s4-smbtorture: pause and resume printq in RAP-PRINTING 
test.

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


- Log -----------------------------------------------------------------
commit 400c07f0de19b6cc7da39b9c6d0a42eeed0b4ea1
Author: Günther Deschner <[email protected]>
Date:   Fri Apr 30 14:57:19 2010 +0200

    s4-smbtorture: add test_netprintjobenum to RAP-PRINTING.
    
    Guenther

commit 753fde9c19ed2767b9da22d02a650732612c1843
Author: Günther Deschner <[email protected]>
Date:   Fri Apr 30 14:52:48 2010 +0200

    s4-smbtorture: add smbcli_rap_netprintjobenum().
    
    Guenther

commit 3d5c7909ea34d7d3d1d668738cf8be60033f9f14
Author: Günther Deschner <[email protected]>
Date:   Fri Apr 30 13:52:56 2010 +0200

    s3: re-run make samba3-idl.
    
    Guenther

commit cd90e002bdc3e84c1f09994bd458bc3a420ae195
Author: Günther Deschner <[email protected]>
Date:   Fri Apr 30 13:52:14 2010 +0200

    s3: add rap_NetPrintJobEnum (again a call not documented in MS-RAP).
    
    Guenther

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

Summary of changes:
 librpc/gen_ndr/ndr_rap.c       |  989 ++++++++++++++++++++++++++++++++++++++++
 librpc/gen_ndr/ndr_rap.h       |   12 +-
 librpc/gen_ndr/rap.h           |   25 +
 librpc/idl/rap.idl             |   19 +
 source4/torture/rap/printing.c |   55 +++
 source4/torture/rap/rap.c      |  127 +++++
 6 files changed, 1226 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_rap.c b/librpc/gen_ndr/ndr_rap.c
index 43e7691..f7b8652 100644
--- a/librpc/gen_ndr/ndr_rap.c
+++ b/librpc/gen_ndr/ndr_rap.c
@@ -615,6 +615,38 @@ _PUBLIC_ void ndr_print_rap_PrintJStatusCode(struct 
ndr_print *ndr, const char *
        ndr_print_enum(ndr, name, "ENUM", val, r);
 }
 
+static enum ndr_err_code ndr_push_rap_PrintJobInfo0(struct ndr_push *ndr, int 
ndr_flags, const struct rap_PrintJobInfo0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 2));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobID));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 2));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintJobInfo0(struct ndr_pull *ndr, int 
ndr_flags, struct rap_PrintJobInfo0 *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 2));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobID));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_rap_PrintJobInfo0(struct ndr_print *ndr, const char 
*name, const struct rap_PrintJobInfo0 *r)
+{
+       ndr_print_struct(ndr, name, "rap_PrintJobInfo0");
+       ndr->depth++;
+       ndr_print_uint16(ndr, "JobID", r->JobID);
+       ndr->depth--;
+}
+
 static enum ndr_err_code ndr_push_rap_PrintJobInfo1(struct ndr_push *ndr, int 
ndr_flags, const struct rap_PrintJobInfo1 *r)
 {
        if (ndr_flags & NDR_SCALARS) {
@@ -1030,6 +1062,858 @@ _PUBLIC_ void ndr_print_rap_PrintJobInfo2(struct 
ndr_print *ndr, const char *nam
        ndr->depth--;
 }
 
+static enum ndr_err_code ndr_push_rap_PrintJobInfo3(struct ndr_push *ndr, int 
ndr_flags, const struct rap_PrintJobInfo3 *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));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->UserName));
+                       ndr->flags = _flags_save_string;
+               }
+               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));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->JobCommentString));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->JobCommentStringHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->DocumentName));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->DocumentNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->NotifyName));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->NotifyNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->DataType));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DataTypeHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->PrintParameterString));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->PrintParameterStringHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->StatusString));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->StatusStringHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->QueueName));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->QueueNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->PrintProcessorName));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->PrintProcessorNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->PrintProcessorParams));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->PrintProcessorParamsHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->DriverName));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DriverNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->DriverDataOffset));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->DriverDataOffsetHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_push_short_relative_ptr1(ndr, 
r->PrinterNameOffset));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
r->PrinterNameOffsetHigh));
+               NDR_CHECK(ndr_push_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->UserName) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->UserName));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->UserName));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->JobCommentString) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->JobCommentString));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->JobCommentString));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->DocumentName) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->DocumentName));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->DocumentName));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->NotifyName) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->NotifyName));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->NotifyName));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->DataType) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->DataType));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->DataType));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->PrintParameterString) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->PrintParameterString));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->PrintParameterString));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->StatusString) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->StatusString));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->StatusString));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->QueueName) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->QueueName));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->QueueName));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->PrintProcessorName) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->PrintProcessorName));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->PrintProcessorName));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->PrintProcessorParams) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->PrintProcessorParams));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->PrintProcessorParams));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->DriverName) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->DriverName));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->DriverName));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->DriverDataOffset) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->DriverDataOffset));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->DriverDataOffset));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->PrinterNameOffset) {
+                               NDR_CHECK(ndr_push_short_relative_ptr2(ndr, 
r->PrinterNameOffset));
+                               NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 
r->PrinterNameOffset));
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_rap_PrintJobInfo3(struct ndr_pull *ndr, int 
ndr_flags, struct rap_PrintJobInfo3 *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;
+       uint16_t _ptr_NotifyName;
+       TALLOC_CTX *_mem_save_NotifyName_0;
+       uint16_t _ptr_DataType;
+       TALLOC_CTX *_mem_save_DataType_0;
+       uint16_t _ptr_PrintParameterString;
+       TALLOC_CTX *_mem_save_PrintParameterString_0;
+       uint16_t _ptr_StatusString;
+       TALLOC_CTX *_mem_save_StatusString_0;
+       uint16_t _ptr_QueueName;
+       TALLOC_CTX *_mem_save_QueueName_0;
+       uint16_t _ptr_PrintProcessorName;
+       TALLOC_CTX *_mem_save_PrintProcessorName_0;
+       uint16_t _ptr_PrintProcessorParams;
+       TALLOC_CTX *_mem_save_PrintProcessorParams_0;
+       uint16_t _ptr_DriverName;
+       TALLOC_CTX *_mem_save_DriverName_0;
+       uint16_t _ptr_DriverDataOffset;
+       TALLOC_CTX *_mem_save_DriverDataOffset_0;
+       uint16_t _ptr_PrinterNameOffset;
+       TALLOC_CTX *_mem_save_PrinterNameOffset_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));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       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->flags = _flags_save_string;
+               }
+               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));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       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->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->JobCommentStringHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       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->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->DocumentNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_NotifyName));
+                       if (_ptr_NotifyName) {
+                               NDR_PULL_ALLOC(ndr, r->NotifyName);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->NotifyName, _ptr_NotifyName));
+                       } else {
+                               r->NotifyName = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->NotifyNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_DataType));
+                       if (_ptr_DataType) {
+                               NDR_PULL_ALLOC(ndr, r->DataType);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->DataType, _ptr_DataType));
+                       } else {
+                               r->DataType = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DataTypeHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_PrintParameterString));
+                       if (_ptr_PrintParameterString) {
+                               NDR_PULL_ALLOC(ndr, r->PrintParameterString);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->PrintParameterString, _ptr_PrintParameterString));
+                       } else {
+                               r->PrintParameterString = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->PrintParameterStringHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_StatusString));
+                       if (_ptr_StatusString) {
+                               NDR_PULL_ALLOC(ndr, r->StatusString);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->StatusString, _ptr_StatusString));
+                       } else {
+                               r->StatusString = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->StatusStringHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_QueueName));
+                       if (_ptr_QueueName) {
+                               NDR_PULL_ALLOC(ndr, r->QueueName);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->QueueName, _ptr_QueueName));
+                       } else {
+                               r->QueueName = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->QueueNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_PrintProcessorName));
+                       if (_ptr_PrintProcessorName) {
+                               NDR_PULL_ALLOC(ndr, r->PrintProcessorName);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->PrintProcessorName, _ptr_PrintProcessorName));
+                       } else {
+                               r->PrintProcessorName = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->PrintProcessorNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_PrintProcessorParams));
+                       if (_ptr_PrintProcessorParams) {
+                               NDR_PULL_ALLOC(ndr, r->PrintProcessorParams);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->PrintProcessorParams, _ptr_PrintProcessorParams));
+                       } else {
+                               r->PrintProcessorParams = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->PrintProcessorParamsHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_DriverName));
+                       if (_ptr_DriverName) {
+                               NDR_PULL_ALLOC(ndr, r->DriverName);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->DriverName, _ptr_DriverName));
+                       } else {
+                               r->DriverName = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->DriverNameHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_DriverDataOffset));
+                       if (_ptr_DriverDataOffset) {
+                               NDR_PULL_ALLOC(ndr, r->DriverDataOffset);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->DriverDataOffset, _ptr_DriverDataOffset));
+                       } else {
+                               r->DriverDataOffset = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->DriverDataOffsetHigh));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       NDR_CHECK(ndr_pull_relative_ptr_short(ndr, 
&_ptr_PrinterNameOffset));
+                       if (_ptr_PrinterNameOffset) {
+                               NDR_PULL_ALLOC(ndr, r->PrinterNameOffset);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->PrinterNameOffset, _ptr_PrinterNameOffset));
+                       } else {
+                               r->PrinterNameOffset = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->PrinterNameOffsetHigh));
+               NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       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_string(ndr, NDR_SCALARS, 
&r->UserName));
+                               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_UserName_0, 
0);
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+                       if (r->JobCommentString) {
+                               uint32_t _relative_save_offset;
+                               _relative_save_offset = ndr->offset;


-- 
Samba Shared Repository

Reply via email to