From 66e47f393c9867c2c040b5310706f31b2bb5f314 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 29 Apr 2010 08:26:19 +1000 Subject: s4-idl: added generated files from rap.idl --- librpc/gen_ndr/ndr_rap.c | 1860 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1860 insertions(+) create mode 100644 librpc/gen_ndr/ndr_rap.c (limited to 'librpc/gen_ndr/ndr_rap.c') diff --git a/librpc/gen_ndr/ndr_rap.c b/librpc/gen_ndr/ndr_rap.c new file mode 100644 index 0000000000..aece68b165 --- /dev/null +++ b/librpc/gen_ndr/ndr_rap.c @@ -0,0 +1,1860 @@ +/* parser auto-generated by pidl */ + +#include "includes.h" +#include "../librpc/gen_ndr/ndr_rap.h" + +static enum ndr_err_code ndr_push_rap_share_info_0(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_0 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 1)); + NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13)); + NDR_CHECK(ndr_push_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_share_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_0 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); + NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13)); + NDR_CHECK(ndr_pull_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_share_info_0(struct ndr_print *ndr, const char *name, const struct rap_share_info_0 *r) +{ + ndr_print_struct(ndr, name, "rap_share_info_0"); + ndr->depth++; + ndr_print_array_uint8(ndr, "share_name", r->share_name, 13); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_share_info_1(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_1 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 5)); + 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)); + 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)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_share_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_1 *r) +{ + uint32_t _ptr_comment; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 5)); + 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; + } + 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); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_share_info_1(struct ndr_print *ndr, const char *name, const struct rap_share_info_1 *r) +{ + ndr_print_struct(ndr, name, "rap_share_info_1"); + ndr->depth++; + ndr_print_array_uint8(ndr, "share_name", r->share_name, 13); + ndr_print_uint8(ndr, "reserved1", r->reserved1); + ndr_print_uint16(ndr, "share_type", r->share_type); + ndr_print_ptr(ndr, "comment", r->comment); + ndr->depth++; + if (r->comment) { + ndr_print_string(ndr, "comment", r->comment); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_share_info_2(struct ndr_push *ndr, int ndr_flags, const struct rap_share_info_2 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 5)); + 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)); + 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)); + 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)); + } + 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)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_share_info_2(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_2 *r) +{ + uint32_t _ptr_comment; + TALLOC_CTX *_mem_save_comment_0; + uint32_t _ptr_path; + TALLOC_CTX *_mem_save_path_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 5)); + 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; + } + 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; + } + 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); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_share_info_2(struct ndr_print *ndr, const char *name, const struct rap_share_info_2 *r) +{ + ndr_print_struct(ndr, name, "rap_share_info_2"); + ndr->depth++; + ndr_print_array_uint8(ndr, "share_name", r->share_name, 13); + ndr_print_uint8(ndr, "reserved1", r->reserved1); + ndr_print_uint16(ndr, "share_type", r->share_type); + ndr_print_ptr(ndr, "comment", r->comment); + ndr->depth++; + if (r->comment) { + ndr_print_string(ndr, "comment", r->comment); + } + ndr->depth--; + ndr_print_uint16(ndr, "perms", r->perms); + ndr_print_uint16(ndr, "maximum_users", r->maximum_users); + ndr_print_uint16(ndr, "active_users", r->active_users); + ndr_print_ptr(ndr, "path", r->path); + ndr->depth++; + if (r->path) { + ndr_print_string(ndr, "path", r->path); + } + ndr->depth--; + ndr_print_array_uint8(ndr, "password", r->password, 9); + ndr_print_uint8(ndr, "reserved2", r->reserved2); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_share_info(struct ndr_push *ndr, int ndr_flags, const union rap_share_info *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_union_align(ndr, 5)); + switch (level) { + case 0: { + NDR_CHECK(ndr_push_rap_share_info_0(ndr, NDR_SCALARS, &r->info0)); + break; } + + case 1: { + NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_SCALARS, &r->info1)); + break; } + + case 2: { + NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_SCALARS, &r->info2)); + break; } + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + break; + + case 1: + NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1)); + break; + + case 2: + NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2)); + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_share_info(struct ndr_pull *ndr, int ndr_flags, union rap_share_info *r) +{ + int level; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_union_align(ndr, 5)); + switch (level) { + case 0: { + NDR_CHECK(ndr_pull_rap_share_info_0(ndr, NDR_SCALARS, &r->info0)); + break; } + + case 1: { + NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_SCALARS, &r->info1)); + break; } + + case 2: { + NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_SCALARS, &r->info2)); + break; } + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + break; + + case 1: + NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1)); + break; + + case 2: + NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2)); + break; + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_share_info(struct ndr_print *ndr, const char *name, const union rap_share_info *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "rap_share_info"); + switch (level) { + case 0: + ndr_print_rap_share_info_0(ndr, "info0", &r->info0); + break; + + case 1: + ndr_print_rap_share_info_1(ndr, "info1", &r->info1); + break; + + case 2: + ndr_print_rap_share_info_2(ndr, "info2", &r->info2); + break; + + default: + ndr_print_bad_level(ndr, name, level); + } +} + +static enum ndr_err_code ndr_push_rap_server_info_0(struct ndr_push *ndr, int ndr_flags, const struct rap_server_info_0 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 1)); + NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16)); + NDR_CHECK(ndr_push_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_server_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_0 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); + NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16)); + NDR_CHECK(ndr_pull_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_server_info_0(struct ndr_print *ndr, const char *name, const struct rap_server_info_0 *r) +{ + ndr_print_struct(ndr, name, "rap_server_info_0"); + ndr->depth++; + ndr_print_array_uint8(ndr, "name", r->name, 16); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_server_info_1(struct ndr_push *ndr, int ndr_flags, const struct rap_server_info_1 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 5)); + NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16)); + 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)); + 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)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_server_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_1 *r) +{ + uint32_t _ptr_comment; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 5)); + NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16)); + 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; + } + 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); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_server_info_1(struct ndr_print *ndr, const char *name, const struct rap_server_info_1 *r) +{ + ndr_print_struct(ndr, name, "rap_server_info_1"); + ndr->depth++; + ndr_print_array_uint8(ndr, "name", r->name, 16); + ndr_print_uint8(ndr, "version_major", r->version_major); + ndr_print_uint8(ndr, "version_minor", r->version_minor); + ndr_print_uint32(ndr, "servertype", r->servertype); + ndr_print_ptr(ndr, "comment", r->comment); + ndr->depth++; + if (r->comment) { + ndr_print_string(ndr, "comment", r->comment); + } + ndr->depth--; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_server_info(struct ndr_push *ndr, int ndr_flags, const union rap_server_info *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_union_align(ndr, 5)); + switch (level) { + case 0: { + NDR_CHECK(ndr_push_rap_server_info_0(ndr, NDR_SCALARS, &r->info0)); + break; } + + case 1: { + NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_SCALARS, &r->info1)); + break; } + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + break; + + case 1: + NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1)); + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_server_info(struct ndr_pull *ndr, int ndr_flags, union rap_server_info *r) +{ + int level; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_union_align(ndr, 5)); + switch (level) { + case 0: { + NDR_CHECK(ndr_pull_rap_server_info_0(ndr, NDR_SCALARS, &r->info0)); + break; } + + case 1: { + NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_SCALARS, &r->info1)); + break; } + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + break; + + case 1: + NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1)); + break; + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_server_info(struct ndr_print *ndr, const char *name, const union rap_server_info *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "rap_server_info"); + switch (level) { + case 0: + ndr_print_rap_server_info_0(ndr, "info0", &r->info0); + break; + + case 1: + ndr_print_rap_server_info_1(ndr, "info1", &r->info1); + break; + + default: + ndr_print_bad_level(ndr, name, level); + } +} + +_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)); + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintQStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintQStatusCode *r) +{ + uint16_t v; + NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v)); + *r = v; + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintQStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintQStatusCode r) +{ + const char *val = NULL; + + switch (r) { + case PRQ_ACTIVE: val = "PRQ_ACTIVE"; break; + case PRQ_PAUSE: val = "PRQ_PAUSE"; break; + case PRQ_ERROR: val = "PRQ_ERROR"; break; + case PRQ_PENDING: val = "PRQ_PENDING"; break; + } + ndr_print_enum(ndr, name, "ENUM", val, r); +} + +static enum ndr_err_code ndr_push_rap_PrintQueue0(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue0 *r) +{ + 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_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_PrintQueue0(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue0 *r) +{ + 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_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintQueue0(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue0 *r) +{ + ndr_print_struct(ndr, name, "rap_PrintQueue0"); + ndr->depth++; + ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_PrintQueue1(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue1 *r) +{ + 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_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)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDestinationsName)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDestinationsNameHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh)); + NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount)); + NDR_CHECK(ndr_push_trailer_align(ndr, 5)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->SeparatorPageFilename) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (r->PrintProcessorDllName) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (r->PrintDestinationsName) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDestinationsName)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDestinationsName, ndr_charset_length(r->PrintDestinationsName, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + 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->CommentString) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_PrintQueue1(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue1 *r) +{ + uint16_t _ptr_SeparatorPageFilename; + TALLOC_CTX *_mem_save_SeparatorPageFilename_0; + uint16_t _ptr_PrintProcessorDllName; + TALLOC_CTX *_mem_save_PrintProcessorDllName_0; + uint16_t _ptr_PrintDestinationsName; + TALLOC_CTX *_mem_save_PrintDestinationsName_0; + uint16_t _ptr_PrintParameterString; + TALLOC_CTX *_mem_save_PrintParameterString_0; + uint16_t _ptr_CommentString; + 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_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)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename)); + if (_ptr_SeparatorPageFilename) { + NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename)); + } else { + r->SeparatorPageFilename = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName)); + if (_ptr_PrintProcessorDllName) { + NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName)); + } else { + r->PrintProcessorDllName = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDestinationsName)); + if (_ptr_PrintDestinationsName) { + NDR_PULL_ALLOC(ndr, r->PrintDestinationsName); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDestinationsName, _ptr_PrintDestinationsName)); + } else { + r->PrintDestinationsName = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDestinationsNameHigh)); + 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_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString)); + if (_ptr_CommentString) { + NDR_PULL_ALLOC(ndr, r->CommentString); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString)); + } else { + r->CommentString = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh)); + NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount)); + NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->SeparatorPageFilename) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename)); + _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename)); + if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->SeparatorPageFilename), ndr_get_array_length(ndr, &r->SeparatorPageFilename)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0); + } + if (r->PrintProcessorDllName) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName)); + _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName)); + if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintProcessorDllName), ndr_get_array_length(ndr, &r->PrintProcessorDllName)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0); + } + if (r->PrintDestinationsName) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDestinationsName)); + _mem_save_PrintDestinationsName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->PrintDestinationsName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDestinationsName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDestinationsName)); + if (ndr_get_array_length(ndr, &r->PrintDestinationsName) > ndr_get_array_size(ndr, &r->PrintDestinationsName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintDestinationsName), ndr_get_array_length(ndr, &r->PrintDestinationsName)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDestinationsName, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDestinationsName_0, 0); + } + 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->CommentString) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString)); + _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString)); + if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->CommentString), ndr_get_array_length(ndr, &r->CommentString)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintQueue1(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue1 *r) +{ + ndr_print_struct(ndr, name, "rap_PrintQueue1"); + ndr->depth++; + ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13); + ndr_print_uint8(ndr, "Pad1", r->Pad1); + ndr_print_uint16(ndr, "Priority", r->Priority); + ndr_print_uint16(ndr, "StartTime", r->StartTime); + ndr_print_uint16(ndr, "UntilTime", r->UntilTime); + ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename); + ndr->depth++; + if (r->SeparatorPageFilename) { + ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename); + } + ndr->depth--; + ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh); + ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName); + ndr->depth++; + if (r->PrintProcessorDllName) { + ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh); + ndr_print_ptr(ndr, "PrintDestinationsName", r->PrintDestinationsName); + ndr->depth++; + if (r->PrintDestinationsName) { + ndr_print_string(ndr, "PrintDestinationsName", r->PrintDestinationsName); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintDestinationsNameHigh", r->PrintDestinationsNameHigh); + ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString); + ndr->depth++; + if (r->PrintParameterString) { + ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh); + ndr_print_ptr(ndr, "CommentString", r->CommentString); + ndr->depth++; + if (r->CommentString) { + ndr_print_string(ndr, "CommentString", r->CommentString); + } + ndr->depth--; + ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh); + ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus); + ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_PrintQueue2(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue2 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 1)); + NDR_CHECK(ndr_push_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_PrintQueue2(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue2 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); + NDR_CHECK(ndr_pull_trailer_align(ndr, 1)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintQueue2(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue2 *r) +{ + ndr_print_struct(ndr, name, "rap_PrintQueue2"); + ndr->depth++; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_PrintQueue3(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue3 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 5)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Pad)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh)); + NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->Printers)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintersHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DriverName)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DriverNameHigh)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDriverData)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDriverDataHigh)); + NDR_CHECK(ndr_push_trailer_align(ndr, 5)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->PrintQueueName) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (r->SeparatorPageFilename) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (r->PrintProcessorDllName) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + 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->CommentString) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (r->Printers) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->Printers)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->Printers, ndr_charset_length(r->Printers, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (r->DriverName) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DriverName)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DriverName, ndr_charset_length(r->DriverName, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (r->PrintDriverData) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDriverData)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDriverData, ndr_charset_length(r->PrintDriverData, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_PrintQueue3(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue3 *r) +{ + uint16_t _ptr_PrintQueueName; + TALLOC_CTX *_mem_save_PrintQueueName_0; + uint16_t _ptr_SeparatorPageFilename; + TALLOC_CTX *_mem_save_SeparatorPageFilename_0; + uint16_t _ptr_PrintProcessorDllName; + TALLOC_CTX *_mem_save_PrintProcessorDllName_0; + uint16_t _ptr_PrintParameterString; + TALLOC_CTX *_mem_save_PrintParameterString_0; + uint16_t _ptr_CommentString; + TALLOC_CTX *_mem_save_CommentString_0; + uint16_t _ptr_Printers; + TALLOC_CTX *_mem_save_Printers_0; + uint16_t _ptr_DriverName; + TALLOC_CTX *_mem_save_DriverName_0; + uint16_t _ptr_PrintDriverData; + TALLOC_CTX *_mem_save_PrintDriverData_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 5)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName)); + if (_ptr_PrintQueueName) { + NDR_PULL_ALLOC(ndr, r->PrintQueueName); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName)); + } else { + r->PrintQueueName = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Pad)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename)); + if (_ptr_SeparatorPageFilename) { + NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename)); + } else { + r->SeparatorPageFilename = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName)); + if (_ptr_PrintProcessorDllName) { + NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName)); + } else { + r->PrintProcessorDllName = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh)); + 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_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString)); + if (_ptr_CommentString) { + NDR_PULL_ALLOC(ndr, r->CommentString); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString)); + } else { + r->CommentString = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh)); + NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_Printers)); + if (_ptr_Printers) { + NDR_PULL_ALLOC(ndr, r->Printers); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Printers, _ptr_Printers)); + } else { + r->Printers = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintersHigh)); + 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_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DriverNameHigh)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDriverData)); + if (_ptr_PrintDriverData) { + NDR_PULL_ALLOC(ndr, r->PrintDriverData); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDriverData, _ptr_PrintDriverData)); + } else { + r->PrintDriverData = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDriverDataHigh)); + NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->PrintQueueName) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName)); + _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName)); + if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintQueueName), ndr_get_array_length(ndr, &r->PrintQueueName)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0); + } + if (r->SeparatorPageFilename) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename)); + _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename)); + if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->SeparatorPageFilename), ndr_get_array_length(ndr, &r->SeparatorPageFilename)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0); + } + if (r->PrintProcessorDllName) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName)); + _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName)); + if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintProcessorDllName), ndr_get_array_length(ndr, &r->PrintProcessorDllName)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0); + } + 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->CommentString) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString)); + _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString)); + if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->CommentString), ndr_get_array_length(ndr, &r->CommentString)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0); + } + if (r->Printers) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Printers)); + _mem_save_Printers_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->Printers, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->Printers)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->Printers)); + if (ndr_get_array_length(ndr, &r->Printers) > ndr_get_array_size(ndr, &r->Printers)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->Printers), ndr_get_array_length(ndr, &r->Printers)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Printers, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Printers_0, 0); + } + if (r->DriverName) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DriverName)); + _mem_save_DriverName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->DriverName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->DriverName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->DriverName)); + if (ndr_get_array_length(ndr, &r->DriverName) > ndr_get_array_size(ndr, &r->DriverName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->DriverName), ndr_get_array_length(ndr, &r->DriverName)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DriverName, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DriverName_0, 0); + } + if (r->PrintDriverData) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDriverData)); + _mem_save_PrintDriverData_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->PrintDriverData, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDriverData)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDriverData)); + if (ndr_get_array_length(ndr, &r->PrintDriverData) > ndr_get_array_size(ndr, &r->PrintDriverData)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintDriverData), ndr_get_array_length(ndr, &r->PrintDriverData)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDriverData, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDriverData_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintQueue3(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue3 *r) +{ + ndr_print_struct(ndr, name, "rap_PrintQueue3"); + ndr->depth++; + ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName); + ndr->depth++; + if (r->PrintQueueName) { + ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh); + ndr_print_uint16(ndr, "Priority", r->Priority); + ndr_print_uint16(ndr, "StartTime", r->StartTime); + ndr_print_uint16(ndr, "UntilTime", r->UntilTime); + ndr_print_uint16(ndr, "Pad", r->Pad); + ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename); + ndr->depth++; + if (r->SeparatorPageFilename) { + ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename); + } + ndr->depth--; + ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh); + ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName); + ndr->depth++; + if (r->PrintProcessorDllName) { + ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh); + ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString); + ndr->depth++; + if (r->PrintParameterString) { + ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh); + ndr_print_ptr(ndr, "CommentString", r->CommentString); + ndr->depth++; + if (r->CommentString) { + ndr_print_string(ndr, "CommentString", r->CommentString); + } + ndr->depth--; + ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh); + ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus); + ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount); + ndr_print_ptr(ndr, "Printers", r->Printers); + ndr->depth++; + if (r->Printers) { + ndr_print_string(ndr, "Printers", r->Printers); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintersHigh", r->PrintersHigh); + ndr_print_ptr(ndr, "DriverName", r->DriverName); + ndr->depth++; + if (r->DriverName) { + ndr_print_string(ndr, "DriverName", r->DriverName); + } + ndr->depth--; + ndr_print_uint16(ndr, "DriverNameHigh", r->DriverNameHigh); + ndr_print_ptr(ndr, "PrintDriverData", r->PrintDriverData); + ndr->depth++; + if (r->PrintDriverData) { + ndr_print_string(ndr, "PrintDriverData", r->PrintDriverData); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintDriverDataHigh", r->PrintDriverDataHigh); + ndr->depth--; +} + +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)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +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)); + } + if (ndr_flags & NDR_BUFFERS) { + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintQueue4(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue4 *r) +{ + ndr_print_struct(ndr, name, "rap_PrintQueue4"); + ndr->depth++; + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_PrintQueue5(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue5 *r) +{ + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_push_align(ndr, 5)); + NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh)); + NDR_CHECK(ndr_push_trailer_align(ndr, 5)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->PrintQueueName) { + NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_PrintQueue5(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue5 *r) +{ + uint16_t _ptr_PrintQueueName; + TALLOC_CTX *_mem_save_PrintQueueName_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 5)); + NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName)); + if (_ptr_PrintQueueName) { + NDR_PULL_ALLOC(ndr, r->PrintQueueName); + NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName)); + } else { + r->PrintQueueName = NULL; + } + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh)); + NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->PrintQueueName) { + uint32_t _relative_save_offset; + _relative_save_offset = ndr->offset; + NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName)); + _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName)); + if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->PrintQueueName), ndr_get_array_length(ndr, &r->PrintQueueName)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintQueue5(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue5 *r) +{ + ndr_print_struct(ndr, name, "rap_PrintQueue5"); + ndr->depth++; + ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName); + ndr->depth++; + if (r->PrintQueueName) { + ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName); + } + ndr->depth--; + ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh); + ndr->depth--; +} + +static enum ndr_err_code ndr_push_rap_printq_info(struct ndr_push *ndr, int ndr_flags, const union rap_printq_info *r) +{ + if (ndr_flags & NDR_SCALARS) { + int level = ndr_push_get_switch_value(ndr, r); + NDR_CHECK(ndr_push_union_align(ndr, 5)); + switch (level) { + case 0: { + NDR_CHECK(ndr_push_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0)); + break; } + + case 1: { + NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1)); + break; } + + case 2: { + NDR_CHECK(ndr_push_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2)); + break; } + + case 3: { + NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3)); + break; } + + case 4: { + NDR_CHECK(ndr_push_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4)); + break; } + + case 5: { + NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5)); + break; } + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + if (ndr_flags & NDR_BUFFERS) { + int level = ndr_push_get_switch_value(ndr, r); + switch (level) { + case 0: + break; + + case 1: + NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1)); + break; + + case 2: + break; + + case 3: + NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3)); + break; + + case 4: + break; + + case 5: + NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5)); + break; + + default: + return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + return NDR_ERR_SUCCESS; +} + +static enum ndr_err_code ndr_pull_rap_printq_info(struct ndr_pull *ndr, int ndr_flags, union rap_printq_info *r) +{ + int level; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_union_align(ndr, 5)); + switch (level) { + case 0: { + NDR_CHECK(ndr_pull_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0)); + break; } + + case 1: { + NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1)); + break; } + + case 2: { + NDR_CHECK(ndr_pull_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2)); + break; } + + case 3: { + NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3)); + break; } + + case 4: { + NDR_CHECK(ndr_pull_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4)); + break; } + + case 5: { + NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5)); + break; } + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + if (ndr_flags & NDR_BUFFERS) { + switch (level) { + case 0: + break; + + case 1: + NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1)); + break; + + case 2: + break; + + case 3: + NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3)); + break; + + case 4: + break; + + case 5: + NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5)); + break; + + default: + return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__); + } + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_printq_info(struct ndr_print *ndr, const char *name, const union rap_printq_info *r) +{ + int level; + level = ndr_print_get_switch_value(ndr, r); + ndr_print_union(ndr, name, level, "rap_printq_info"); + switch (level) { + case 0: + ndr_print_rap_PrintQueue0(ndr, "info0", &r->info0); + break; + + case 1: + ndr_print_rap_PrintQueue1(ndr, "info1", &r->info1); + break; + + case 2: + ndr_print_rap_PrintQueue2(ndr, "info2", &r->info2); + break; + + case 3: + ndr_print_rap_PrintQueue3(ndr, "info3", &r->info3); + break; + + case 4: + ndr_print_rap_PrintQueue4(ndr, "info4", &r->info4); + break; + + case 5: + ndr_print_rap_PrintQueue5(ndr, "info5", &r->info5); + break; + + default: + ndr_print_bad_level(ndr, name, level); + } +} + +_PUBLIC_ enum ndr_err_code ndr_push_rap_PrintJStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintJStatusCode r) +{ + NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r)); + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintJStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintJStatusCode *r) +{ + uint16_t v; + NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v)); + *r = v; + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_PrintJStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintJStatusCode r) +{ + const char *val = NULL; + + switch (r) { + case PRJ_QS_QUEUED: val = "PRJ_QS_QUEUED"; break; + case PRJ_QS_PAUSED: val = "PRJ_QS_PAUSED"; break; + case PRJ_QS_SPOOLING: val = "PRJ_QS_SPOOLING"; break; + case PRJ_QS_PRINTING: val = "PRJ_QS_PRINTING"; break; + case PRJ_QS_ERROR: val = "PRJ_QS_ERROR"; break; + } + ndr_print_enum(ndr, name, "ENUM", val, r); +} + +_PUBLIC_ enum ndr_err_code ndr_push_rap_NetShareEnum(struct ndr_push *ndr, int flags, const struct rap_NetShareEnum *r) +{ + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available)); + if (r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_push_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ enum ndr_err_code ndr_pull_rap_NetShareEnum(struct ndr_pull *ndr, int flags, struct rap_NetShareEnum *r) +{ + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_pull_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_NetShareEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetShareEnum *r) +{ + ndr_print_struct(ndr, name, "rap_NetShareEnum"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "rap_NetShareEnum"); + ndr->depth++; + ndr_print_uint16(ndr, "level", r->in.level); + ndr_print_uint16(ndr, "bufsize", r->in.bufsize); + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "rap_NetShareEnum"); + ndr->depth++; + ndr_print_uint16(ndr, "status", r->out.status); + ndr_print_uint16(ndr, "convert", r->out.convert); + ndr_print_uint16(ndr, "count", r->out.count); + ndr_print_uint16(ndr, "available", r->out.available); + ndr_print_ptr(ndr, "info", r->out.info); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->out.info, r->in.level); + ndr_print_rap_share_info(ndr, "info", r->out.info); + ndr->depth--; + ndr->depth--; + } + ndr->depth--; +} + +_PUBLIC_ enum ndr_err_code ndr_push_rap_NetServerEnum2(struct ndr_push *ndr, int flags, const struct rap_NetServerEnum2 *r) +{ + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize)); + NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.servertype)); + if (r->in.domain == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS))); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0)); + NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS))); + NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_DOS), sizeof(uint8_t), CH_DOS)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available)); + if (r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ enum ndr_err_code ndr_pull_rap_NetServerEnum2(struct ndr_pull *ndr, int flags, struct rap_NetServerEnum2 *r) +{ + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.servertype)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain)); + if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain)); + } + NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t))); + NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t), CH_DOS)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_NetServerEnum2(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetServerEnum2 *r) +{ + ndr_print_struct(ndr, name, "rap_NetServerEnum2"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "rap_NetServerEnum2"); + ndr->depth++; + ndr_print_uint16(ndr, "level", r->in.level); + ndr_print_uint16(ndr, "bufsize", r->in.bufsize); + ndr_print_uint32(ndr, "servertype", r->in.servertype); + ndr_print_ptr(ndr, "domain", r->in.domain); + ndr->depth++; + ndr_print_string(ndr, "domain", r->in.domain); + ndr->depth--; + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "rap_NetServerEnum2"); + ndr->depth++; + ndr_print_uint16(ndr, "status", r->out.status); + ndr_print_uint16(ndr, "convert", r->out.convert); + ndr_print_uint16(ndr, "count", r->out.count); + ndr_print_uint16(ndr, "available", r->out.available); + ndr_print_ptr(ndr, "info", r->out.info); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->out.info, r->in.level); + ndr_print_rap_server_info(ndr, "info", r->out.info); + ndr->depth--; + ndr->depth--; + } + ndr->depth--; +} + +_PUBLIC_ enum ndr_err_code ndr_push_rap_WserverGetInfo(struct ndr_push *ndr, int flags, const struct rap_WserverGetInfo *r) +{ + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available)); + NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info, r->in.level)); + NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ enum ndr_err_code ndr_pull_rap_WserverGetInfo(struct ndr_pull *ndr, int flags, struct rap_WserverGetInfo *r) +{ + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available)); + NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info, r->in.level)); + NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_WserverGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct rap_WserverGetInfo *r) +{ + ndr_print_struct(ndr, name, "rap_WserverGetInfo"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "rap_WserverGetInfo"); + ndr->depth++; + ndr_print_uint16(ndr, "level", r->in.level); + ndr_print_uint16(ndr, "bufsize", r->in.bufsize); + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "rap_WserverGetInfo"); + ndr->depth++; + ndr_print_uint16(ndr, "status", r->out.status); + ndr_print_uint16(ndr, "convert", r->out.convert); + ndr_print_uint16(ndr, "available", r->out.available); + ndr_print_set_switch_value(ndr, &r->out.info, r->in.level); + ndr_print_rap_server_info(ndr, "info", &r->out.info); + ndr->depth--; + } + ndr->depth--; +} + +_PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintQEnum(struct ndr_push *ndr, int flags, const struct rap_NetPrintQEnum *r) +{ + if (flags & NDR_IN) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count)); + NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available)); + if (r->out.info == NULL) { + return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer"); + } + NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_push_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQEnum(struct ndr_pull *ndr, int flags, struct rap_NetPrintQEnum *r) +{ + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.info); + } + _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level)); + NDR_CHECK(ndr_pull_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC); + } + return NDR_ERR_SUCCESS; +} + +_PUBLIC_ void ndr_print_rap_NetPrintQEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetPrintQEnum *r) +{ + ndr_print_struct(ndr, name, "rap_NetPrintQEnum"); + ndr->depth++; + if (flags & NDR_SET_VALUES) { + ndr->flags |= LIBNDR_PRINT_SET_VALUES; + } + if (flags & NDR_IN) { + ndr_print_struct(ndr, "in", "rap_NetPrintQEnum"); + ndr->depth++; + ndr_print_uint16(ndr, "level", r->in.level); + ndr_print_uint16(ndr, "bufsize", r->in.bufsize); + ndr->depth--; + } + if (flags & NDR_OUT) { + ndr_print_struct(ndr, "out", "rap_NetPrintQEnum"); + ndr->depth++; + ndr_print_uint16(ndr, "status", r->out.status); + ndr_print_uint16(ndr, "convert", r->out.convert); + ndr_print_uint16(ndr, "count", r->out.count); + ndr_print_uint16(ndr, "available", r->out.available); + ndr_print_ptr(ndr, "info", r->out.info); + ndr->depth++; + ndr_print_set_switch_value(ndr, r->out.info, r->in.level); + ndr_print_rap_printq_info(ndr, "info", r->out.info); + ndr->depth--; + ndr->depth--; + } + ndr->depth--; +} + -- cgit