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