[SCM] Samba Shared Repository - branch master updated

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


The branch, master has been updated
       via  6a13c02... rap: let the rap print function be autogenerated again.
       via  16e2185... s3: re-run make samba3-idl.
       via  62ef9ad... rap: use astring in IDL.
      from  6156a4b... s4-smbtorture: test all levels in test_netprintqgetinfo and test_netprintqenum.

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


- Log -----------------------------------------------------------------
commit 6a13c028a94772b66788f2a213e8c09707ee6596
Author: Günther Deschner <gd at samba.org>
Date:   Fri Apr 30 01:11:44 2010 +0200

    rap: let the rap print function be autogenerated again.
    
    Guenther

commit 16e2185731afe482b3f12427253101efd3ad36c5
Author: Günther Deschner <gd at samba.org>
Date:   Fri Apr 30 01:21:13 2010 +0200

    s3: re-run make samba3-idl.
    
    Guenther

commit 62ef9ad581df87012858d88dcc30192ad29f46dc
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 29 23:27:27 2010 +0200

    rap: use astring in IDL.
    
    Guenther

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

Summary of changes:
 librpc/gen_ndr/ndr_rap.c | 1749 +++++++++++++++++++++++++++-------------------
 librpc/gen_ndr/ndr_rap.h |    4 +
 librpc/gen_ndr/rap.h     |   96 ++--
 librpc/idl/rap.idl       |   98 ++--
 librpc/ndr/ndr_rap.c     |   40 --
 librpc/ndr/ndr_rap.h     |    1 -
 6 files changed, 1133 insertions(+), 855 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_rap.c b/librpc/gen_ndr/ndr_rap.c
index c1a3889..6d97518 100644
--- a/librpc/gen_ndr/ndr_rap.c
+++ b/librpc/gen_ndr/ndr_rap.c
@@ -42,15 +42,22 @@ static enum ndr_err_code ndr_push_rap_share_info_1(struct ndr_push *ndr, int ndr
 		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+			ndr->flags = _flags_save_string;
+		}
 		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->comment) {
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->comment) {
+				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
+			}
+			ndr->flags = _flags_save_string;
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -65,26 +72,30 @@ static enum ndr_err_code ndr_pull_rap_share_info_1(struct ndr_pull *ndr, int ndr
 		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
-		if (_ptr_comment) {
-			NDR_PULL_ALLOC(ndr, r->comment);
-		} else {
-			r->comment = NULL;
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
+			if (_ptr_comment) {
+				NDR_PULL_ALLOC(ndr, r->comment);
+			} else {
+				r->comment = NULL;
+			}
+			ndr->flags = _flags_save_string;
 		}
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->comment) {
-			_mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
-			if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->comment) {
+				_mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
+				NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
+				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
+				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
 			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
+			ndr->flags = _flags_save_string;
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -113,27 +124,41 @@ static enum ndr_err_code ndr_push_rap_share_info_2(struct ndr_push *ndr, int ndr
 		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+			ndr->flags = _flags_save_string;
+		}
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->perms));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->maximum_users));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->active_users));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->path));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_push_unique_ptr(ndr, r->path));
+			ndr->flags = _flags_save_string;
+		}
 		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->password, 9));
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved2));
 		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->comment) {
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->comment) {
+				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
+			}
+			ndr->flags = _flags_save_string;
 		}
