/* 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_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); } static enum ndr_err_code ndr_push_rap_PrintJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintJobInfo1 *r) { if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 5)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobID)); NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->UserName, 21)); NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad)); NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->NotifyName, 16)); NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->DataType, 10)); NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobPosition)); NDR_CHECK(ndr_push_rap_PrintJStatusCode(ndr, NDR_SCALARS, r->JobStatus)); NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobStatusString)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobStatusStringHigh)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TimeSubmitted)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobSize)); NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobCommentString)); NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobCommentStringHigh)); NDR_CHECK(ndr_push_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)); } } return NDR_ERR_SUCCESS; } static enum ndr_err_code ndr_pull_rap_PrintJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintJobInfo1 *r) { uint16_t _ptr_PrintParameterString; TALLOC_CTX *_mem_save_PrintParameterString_0; uint16_t _ptr_JobStatusString; TALLOC_CTX *_mem_save_JobStatusString_0; uint16_t _ptr_JobCommentString; TALLOC_CTX *_mem_save_JobCommentString_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 5)); NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobID)); NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->UserName, 21)); NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad)); NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->NotifyName, 16)); NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->DataType, 10)); NDR_CHECK(ndr_pull_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_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; } NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobStatusStringHigh)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TimeSubmitted)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobSize)); NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobCommentString)); if (_ptr_JobCommentString) { NDR_PULL_ALLOC(ndr, r->JobCommentString); NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobCommentString, _ptr_JobCommentString)); } else { r->JobCommentString = NULL; } NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobCommentStringHigh)); NDR_CHECK(ndr_pull_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); } } return NDR_ERR_SUCCESS; } _PUBLIC_ void ndr_print_rap_PrintJobInfo1(struct ndr_print *ndr, const char *name, const struct rap_PrintJobInfo1 *r) { ndr_print_struct(ndr, name, "rap_PrintJobInfo1"); ndr->depth++; ndr_print_uint16(ndr, "JobID", r->JobID); ndr_print_array_uint8(ndr, "UserName", r->UserName, 21); ndr_print_uint8(ndr, "Pad", r->Pad); ndr_print_array_uint8(ndr, "NotifyName", r->NotifyName, 16); ndr_print_array_uint8(ndr, "DataType", r->DataType, 10); ndr_print_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_uint16(ndr, "JobPosition", r->JobPosition); ndr_print_rap_PrintJStatusCode(ndr, "JobStatus", r->JobStatus); ndr_print_ptr(ndr, "JobStatusString", r->JobStatusString); ndr->depth++; if (r->JobStatusString) { ndr_print_string(ndr, "JobStatusString", r->JobStatusString); } ndr->depth--; ndr_print_uint16(ndr, "JobStatusStringHigh", r->JobStatusStringHigh); ndr_print_uint32(ndr, "TimeSubmitted", r->TimeSubmitted); ndr_print_uint32(ndr, "JobSize", r->JobSize); ndr_print_ptr(ndr, "JobCommentString", r->JobCommentString); ndr->depth++; if (r->JobCommentString) { ndr_print_string(ndr, "JobCommentString", r->JobCommentString); } ndr->depth--; ndr_print_uint16(ndr, "JobCommentStringHigh", r->JobCommentStringHigh); ndr->depth--; } _PUBLIC_ enum ndr_err_code ndr_push_rap_PrintQStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintQStatusCode r) { NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r)); 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, 5)); NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, &r->queue)); NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_SCALARS, &r->job)); NDR_CHECK(ndr_push_trailer_align(ndr, 5)); } if (ndr_flags & NDR_BUFFERS) { NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->queue)); NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_BUFFERS, &r->job)); } 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, 5)); NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, &r->queue)); NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_SCALARS, &r->job)); NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); } if (ndr_flags & NDR_BUFFERS) { NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->queue)); NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_BUFFERS, &r->job)); } 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_print_rap_PrintQueue1(ndr, "queue", &r->queue); ndr_print_rap_PrintJobInfo1(ndr, "job", &r->job); 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: NDR_CHECK(ndr_push_rap_PrintQueue2(ndr, NDR_BUFFERS, &r->info2)); 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: NDR_CHECK(ndr_pull_rap_PrintQueue2(ndr, NDR_BUFFERS, &r->info2)); 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_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; }