-		if (r->path) {
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->path, ndr_charset_length(r->path, CH_DOS), sizeof(uint8_t), CH_DOS));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->path) {
+				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->path));
+			}
+			ndr->flags = _flags_save_string;
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -150,49 +175,57 @@ static enum ndr_err_code ndr_pull_rap_share_info_2(struct ndr_pull *ndr, int ndr
 		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
-		if (_ptr_comment) {
-			NDR_PULL_ALLOC(ndr, r->comment);
-		} else {
-			r->comment = NULL;
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
+			if (_ptr_comment) {
+				NDR_PULL_ALLOC(ndr, r->comment);
+			} else {
+				r->comment = NULL;
+			}
+			ndr->flags = _flags_save_string;
 		}
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->perms));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->maximum_users));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->active_users));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path));
-		if (_ptr_path) {
-			NDR_PULL_ALLOC(ndr, r->path);
-		} else {
-			r->path = NULL;
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path));
+			if (_ptr_path) {
+				NDR_PULL_ALLOC(ndr, r->path);
+			} else {
+				r->path = NULL;
+			}
+			ndr->flags = _flags_save_string;
 		}
 		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->password, 9));
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved2));
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->comment) {
-			_mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
-			if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
-			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
-		}
-		if (r->path) {
-			_mem_save_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->path, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->path));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->path));
-			if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path));
-			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t), CH_DOS));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0);
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->comment) {
+				_mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
+				NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
+				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
+				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_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->path) {
+				_mem_save_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
+				NDR_PULL_SET_MEM_CTX(ndr, r->path, 0);
+				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->path));
+				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0);
+			}
+			ndr->flags = _flags_save_string;
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -374,15 +407,22 @@ static enum ndr_err_code ndr_push_rap_server_info_1(struct ndr_push *ndr, int nd
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_major));
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_minor));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->servertype));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
+			ndr->flags = _flags_save_string;
+		}
 		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->comment) {
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->comment) {
+				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
+			}
+			ndr->flags = _flags_save_string;
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -398,26 +438,30 @@ static enum ndr_err_code ndr_pull_rap_server_info_1(struct ndr_pull *ndr, int nd
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_major));
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_minor));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->servertype));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
-		if (_ptr_comment) {
-			NDR_PULL_ALLOC(ndr, r->comment);
-		} else {
-			r->comment = NULL;
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
+			if (_ptr_comment) {
+				NDR_PULL_ALLOC(ndr, r->comment);
+			} else {
+				r->comment = NULL;
+			}
+			ndr->flags = _flags_save_string;
 		}
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->comment) {
-			_mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
-			if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->comment) {
+				_mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
+				NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
+				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
+				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
 			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
+			ndr->flags = _flags_save_string;
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -566,39 +610,60 @@ static enum ndr_err_code ndr_push_rap_PrintJobInfo1(struct ndr_push *ndr, int nd
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad));
 		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));
+		{
+			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));
 		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));
+		{
+			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->JobStatusString));
+			ndr->flags = _flags_save_string;
+		}
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobStatusStringHigh));
 		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));
+		{
+			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));
 		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->PrintParameterString) {
-			NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
-		}
-		if (r->JobStatusString) {
-			NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobStatusString));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobStatusString, CH_DOS)));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobStatusString, CH_DOS)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->JobStatusString, ndr_charset_length(r->JobStatusString, 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));
+		{
+			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->JobStatusString) {
+				NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobStatusString));
+				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->JobStatusString));
+			}
+			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;
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -619,81 +684,93 @@ static enum ndr_err_code ndr_pull_rap_PrintJobInfo1(struct ndr_pull *ndr, int nd
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad));
 		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);
-			NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
-		} else {
-			r->PrintParameterString = NULL;
+		{
+			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));
 		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_relative_ptr_short(ndr, &_ptr_JobStatusString));
-		if (_ptr_JobStatusString) {
-			NDR_PULL_ALLOC(ndr, r->JobStatusString);
-			NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobStatusString, _ptr_JobStatusString));
-		} else {
-			r->JobStatusString = NULL;
+		{
+			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_JobStatusString));
+			if (_ptr_JobStatusString) {
+				NDR_PULL_ALLOC(ndr, r->JobStatusString);
+				NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobStatusString, _ptr_JobStatusString));
+			} else {
+				r->JobStatusString = NULL;
+			}
+			ndr->flags = _flags_save_string;
 		}
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobStatusStringHigh));
 		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;
+		{
+			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));
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->PrintParameterString) {
-			uint32_t _relative_save_offset;
-			_relative_save_offset = ndr->offset;
-			NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
-			_mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
-			if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintParameterString), ndr_get_array_length(ndr, &r->PrintParameterString));
-			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
-		}
-		if (r->JobStatusString) {
-			uint32_t _relative_save_offset;
-			_relative_save_offset = ndr->offset;
-			NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->JobStatusString));
-			_mem_save_JobStatusString_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->JobStatusString, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->JobStatusString));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->JobStatusString));
-			if (ndr_get_array_length(ndr, &r->JobStatusString) > ndr_get_array_size(ndr, &r->JobStatusString)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->JobStatusString), ndr_get_array_length(ndr, &r->JobStatusString));
-			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->JobStatusString), sizeof(uint8_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->JobStatusString, ndr_get_array_length(ndr, &r->JobStatusString), sizeof(uint8_t), CH_DOS));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobStatusString_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);
+		{
+			uint32_t _flags_save_string = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
+			if (r->PrintParameterString) {
+				uint32_t _relative_save_offset;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list