c6a51954f2059ca55ecaef5e0ee71527676fb4ca
[amitay/samba.git] / librpc / gen_ndr / ndr_rap.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_rap.h"
5
6 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)
7 {
8         if (ndr_flags & NDR_SCALARS) {
9                 NDR_CHECK(ndr_push_align(ndr, 1));
10                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
11                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
12         }
13         if (ndr_flags & NDR_BUFFERS) {
14         }
15         return NDR_ERR_SUCCESS;
16 }
17
18 static enum ndr_err_code ndr_pull_rap_share_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_0 *r)
19 {
20         if (ndr_flags & NDR_SCALARS) {
21                 NDR_CHECK(ndr_pull_align(ndr, 1));
22                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
23                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
24         }
25         if (ndr_flags & NDR_BUFFERS) {
26         }
27         return NDR_ERR_SUCCESS;
28 }
29
30 _PUBLIC_ void ndr_print_rap_share_info_0(struct ndr_print *ndr, const char *name, const struct rap_share_info_0 *r)
31 {
32         ndr_print_struct(ndr, name, "rap_share_info_0");
33         ndr->depth++;
34         ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
35         ndr->depth--;
36 }
37
38 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)
39 {
40         if (ndr_flags & NDR_SCALARS) {
41                 NDR_CHECK(ndr_push_align(ndr, 5));
42                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
43                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
44                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
45                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
46                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
47         }
48         if (ndr_flags & NDR_BUFFERS) {
49                 if (r->comment) {
50                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
51                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
52                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
53                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
54                 }
55         }
56         return NDR_ERR_SUCCESS;
57 }
58
59 static enum ndr_err_code ndr_pull_rap_share_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_1 *r)
60 {
61         uint32_t _ptr_comment;
62         TALLOC_CTX *_mem_save_comment_0;
63         if (ndr_flags & NDR_SCALARS) {
64                 NDR_CHECK(ndr_pull_align(ndr, 5));
65                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
66                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
67                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
68                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
69                 if (_ptr_comment) {
70                         NDR_PULL_ALLOC(ndr, r->comment);
71                 } else {
72                         r->comment = NULL;
73                 }
74                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
75         }
76         if (ndr_flags & NDR_BUFFERS) {
77                 if (r->comment) {
78                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
79                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
80                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
81                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
82                         if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
83                                 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));
84                         }
85                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
86                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
87                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
88                 }
89         }
90         return NDR_ERR_SUCCESS;
91 }
92
93 _PUBLIC_ void ndr_print_rap_share_info_1(struct ndr_print *ndr, const char *name, const struct rap_share_info_1 *r)
94 {
95         ndr_print_struct(ndr, name, "rap_share_info_1");
96         ndr->depth++;
97         ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
98         ndr_print_uint8(ndr, "reserved1", r->reserved1);
99         ndr_print_uint16(ndr, "share_type", r->share_type);
100         ndr_print_ptr(ndr, "comment", r->comment);
101         ndr->depth++;
102         if (r->comment) {
103                 ndr_print_string(ndr, "comment", r->comment);
104         }
105         ndr->depth--;
106         ndr->depth--;
107 }
108
109 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)
110 {
111         if (ndr_flags & NDR_SCALARS) {
112                 NDR_CHECK(ndr_push_align(ndr, 5));
113                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
114                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved1));
115                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->share_type));
116                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
117                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->perms));
118                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->maximum_users));
119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->active_users));
120                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->path));
121                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->password, 9));
122                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved2));
123                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
124         }
125         if (ndr_flags & NDR_BUFFERS) {
126                 if (r->comment) {
127                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
128                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
129                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
130                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
131                 }
132                 if (r->path) {
133                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
134                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
135                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->path, CH_DOS)));
136                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->path, ndr_charset_length(r->path, CH_DOS), sizeof(uint8_t), CH_DOS));
137                 }
138         }
139         return NDR_ERR_SUCCESS;
140 }
141
142 static enum ndr_err_code ndr_pull_rap_share_info_2(struct ndr_pull *ndr, int ndr_flags, struct rap_share_info_2 *r)
143 {
144         uint32_t _ptr_comment;
145         TALLOC_CTX *_mem_save_comment_0;
146         uint32_t _ptr_path;
147         TALLOC_CTX *_mem_save_path_0;
148         if (ndr_flags & NDR_SCALARS) {
149                 NDR_CHECK(ndr_pull_align(ndr, 5));
150                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->share_name, 13));
151                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved1));
152                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->share_type));
153                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
154                 if (_ptr_comment) {
155                         NDR_PULL_ALLOC(ndr, r->comment);
156                 } else {
157                         r->comment = NULL;
158                 }
159                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->perms));
160                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->maximum_users));
161                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->active_users));
162                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path));
163                 if (_ptr_path) {
164                         NDR_PULL_ALLOC(ndr, r->path);
165                 } else {
166                         r->path = NULL;
167                 }
168                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->password, 9));
169                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved2));
170                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
171         }
172         if (ndr_flags & NDR_BUFFERS) {
173                 if (r->comment) {
174                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
175                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
176                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
177                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
178                         if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
179                                 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));
180                         }
181                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
182                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
183                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
184                 }
185                 if (r->path) {
186                         _mem_save_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
187                         NDR_PULL_SET_MEM_CTX(ndr, r->path, 0);
188                         NDR_CHECK(ndr_pull_array_size(ndr, &r->path));
189                         NDR_CHECK(ndr_pull_array_length(ndr, &r->path));
190                         if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) {
191                                 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));
192                         }
193                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t)));
194                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint8_t), CH_DOS));
195                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0);
196                 }
197         }
198         return NDR_ERR_SUCCESS;
199 }
200
201 _PUBLIC_ void ndr_print_rap_share_info_2(struct ndr_print *ndr, const char *name, const struct rap_share_info_2 *r)
202 {
203         ndr_print_struct(ndr, name, "rap_share_info_2");
204         ndr->depth++;
205         ndr_print_array_uint8(ndr, "share_name", r->share_name, 13);
206         ndr_print_uint8(ndr, "reserved1", r->reserved1);
207         ndr_print_uint16(ndr, "share_type", r->share_type);
208         ndr_print_ptr(ndr, "comment", r->comment);
209         ndr->depth++;
210         if (r->comment) {
211                 ndr_print_string(ndr, "comment", r->comment);
212         }
213         ndr->depth--;
214         ndr_print_uint16(ndr, "perms", r->perms);
215         ndr_print_uint16(ndr, "maximum_users", r->maximum_users);
216         ndr_print_uint16(ndr, "active_users", r->active_users);
217         ndr_print_ptr(ndr, "path", r->path);
218         ndr->depth++;
219         if (r->path) {
220                 ndr_print_string(ndr, "path", r->path);
221         }
222         ndr->depth--;
223         ndr_print_array_uint8(ndr, "password", r->password, 9);
224         ndr_print_uint8(ndr, "reserved2", r->reserved2);
225         ndr->depth--;
226 }
227
228 static enum ndr_err_code ndr_push_rap_share_info(struct ndr_push *ndr, int ndr_flags, const union rap_share_info *r)
229 {
230         if (ndr_flags & NDR_SCALARS) {
231                 int level = ndr_push_get_switch_value(ndr, r);
232                 NDR_CHECK(ndr_push_union_align(ndr, 5));
233                 switch (level) {
234                         case 0: {
235                                 NDR_CHECK(ndr_push_rap_share_info_0(ndr, NDR_SCALARS, &r->info0));
236                         break; }
237
238                         case 1: {
239                                 NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_SCALARS, &r->info1));
240                         break; }
241
242                         case 2: {
243                                 NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_SCALARS, &r->info2));
244                         break; }
245
246                         default:
247                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
248                 }
249         }
250         if (ndr_flags & NDR_BUFFERS) {
251                 int level = ndr_push_get_switch_value(ndr, r);
252                 switch (level) {
253                         case 0:
254                         break;
255
256                         case 1:
257                                 NDR_CHECK(ndr_push_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1));
258                         break;
259
260                         case 2:
261                                 NDR_CHECK(ndr_push_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2));
262                         break;
263
264                         default:
265                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
266                 }
267         }
268         return NDR_ERR_SUCCESS;
269 }
270
271 static enum ndr_err_code ndr_pull_rap_share_info(struct ndr_pull *ndr, int ndr_flags, union rap_share_info *r)
272 {
273         int level;
274         level = ndr_pull_get_switch_value(ndr, r);
275         if (ndr_flags & NDR_SCALARS) {
276                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
277                 switch (level) {
278                         case 0: {
279                                 NDR_CHECK(ndr_pull_rap_share_info_0(ndr, NDR_SCALARS, &r->info0));
280                         break; }
281
282                         case 1: {
283                                 NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_SCALARS, &r->info1));
284                         break; }
285
286                         case 2: {
287                                 NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_SCALARS, &r->info2));
288                         break; }
289
290                         default:
291                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
292                 }
293         }
294         if (ndr_flags & NDR_BUFFERS) {
295                 switch (level) {
296                         case 0:
297                         break;
298
299                         case 1:
300                                 NDR_CHECK(ndr_pull_rap_share_info_1(ndr, NDR_BUFFERS, &r->info1));
301                         break;
302
303                         case 2:
304                                 NDR_CHECK(ndr_pull_rap_share_info_2(ndr, NDR_BUFFERS, &r->info2));
305                         break;
306
307                         default:
308                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
309                 }
310         }
311         return NDR_ERR_SUCCESS;
312 }
313
314 _PUBLIC_ void ndr_print_rap_share_info(struct ndr_print *ndr, const char *name, const union rap_share_info *r)
315 {
316         int level;
317         level = ndr_print_get_switch_value(ndr, r);
318         ndr_print_union(ndr, name, level, "rap_share_info");
319         switch (level) {
320                 case 0:
321                         ndr_print_rap_share_info_0(ndr, "info0", &r->info0);
322                 break;
323
324                 case 1:
325                         ndr_print_rap_share_info_1(ndr, "info1", &r->info1);
326                 break;
327
328                 case 2:
329                         ndr_print_rap_share_info_2(ndr, "info2", &r->info2);
330                 break;
331
332                 default:
333                         ndr_print_bad_level(ndr, name, level);
334         }
335 }
336
337 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)
338 {
339         if (ndr_flags & NDR_SCALARS) {
340                 NDR_CHECK(ndr_push_align(ndr, 1));
341                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16));
342                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
343         }
344         if (ndr_flags & NDR_BUFFERS) {
345         }
346         return NDR_ERR_SUCCESS;
347 }
348
349 static enum ndr_err_code ndr_pull_rap_server_info_0(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_0 *r)
350 {
351         if (ndr_flags & NDR_SCALARS) {
352                 NDR_CHECK(ndr_pull_align(ndr, 1));
353                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16));
354                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
355         }
356         if (ndr_flags & NDR_BUFFERS) {
357         }
358         return NDR_ERR_SUCCESS;
359 }
360
361 _PUBLIC_ void ndr_print_rap_server_info_0(struct ndr_print *ndr, const char *name, const struct rap_server_info_0 *r)
362 {
363         ndr_print_struct(ndr, name, "rap_server_info_0");
364         ndr->depth++;
365         ndr_print_array_uint8(ndr, "name", r->name, 16);
366         ndr->depth--;
367 }
368
369 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)
370 {
371         if (ndr_flags & NDR_SCALARS) {
372                 NDR_CHECK(ndr_push_align(ndr, 5));
373                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->name, 16));
374                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_major));
375                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->version_minor));
376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->servertype));
377                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
378                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
379         }
380         if (ndr_flags & NDR_BUFFERS) {
381                 if (r->comment) {
382                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
383                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
384                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_DOS)));
385                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_DOS), sizeof(uint8_t), CH_DOS));
386                 }
387         }
388         return NDR_ERR_SUCCESS;
389 }
390
391 static enum ndr_err_code ndr_pull_rap_server_info_1(struct ndr_pull *ndr, int ndr_flags, struct rap_server_info_1 *r)
392 {
393         uint32_t _ptr_comment;
394         TALLOC_CTX *_mem_save_comment_0;
395         if (ndr_flags & NDR_SCALARS) {
396                 NDR_CHECK(ndr_pull_align(ndr, 5));
397                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->name, 16));
398                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_major));
399                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->version_minor));
400                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->servertype));
401                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
402                 if (_ptr_comment) {
403                         NDR_PULL_ALLOC(ndr, r->comment);
404                 } else {
405                         r->comment = NULL;
406                 }
407                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
408         }
409         if (ndr_flags & NDR_BUFFERS) {
410                 if (r->comment) {
411                         _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
412                         NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
413                         NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
414                         NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
415                         if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
416                                 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));
417                         }
418                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t)));
419                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint8_t), CH_DOS));
420                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
421                 }
422         }
423         return NDR_ERR_SUCCESS;
424 }
425
426 _PUBLIC_ void ndr_print_rap_server_info_1(struct ndr_print *ndr, const char *name, const struct rap_server_info_1 *r)
427 {
428         ndr_print_struct(ndr, name, "rap_server_info_1");
429         ndr->depth++;
430         ndr_print_array_uint8(ndr, "name", r->name, 16);
431         ndr_print_uint8(ndr, "version_major", r->version_major);
432         ndr_print_uint8(ndr, "version_minor", r->version_minor);
433         ndr_print_uint32(ndr, "servertype", r->servertype);
434         ndr_print_ptr(ndr, "comment", r->comment);
435         ndr->depth++;
436         if (r->comment) {
437                 ndr_print_string(ndr, "comment", r->comment);
438         }
439         ndr->depth--;
440         ndr->depth--;
441 }
442
443 static enum ndr_err_code ndr_push_rap_server_info(struct ndr_push *ndr, int ndr_flags, const union rap_server_info *r)
444 {
445         if (ndr_flags & NDR_SCALARS) {
446                 int level = ndr_push_get_switch_value(ndr, r);
447                 NDR_CHECK(ndr_push_union_align(ndr, 5));
448                 switch (level) {
449                         case 0: {
450                                 NDR_CHECK(ndr_push_rap_server_info_0(ndr, NDR_SCALARS, &r->info0));
451                         break; }
452
453                         case 1: {
454                                 NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_SCALARS, &r->info1));
455                         break; }
456
457                         default:
458                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
459                 }
460         }
461         if (ndr_flags & NDR_BUFFERS) {
462                 int level = ndr_push_get_switch_value(ndr, r);
463                 switch (level) {
464                         case 0:
465                         break;
466
467                         case 1:
468                                 NDR_CHECK(ndr_push_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1));
469                         break;
470
471                         default:
472                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
473                 }
474         }
475         return NDR_ERR_SUCCESS;
476 }
477
478 static enum ndr_err_code ndr_pull_rap_server_info(struct ndr_pull *ndr, int ndr_flags, union rap_server_info *r)
479 {
480         int level;
481         level = ndr_pull_get_switch_value(ndr, r);
482         if (ndr_flags & NDR_SCALARS) {
483                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
484                 switch (level) {
485                         case 0: {
486                                 NDR_CHECK(ndr_pull_rap_server_info_0(ndr, NDR_SCALARS, &r->info0));
487                         break; }
488
489                         case 1: {
490                                 NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_SCALARS, &r->info1));
491                         break; }
492
493                         default:
494                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
495                 }
496         }
497         if (ndr_flags & NDR_BUFFERS) {
498                 switch (level) {
499                         case 0:
500                         break;
501
502                         case 1:
503                                 NDR_CHECK(ndr_pull_rap_server_info_1(ndr, NDR_BUFFERS, &r->info1));
504                         break;
505
506                         default:
507                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
508                 }
509         }
510         return NDR_ERR_SUCCESS;
511 }
512
513 _PUBLIC_ void ndr_print_rap_server_info(struct ndr_print *ndr, const char *name, const union rap_server_info *r)
514 {
515         int level;
516         level = ndr_print_get_switch_value(ndr, r);
517         ndr_print_union(ndr, name, level, "rap_server_info");
518         switch (level) {
519                 case 0:
520                         ndr_print_rap_server_info_0(ndr, "info0", &r->info0);
521                 break;
522
523                 case 1:
524                         ndr_print_rap_server_info_1(ndr, "info1", &r->info1);
525                 break;
526
527                 default:
528                         ndr_print_bad_level(ndr, name, level);
529         }
530 }
531
532 _PUBLIC_ enum ndr_err_code ndr_push_rap_PrintJStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintJStatusCode r)
533 {
534         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
535         return NDR_ERR_SUCCESS;
536 }
537
538 _PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintJStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintJStatusCode *r)
539 {
540         uint16_t v;
541         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
542         *r = v;
543         return NDR_ERR_SUCCESS;
544 }
545
546 _PUBLIC_ void ndr_print_rap_PrintJStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintJStatusCode r)
547 {
548         const char *val = NULL;
549
550         switch (r) {
551                 case PRJ_QS_QUEUED: val = "PRJ_QS_QUEUED"; break;
552                 case PRJ_QS_PAUSED: val = "PRJ_QS_PAUSED"; break;
553                 case PRJ_QS_SPOOLING: val = "PRJ_QS_SPOOLING"; break;
554                 case PRJ_QS_PRINTING: val = "PRJ_QS_PRINTING"; break;
555                 case PRJ_QS_ERROR: val = "PRJ_QS_ERROR"; break;
556         }
557         ndr_print_enum(ndr, name, "ENUM", val, r);
558 }
559
560 static enum ndr_err_code ndr_push_rap_PrintJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintJobInfo1 *r)
561 {
562         if (ndr_flags & NDR_SCALARS) {
563                 NDR_CHECK(ndr_push_align(ndr, 5));
564                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobID));
565                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->UserName, 21));
566                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad));
567                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->NotifyName, 16));
568                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->DataType, 10));
569                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
570                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
571                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobPosition));
572                 NDR_CHECK(ndr_push_rap_PrintJStatusCode(ndr, NDR_SCALARS, r->JobStatus));
573                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobStatusString));
574                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobStatusStringHigh));
575                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TimeSubmitted));
576                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobSize));
577                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->JobCommentString));
578                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->JobCommentStringHigh));
579                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
580         }
581         if (ndr_flags & NDR_BUFFERS) {
582                 if (r->PrintParameterString) {
583                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
584                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
585                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
586                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
587                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
588                 }
589                 if (r->JobStatusString) {
590                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobStatusString));
591                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobStatusString, CH_DOS)));
592                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
593                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobStatusString, CH_DOS)));
594                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->JobStatusString, ndr_charset_length(r->JobStatusString, CH_DOS), sizeof(uint8_t), CH_DOS));
595                 }
596                 if (r->JobCommentString) {
597                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->JobCommentString));
598                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
599                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
600                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->JobCommentString, CH_DOS)));
601                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->JobCommentString, ndr_charset_length(r->JobCommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
602                 }
603         }
604         return NDR_ERR_SUCCESS;
605 }
606
607 static enum ndr_err_code ndr_pull_rap_PrintJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintJobInfo1 *r)
608 {
609         uint16_t _ptr_PrintParameterString;
610         TALLOC_CTX *_mem_save_PrintParameterString_0;
611         uint16_t _ptr_JobStatusString;
612         TALLOC_CTX *_mem_save_JobStatusString_0;
613         uint16_t _ptr_JobCommentString;
614         TALLOC_CTX *_mem_save_JobCommentString_0;
615         if (ndr_flags & NDR_SCALARS) {
616                 NDR_CHECK(ndr_pull_align(ndr, 5));
617                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobID));
618                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->UserName, 21));
619                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad));
620                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->NotifyName, 16));
621                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->DataType, 10));
622                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
623                 if (_ptr_PrintParameterString) {
624                         NDR_PULL_ALLOC(ndr, r->PrintParameterString);
625                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
626                 } else {
627                         r->PrintParameterString = NULL;
628                 }
629                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
630                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobPosition));
631                 NDR_CHECK(ndr_pull_rap_PrintJStatusCode(ndr, NDR_SCALARS, &r->JobStatus));
632                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobStatusString));
633                 if (_ptr_JobStatusString) {
634                         NDR_PULL_ALLOC(ndr, r->JobStatusString);
635                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobStatusString, _ptr_JobStatusString));
636                 } else {
637                         r->JobStatusString = NULL;
638                 }
639                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobStatusStringHigh));
640                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TimeSubmitted));
641                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobSize));
642                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_JobCommentString));
643                 if (_ptr_JobCommentString) {
644                         NDR_PULL_ALLOC(ndr, r->JobCommentString);
645                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->JobCommentString, _ptr_JobCommentString));
646                 } else {
647                         r->JobCommentString = NULL;
648                 }
649                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->JobCommentStringHigh));
650                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
651         }
652         if (ndr_flags & NDR_BUFFERS) {
653                 if (r->PrintParameterString) {
654                         uint32_t _relative_save_offset;
655                         _relative_save_offset = ndr->offset;
656                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
657                         _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
658                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
659                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
660                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
661                         if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
662                                 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));
663                         }
664                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
665                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
666                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
667                 }
668                 if (r->JobStatusString) {
669                         uint32_t _relative_save_offset;
670                         _relative_save_offset = ndr->offset;
671                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->JobStatusString));
672                         _mem_save_JobStatusString_0 = NDR_PULL_GET_MEM_CTX(ndr);
673                         NDR_PULL_SET_MEM_CTX(ndr, r->JobStatusString, 0);
674                         NDR_CHECK(ndr_pull_array_size(ndr, &r->JobStatusString));
675                         NDR_CHECK(ndr_pull_array_length(ndr, &r->JobStatusString));
676                         if (ndr_get_array_length(ndr, &r->JobStatusString) > ndr_get_array_size(ndr, &r->JobStatusString)) {
677                                 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));
678                         }
679                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->JobStatusString), sizeof(uint8_t)));
680                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->JobStatusString, ndr_get_array_length(ndr, &r->JobStatusString), sizeof(uint8_t), CH_DOS));
681                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobStatusString_0, 0);
682                 }
683                 if (r->JobCommentString) {
684                         uint32_t _relative_save_offset;
685                         _relative_save_offset = ndr->offset;
686                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->JobCommentString));
687                         _mem_save_JobCommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
688                         NDR_PULL_SET_MEM_CTX(ndr, r->JobCommentString, 0);
689                         NDR_CHECK(ndr_pull_array_size(ndr, &r->JobCommentString));
690                         NDR_CHECK(ndr_pull_array_length(ndr, &r->JobCommentString));
691                         if (ndr_get_array_length(ndr, &r->JobCommentString) > ndr_get_array_size(ndr, &r->JobCommentString)) {
692                                 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));
693                         }
694                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t)));
695                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->JobCommentString, ndr_get_array_length(ndr, &r->JobCommentString), sizeof(uint8_t), CH_DOS));
696                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobCommentString_0, 0);
697                 }
698         }
699         return NDR_ERR_SUCCESS;
700 }
701
702 _PUBLIC_ void ndr_print_rap_PrintJobInfo1(struct ndr_print *ndr, const char *name, const struct rap_PrintJobInfo1 *r)
703 {
704         ndr_print_struct(ndr, name, "rap_PrintJobInfo1");
705         ndr->depth++;
706         ndr_print_uint16(ndr, "JobID", r->JobID);
707         ndr_print_array_uint8(ndr, "UserName", r->UserName, 21);
708         ndr_print_uint8(ndr, "Pad", r->Pad);
709         ndr_print_array_uint8(ndr, "NotifyName", r->NotifyName, 16);
710         ndr_print_array_uint8(ndr, "DataType", r->DataType, 10);
711         ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
712         ndr->depth++;
713         if (r->PrintParameterString) {
714                 ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
715         }
716         ndr->depth--;
717         ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
718         ndr_print_uint16(ndr, "JobPosition", r->JobPosition);
719         ndr_print_rap_PrintJStatusCode(ndr, "JobStatus", r->JobStatus);
720         ndr_print_ptr(ndr, "JobStatusString", r->JobStatusString);
721         ndr->depth++;
722         if (r->JobStatusString) {
723                 ndr_print_string(ndr, "JobStatusString", r->JobStatusString);
724         }
725         ndr->depth--;
726         ndr_print_uint16(ndr, "JobStatusStringHigh", r->JobStatusStringHigh);
727         ndr_print_uint32(ndr, "TimeSubmitted", r->TimeSubmitted);
728         ndr_print_uint32(ndr, "JobSize", r->JobSize);
729         ndr_print_ptr(ndr, "JobCommentString", r->JobCommentString);
730         ndr->depth++;
731         if (r->JobCommentString) {
732                 ndr_print_string(ndr, "JobCommentString", r->JobCommentString);
733         }
734         ndr->depth--;
735         ndr_print_uint16(ndr, "JobCommentStringHigh", r->JobCommentStringHigh);
736         ndr->depth--;
737 }
738
739 _PUBLIC_ enum ndr_err_code ndr_push_rap_PrintQStatusCode(struct ndr_push *ndr, int ndr_flags, enum rap_PrintQStatusCode r)
740 {
741         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
742         return NDR_ERR_SUCCESS;
743 }
744
745 _PUBLIC_ enum ndr_err_code ndr_pull_rap_PrintQStatusCode(struct ndr_pull *ndr, int ndr_flags, enum rap_PrintQStatusCode *r)
746 {
747         uint16_t v;
748         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
749         *r = v;
750         return NDR_ERR_SUCCESS;
751 }
752
753 _PUBLIC_ void ndr_print_rap_PrintQStatusCode(struct ndr_print *ndr, const char *name, enum rap_PrintQStatusCode r)
754 {
755         const char *val = NULL;
756
757         switch (r) {
758                 case PRQ_ACTIVE: val = "PRQ_ACTIVE"; break;
759                 case PRQ_PAUSE: val = "PRQ_PAUSE"; break;
760                 case PRQ_ERROR: val = "PRQ_ERROR"; break;
761                 case PRQ_PENDING: val = "PRQ_PENDING"; break;
762         }
763         ndr_print_enum(ndr, name, "ENUM", val, r);
764 }
765
766 static enum ndr_err_code ndr_push_rap_PrintQueue0(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue0 *r)
767 {
768         if (ndr_flags & NDR_SCALARS) {
769                 NDR_CHECK(ndr_push_align(ndr, 1));
770                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
771                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
772         }
773         if (ndr_flags & NDR_BUFFERS) {
774         }
775         return NDR_ERR_SUCCESS;
776 }
777
778 static enum ndr_err_code ndr_pull_rap_PrintQueue0(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue0 *r)
779 {
780         if (ndr_flags & NDR_SCALARS) {
781                 NDR_CHECK(ndr_pull_align(ndr, 1));
782                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
783                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
784         }
785         if (ndr_flags & NDR_BUFFERS) {
786         }
787         return NDR_ERR_SUCCESS;
788 }
789
790 _PUBLIC_ void ndr_print_rap_PrintQueue0(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue0 *r)
791 {
792         ndr_print_struct(ndr, name, "rap_PrintQueue0");
793         ndr->depth++;
794         ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13);
795         ndr->depth--;
796 }
797
798 static enum ndr_err_code ndr_push_rap_PrintQueue1(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue1 *r)
799 {
800         if (ndr_flags & NDR_SCALARS) {
801                 NDR_CHECK(ndr_push_align(ndr, 5));
802                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
803                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Pad1));
804                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
805                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime));
806                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime));
807                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename));
808                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh));
809                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName));
810                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh));
811                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDestinationsName));
812                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDestinationsNameHigh));
813                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
814                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
815                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString));
816                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh));
817                 NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus));
818                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount));
819                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
820         }
821         if (ndr_flags & NDR_BUFFERS) {
822                 if (r->SeparatorPageFilename) {
823                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename));
824                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
825                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
826                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
827                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS));
828                 }
829                 if (r->PrintProcessorDllName) {
830                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName));
831                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
832                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
833                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
834                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS));
835                 }
836                 if (r->PrintDestinationsName) {
837                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDestinationsName));
838                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS)));
839                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
840                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDestinationsName, CH_DOS)));
841                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDestinationsName, ndr_charset_length(r->PrintDestinationsName, CH_DOS), sizeof(uint8_t), CH_DOS));
842                 }
843                 if (r->PrintParameterString) {
844                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
845                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
846                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
847                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
848                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
849                 }
850                 if (r->CommentString) {
851                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString));
852                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
853                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
854                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
855                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
856                 }
857         }
858         return NDR_ERR_SUCCESS;
859 }
860
861 static enum ndr_err_code ndr_pull_rap_PrintQueue1(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue1 *r)
862 {
863         uint16_t _ptr_SeparatorPageFilename;
864         TALLOC_CTX *_mem_save_SeparatorPageFilename_0;
865         uint16_t _ptr_PrintProcessorDllName;
866         TALLOC_CTX *_mem_save_PrintProcessorDllName_0;
867         uint16_t _ptr_PrintDestinationsName;
868         TALLOC_CTX *_mem_save_PrintDestinationsName_0;
869         uint16_t _ptr_PrintParameterString;
870         TALLOC_CTX *_mem_save_PrintParameterString_0;
871         uint16_t _ptr_CommentString;
872         TALLOC_CTX *_mem_save_CommentString_0;
873         if (ndr_flags & NDR_SCALARS) {
874                 NDR_CHECK(ndr_pull_align(ndr, 5));
875                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->PrintQName, 13));
876                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Pad1));
877                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
878                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime));
879                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime));
880                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename));
881                 if (_ptr_SeparatorPageFilename) {
882                         NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename);
883                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename));
884                 } else {
885                         r->SeparatorPageFilename = NULL;
886                 }
887                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh));
888                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName));
889                 if (_ptr_PrintProcessorDllName) {
890                         NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName);
891                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName));
892                 } else {
893                         r->PrintProcessorDllName = NULL;
894                 }
895                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh));
896                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDestinationsName));
897                 if (_ptr_PrintDestinationsName) {
898                         NDR_PULL_ALLOC(ndr, r->PrintDestinationsName);
899                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDestinationsName, _ptr_PrintDestinationsName));
900                 } else {
901                         r->PrintDestinationsName = NULL;
902                 }
903                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDestinationsNameHigh));
904                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
905                 if (_ptr_PrintParameterString) {
906                         NDR_PULL_ALLOC(ndr, r->PrintParameterString);
907                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
908                 } else {
909                         r->PrintParameterString = NULL;
910                 }
911                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
912                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString));
913                 if (_ptr_CommentString) {
914                         NDR_PULL_ALLOC(ndr, r->CommentString);
915                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString));
916                 } else {
917                         r->CommentString = NULL;
918                 }
919                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh));
920                 NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus));
921                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount));
922                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
923         }
924         if (ndr_flags & NDR_BUFFERS) {
925                 if (r->SeparatorPageFilename) {
926                         uint32_t _relative_save_offset;
927                         _relative_save_offset = ndr->offset;
928                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename));
929                         _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr);
930                         NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0);
931                         NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename));
932                         NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename));
933                         if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) {
934                                 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));
935                         }
936                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t)));
937                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS));
938                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0);
939                 }
940                 if (r->PrintProcessorDllName) {
941                         uint32_t _relative_save_offset;
942                         _relative_save_offset = ndr->offset;
943                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName));
944                         _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr);
945                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0);
946                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName));
947                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName));
948                         if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) {
949                                 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));
950                         }
951                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t)));
952                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS));
953                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0);
954                 }
955                 if (r->PrintDestinationsName) {
956                         uint32_t _relative_save_offset;
957                         _relative_save_offset = ndr->offset;
958                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDestinationsName));
959                         _mem_save_PrintDestinationsName_0 = NDR_PULL_GET_MEM_CTX(ndr);
960                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintDestinationsName, 0);
961                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDestinationsName));
962                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDestinationsName));
963                         if (ndr_get_array_length(ndr, &r->PrintDestinationsName) > ndr_get_array_size(ndr, &r->PrintDestinationsName)) {
964                                 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));
965                         }
966                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t)));
967                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDestinationsName, ndr_get_array_length(ndr, &r->PrintDestinationsName), sizeof(uint8_t), CH_DOS));
968                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDestinationsName_0, 0);
969                 }
970                 if (r->PrintParameterString) {
971                         uint32_t _relative_save_offset;
972                         _relative_save_offset = ndr->offset;
973                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
974                         _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
975                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
976                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
977                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
978                         if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
979                                 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));
980                         }
981                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
982                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
983                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
984                 }
985                 if (r->CommentString) {
986                         uint32_t _relative_save_offset;
987                         _relative_save_offset = ndr->offset;
988                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString));
989                         _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
990                         NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0);
991                         NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString));
992                         NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString));
993                         if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) {
994                                 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));
995                         }
996                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t)));
997                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS));
998                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0);
999                 }
1000         }
1001         return NDR_ERR_SUCCESS;
1002 }
1003
1004 _PUBLIC_ void ndr_print_rap_PrintQueue1(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue1 *r)
1005 {
1006         ndr_print_struct(ndr, name, "rap_PrintQueue1");
1007         ndr->depth++;
1008         ndr_print_array_uint8(ndr, "PrintQName", r->PrintQName, 13);
1009         ndr_print_uint8(ndr, "Pad1", r->Pad1);
1010         ndr_print_uint16(ndr, "Priority", r->Priority);
1011         ndr_print_uint16(ndr, "StartTime", r->StartTime);
1012         ndr_print_uint16(ndr, "UntilTime", r->UntilTime);
1013         ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1014         ndr->depth++;
1015         if (r->SeparatorPageFilename) {
1016                 ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1017         }
1018         ndr->depth--;
1019         ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh);
1020         ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1021         ndr->depth++;
1022         if (r->PrintProcessorDllName) {
1023                 ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1024         }
1025         ndr->depth--;
1026         ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh);
1027         ndr_print_ptr(ndr, "PrintDestinationsName", r->PrintDestinationsName);
1028         ndr->depth++;
1029         if (r->PrintDestinationsName) {
1030                 ndr_print_string(ndr, "PrintDestinationsName", r->PrintDestinationsName);
1031         }
1032         ndr->depth--;
1033         ndr_print_uint16(ndr, "PrintDestinationsNameHigh", r->PrintDestinationsNameHigh);
1034         ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
1035         ndr->depth++;
1036         if (r->PrintParameterString) {
1037                 ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
1038         }
1039         ndr->depth--;
1040         ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
1041         ndr_print_ptr(ndr, "CommentString", r->CommentString);
1042         ndr->depth++;
1043         if (r->CommentString) {
1044                 ndr_print_string(ndr, "CommentString", r->CommentString);
1045         }
1046         ndr->depth--;
1047         ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh);
1048         ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus);
1049         ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount);
1050         ndr->depth--;
1051 }
1052
1053 static enum ndr_err_code ndr_push_rap_PrintQueue2(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue2 *r)
1054 {
1055         if (ndr_flags & NDR_SCALARS) {
1056                 NDR_CHECK(ndr_push_align(ndr, 5));
1057                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, &r->queue));
1058                 NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_SCALARS, &r->job));
1059                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1060         }
1061         if (ndr_flags & NDR_BUFFERS) {
1062                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->queue));
1063                 NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_BUFFERS, &r->job));
1064         }
1065         return NDR_ERR_SUCCESS;
1066 }
1067
1068 static enum ndr_err_code ndr_pull_rap_PrintQueue2(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue2 *r)
1069 {
1070         if (ndr_flags & NDR_SCALARS) {
1071                 NDR_CHECK(ndr_pull_align(ndr, 5));
1072                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, &r->queue));
1073                 NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_SCALARS, &r->job));
1074                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1075         }
1076         if (ndr_flags & NDR_BUFFERS) {
1077                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->queue));
1078                 NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_BUFFERS, &r->job));
1079         }
1080         return NDR_ERR_SUCCESS;
1081 }
1082
1083 _PUBLIC_ void ndr_print_rap_PrintQueue2(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue2 *r)
1084 {
1085         ndr_print_struct(ndr, name, "rap_PrintQueue2");
1086         ndr->depth++;
1087         ndr_print_rap_PrintQueue1(ndr, "queue", &r->queue);
1088         ndr_print_rap_PrintJobInfo1(ndr, "job", &r->job);
1089         ndr->depth--;
1090 }
1091
1092 static enum ndr_err_code ndr_push_rap_PrintQueue3(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue3 *r)
1093 {
1094         if (ndr_flags & NDR_SCALARS) {
1095                 NDR_CHECK(ndr_push_align(ndr, 5));
1096                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName));
1097                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh));
1098                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Priority));
1099                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->StartTime));
1100                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->UntilTime));
1101                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Pad));
1102                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->SeparatorPageFilename));
1103                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->SeparatorPageFilenameHigh));
1104                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintProcessorDllName));
1105                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintProcessorDllNameHigh));
1106                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintParameterString));
1107                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintParameterStringHigh));
1108                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->CommentString));
1109                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->CommentStringHigh));
1110                 NDR_CHECK(ndr_push_rap_PrintQStatusCode(ndr, NDR_SCALARS, r->PrintQStatus));
1111                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintJobCount));
1112                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->Printers));
1113                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintersHigh));
1114                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DriverName));
1115                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DriverNameHigh));
1116                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintDriverData));
1117                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintDriverDataHigh));
1118                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1119         }
1120         if (ndr_flags & NDR_BUFFERS) {
1121                 if (r->PrintQueueName) {
1122                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName));
1123                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1124                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1125                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1126                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
1127                 }
1128                 if (r->SeparatorPageFilename) {
1129                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->SeparatorPageFilename));
1130                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
1131                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1132                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->SeparatorPageFilename, CH_DOS)));
1133                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->SeparatorPageFilename, ndr_charset_length(r->SeparatorPageFilename, CH_DOS), sizeof(uint8_t), CH_DOS));
1134                 }
1135                 if (r->PrintProcessorDllName) {
1136                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintProcessorDllName));
1137                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
1138                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1139                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintProcessorDllName, CH_DOS)));
1140                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintProcessorDllName, ndr_charset_length(r->PrintProcessorDllName, CH_DOS), sizeof(uint8_t), CH_DOS));
1141                 }
1142                 if (r->PrintParameterString) {
1143                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintParameterString));
1144                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
1145                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1146                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintParameterString, CH_DOS)));
1147                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintParameterString, ndr_charset_length(r->PrintParameterString, CH_DOS), sizeof(uint8_t), CH_DOS));
1148                 }
1149                 if (r->CommentString) {
1150                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->CommentString));
1151                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
1152                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1153                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->CommentString, CH_DOS)));
1154                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CommentString, ndr_charset_length(r->CommentString, CH_DOS), sizeof(uint8_t), CH_DOS));
1155                 }
1156                 if (r->Printers) {
1157                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->Printers));
1158                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS)));
1159                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1160                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->Printers, CH_DOS)));
1161                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->Printers, ndr_charset_length(r->Printers, CH_DOS), sizeof(uint8_t), CH_DOS));
1162                 }
1163                 if (r->DriverName) {
1164                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DriverName));
1165                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS)));
1166                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1167                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->DriverName, CH_DOS)));
1168                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->DriverName, ndr_charset_length(r->DriverName, CH_DOS), sizeof(uint8_t), CH_DOS));
1169                 }
1170                 if (r->PrintDriverData) {
1171                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintDriverData));
1172                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS)));
1173                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1174                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintDriverData, CH_DOS)));
1175                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintDriverData, ndr_charset_length(r->PrintDriverData, CH_DOS), sizeof(uint8_t), CH_DOS));
1176                 }
1177         }
1178         return NDR_ERR_SUCCESS;
1179 }
1180
1181 static enum ndr_err_code ndr_pull_rap_PrintQueue3(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue3 *r)
1182 {
1183         uint16_t _ptr_PrintQueueName;
1184         TALLOC_CTX *_mem_save_PrintQueueName_0;
1185         uint16_t _ptr_SeparatorPageFilename;
1186         TALLOC_CTX *_mem_save_SeparatorPageFilename_0;
1187         uint16_t _ptr_PrintProcessorDllName;
1188         TALLOC_CTX *_mem_save_PrintProcessorDllName_0;
1189         uint16_t _ptr_PrintParameterString;
1190         TALLOC_CTX *_mem_save_PrintParameterString_0;
1191         uint16_t _ptr_CommentString;
1192         TALLOC_CTX *_mem_save_CommentString_0;
1193         uint16_t _ptr_Printers;
1194         TALLOC_CTX *_mem_save_Printers_0;
1195         uint16_t _ptr_DriverName;
1196         TALLOC_CTX *_mem_save_DriverName_0;
1197         uint16_t _ptr_PrintDriverData;
1198         TALLOC_CTX *_mem_save_PrintDriverData_0;
1199         if (ndr_flags & NDR_SCALARS) {
1200                 NDR_CHECK(ndr_pull_align(ndr, 5));
1201                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName));
1202                 if (_ptr_PrintQueueName) {
1203                         NDR_PULL_ALLOC(ndr, r->PrintQueueName);
1204                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName));
1205                 } else {
1206                         r->PrintQueueName = NULL;
1207                 }
1208                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh));
1209                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Priority));
1210                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->StartTime));
1211                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UntilTime));
1212                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Pad));
1213                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_SeparatorPageFilename));
1214                 if (_ptr_SeparatorPageFilename) {
1215                         NDR_PULL_ALLOC(ndr, r->SeparatorPageFilename);
1216                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->SeparatorPageFilename, _ptr_SeparatorPageFilename));
1217                 } else {
1218                         r->SeparatorPageFilename = NULL;
1219                 }
1220                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->SeparatorPageFilenameHigh));
1221                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintProcessorDllName));
1222                 if (_ptr_PrintProcessorDllName) {
1223                         NDR_PULL_ALLOC(ndr, r->PrintProcessorDllName);
1224                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintProcessorDllName, _ptr_PrintProcessorDllName));
1225                 } else {
1226                         r->PrintProcessorDllName = NULL;
1227                 }
1228                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintProcessorDllNameHigh));
1229                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintParameterString));
1230                 if (_ptr_PrintParameterString) {
1231                         NDR_PULL_ALLOC(ndr, r->PrintParameterString);
1232                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintParameterString, _ptr_PrintParameterString));
1233                 } else {
1234                         r->PrintParameterString = NULL;
1235                 }
1236                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintParameterStringHigh));
1237                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_CommentString));
1238                 if (_ptr_CommentString) {
1239                         NDR_PULL_ALLOC(ndr, r->CommentString);
1240                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->CommentString, _ptr_CommentString));
1241                 } else {
1242                         r->CommentString = NULL;
1243                 }
1244                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->CommentStringHigh));
1245                 NDR_CHECK(ndr_pull_rap_PrintQStatusCode(ndr, NDR_SCALARS, &r->PrintQStatus));
1246                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintJobCount));
1247                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_Printers));
1248                 if (_ptr_Printers) {
1249                         NDR_PULL_ALLOC(ndr, r->Printers);
1250                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Printers, _ptr_Printers));
1251                 } else {
1252                         r->Printers = NULL;
1253                 }
1254                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintersHigh));
1255                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DriverName));
1256                 if (_ptr_DriverName) {
1257                         NDR_PULL_ALLOC(ndr, r->DriverName);
1258                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DriverName, _ptr_DriverName));
1259                 } else {
1260                         r->DriverName = NULL;
1261                 }
1262                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DriverNameHigh));
1263                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintDriverData));
1264                 if (_ptr_PrintDriverData) {
1265                         NDR_PULL_ALLOC(ndr, r->PrintDriverData);
1266                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintDriverData, _ptr_PrintDriverData));
1267                 } else {
1268                         r->PrintDriverData = NULL;
1269                 }
1270                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintDriverDataHigh));
1271                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1272         }
1273         if (ndr_flags & NDR_BUFFERS) {
1274                 if (r->PrintQueueName) {
1275                         uint32_t _relative_save_offset;
1276                         _relative_save_offset = ndr->offset;
1277                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName));
1278                         _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1279                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0);
1280                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName));
1281                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName));
1282                         if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) {
1283                                 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));
1284                         }
1285                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t)));
1286                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS));
1287                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0);
1288                 }
1289                 if (r->SeparatorPageFilename) {
1290                         uint32_t _relative_save_offset;
1291                         _relative_save_offset = ndr->offset;
1292                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->SeparatorPageFilename));
1293                         _mem_save_SeparatorPageFilename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1294                         NDR_PULL_SET_MEM_CTX(ndr, r->SeparatorPageFilename, 0);
1295                         NDR_CHECK(ndr_pull_array_size(ndr, &r->SeparatorPageFilename));
1296                         NDR_CHECK(ndr_pull_array_length(ndr, &r->SeparatorPageFilename));
1297                         if (ndr_get_array_length(ndr, &r->SeparatorPageFilename) > ndr_get_array_size(ndr, &r->SeparatorPageFilename)) {
1298                                 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));
1299                         }
1300                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t)));
1301                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->SeparatorPageFilename, ndr_get_array_length(ndr, &r->SeparatorPageFilename), sizeof(uint8_t), CH_DOS));
1302                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SeparatorPageFilename_0, 0);
1303                 }
1304                 if (r->PrintProcessorDllName) {
1305                         uint32_t _relative_save_offset;
1306                         _relative_save_offset = ndr->offset;
1307                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintProcessorDllName));
1308                         _mem_save_PrintProcessorDllName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1309                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintProcessorDllName, 0);
1310                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintProcessorDllName));
1311                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintProcessorDllName));
1312                         if (ndr_get_array_length(ndr, &r->PrintProcessorDllName) > ndr_get_array_size(ndr, &r->PrintProcessorDllName)) {
1313                                 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));
1314                         }
1315                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t)));
1316                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintProcessorDllName, ndr_get_array_length(ndr, &r->PrintProcessorDllName), sizeof(uint8_t), CH_DOS));
1317                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintProcessorDllName_0, 0);
1318                 }
1319                 if (r->PrintParameterString) {
1320                         uint32_t _relative_save_offset;
1321                         _relative_save_offset = ndr->offset;
1322                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintParameterString));
1323                         _mem_save_PrintParameterString_0 = NDR_PULL_GET_MEM_CTX(ndr);
1324                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintParameterString, 0);
1325                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintParameterString));
1326                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintParameterString));
1327                         if (ndr_get_array_length(ndr, &r->PrintParameterString) > ndr_get_array_size(ndr, &r->PrintParameterString)) {
1328                                 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));
1329                         }
1330                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t)));
1331                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintParameterString, ndr_get_array_length(ndr, &r->PrintParameterString), sizeof(uint8_t), CH_DOS));
1332                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintParameterString_0, 0);
1333                 }
1334                 if (r->CommentString) {
1335                         uint32_t _relative_save_offset;
1336                         _relative_save_offset = ndr->offset;
1337                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->CommentString));
1338                         _mem_save_CommentString_0 = NDR_PULL_GET_MEM_CTX(ndr);
1339                         NDR_PULL_SET_MEM_CTX(ndr, r->CommentString, 0);
1340                         NDR_CHECK(ndr_pull_array_size(ndr, &r->CommentString));
1341                         NDR_CHECK(ndr_pull_array_length(ndr, &r->CommentString));
1342                         if (ndr_get_array_length(ndr, &r->CommentString) > ndr_get_array_size(ndr, &r->CommentString)) {
1343                                 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));
1344                         }
1345                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t)));
1346                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CommentString, ndr_get_array_length(ndr, &r->CommentString), sizeof(uint8_t), CH_DOS));
1347                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_CommentString_0, 0);
1348                 }
1349                 if (r->Printers) {
1350                         uint32_t _relative_save_offset;
1351                         _relative_save_offset = ndr->offset;
1352                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Printers));
1353                         _mem_save_Printers_0 = NDR_PULL_GET_MEM_CTX(ndr);
1354                         NDR_PULL_SET_MEM_CTX(ndr, r->Printers, 0);
1355                         NDR_CHECK(ndr_pull_array_size(ndr, &r->Printers));
1356                         NDR_CHECK(ndr_pull_array_length(ndr, &r->Printers));
1357                         if (ndr_get_array_length(ndr, &r->Printers) > ndr_get_array_size(ndr, &r->Printers)) {
1358                                 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));
1359                         }
1360                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t)));
1361                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Printers, ndr_get_array_length(ndr, &r->Printers), sizeof(uint8_t), CH_DOS));
1362                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Printers_0, 0);
1363                 }
1364                 if (r->DriverName) {
1365                         uint32_t _relative_save_offset;
1366                         _relative_save_offset = ndr->offset;
1367                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DriverName));
1368                         _mem_save_DriverName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1369                         NDR_PULL_SET_MEM_CTX(ndr, r->DriverName, 0);
1370                         NDR_CHECK(ndr_pull_array_size(ndr, &r->DriverName));
1371                         NDR_CHECK(ndr_pull_array_length(ndr, &r->DriverName));
1372                         if (ndr_get_array_length(ndr, &r->DriverName) > ndr_get_array_size(ndr, &r->DriverName)) {
1373                                 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));
1374                         }
1375                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t)));
1376                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->DriverName, ndr_get_array_length(ndr, &r->DriverName), sizeof(uint8_t), CH_DOS));
1377                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DriverName_0, 0);
1378                 }
1379                 if (r->PrintDriverData) {
1380                         uint32_t _relative_save_offset;
1381                         _relative_save_offset = ndr->offset;
1382                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintDriverData));
1383                         _mem_save_PrintDriverData_0 = NDR_PULL_GET_MEM_CTX(ndr);
1384                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintDriverData, 0);
1385                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintDriverData));
1386                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintDriverData));
1387                         if (ndr_get_array_length(ndr, &r->PrintDriverData) > ndr_get_array_size(ndr, &r->PrintDriverData)) {
1388                                 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));
1389                         }
1390                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t)));
1391                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintDriverData, ndr_get_array_length(ndr, &r->PrintDriverData), sizeof(uint8_t), CH_DOS));
1392                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintDriverData_0, 0);
1393                 }
1394         }
1395         return NDR_ERR_SUCCESS;
1396 }
1397
1398 _PUBLIC_ void ndr_print_rap_PrintQueue3(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue3 *r)
1399 {
1400         ndr_print_struct(ndr, name, "rap_PrintQueue3");
1401         ndr->depth++;
1402         ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName);
1403         ndr->depth++;
1404         if (r->PrintQueueName) {
1405                 ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName);
1406         }
1407         ndr->depth--;
1408         ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh);
1409         ndr_print_uint16(ndr, "Priority", r->Priority);
1410         ndr_print_uint16(ndr, "StartTime", r->StartTime);
1411         ndr_print_uint16(ndr, "UntilTime", r->UntilTime);
1412         ndr_print_uint16(ndr, "Pad", r->Pad);
1413         ndr_print_ptr(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1414         ndr->depth++;
1415         if (r->SeparatorPageFilename) {
1416                 ndr_print_string(ndr, "SeparatorPageFilename", r->SeparatorPageFilename);
1417         }
1418         ndr->depth--;
1419         ndr_print_uint16(ndr, "SeparatorPageFilenameHigh", r->SeparatorPageFilenameHigh);
1420         ndr_print_ptr(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1421         ndr->depth++;
1422         if (r->PrintProcessorDllName) {
1423                 ndr_print_string(ndr, "PrintProcessorDllName", r->PrintProcessorDllName);
1424         }
1425         ndr->depth--;
1426         ndr_print_uint16(ndr, "PrintProcessorDllNameHigh", r->PrintProcessorDllNameHigh);
1427         ndr_print_ptr(ndr, "PrintParameterString", r->PrintParameterString);
1428         ndr->depth++;
1429         if (r->PrintParameterString) {
1430                 ndr_print_string(ndr, "PrintParameterString", r->PrintParameterString);
1431         }
1432         ndr->depth--;
1433         ndr_print_uint16(ndr, "PrintParameterStringHigh", r->PrintParameterStringHigh);
1434         ndr_print_ptr(ndr, "CommentString", r->CommentString);
1435         ndr->depth++;
1436         if (r->CommentString) {
1437                 ndr_print_string(ndr, "CommentString", r->CommentString);
1438         }
1439         ndr->depth--;
1440         ndr_print_uint16(ndr, "CommentStringHigh", r->CommentStringHigh);
1441         ndr_print_rap_PrintQStatusCode(ndr, "PrintQStatus", r->PrintQStatus);
1442         ndr_print_uint16(ndr, "PrintJobCount", r->PrintJobCount);
1443         ndr_print_ptr(ndr, "Printers", r->Printers);
1444         ndr->depth++;
1445         if (r->Printers) {
1446                 ndr_print_string(ndr, "Printers", r->Printers);
1447         }
1448         ndr->depth--;
1449         ndr_print_uint16(ndr, "PrintersHigh", r->PrintersHigh);
1450         ndr_print_ptr(ndr, "DriverName", r->DriverName);
1451         ndr->depth++;
1452         if (r->DriverName) {
1453                 ndr_print_string(ndr, "DriverName", r->DriverName);
1454         }
1455         ndr->depth--;
1456         ndr_print_uint16(ndr, "DriverNameHigh", r->DriverNameHigh);
1457         ndr_print_ptr(ndr, "PrintDriverData", r->PrintDriverData);
1458         ndr->depth++;
1459         if (r->PrintDriverData) {
1460                 ndr_print_string(ndr, "PrintDriverData", r->PrintDriverData);
1461         }
1462         ndr->depth--;
1463         ndr_print_uint16(ndr, "PrintDriverDataHigh", r->PrintDriverDataHigh);
1464         ndr->depth--;
1465 }
1466
1467 static enum ndr_err_code ndr_push_rap_PrintQueue4(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue4 *r)
1468 {
1469         if (ndr_flags & NDR_SCALARS) {
1470                 NDR_CHECK(ndr_push_align(ndr, 1));
1471                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1472         }
1473         if (ndr_flags & NDR_BUFFERS) {
1474         }
1475         return NDR_ERR_SUCCESS;
1476 }
1477
1478 static enum ndr_err_code ndr_pull_rap_PrintQueue4(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue4 *r)
1479 {
1480         if (ndr_flags & NDR_SCALARS) {
1481                 NDR_CHECK(ndr_pull_align(ndr, 1));
1482                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1483         }
1484         if (ndr_flags & NDR_BUFFERS) {
1485         }
1486         return NDR_ERR_SUCCESS;
1487 }
1488
1489 _PUBLIC_ void ndr_print_rap_PrintQueue4(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue4 *r)
1490 {
1491         ndr_print_struct(ndr, name, "rap_PrintQueue4");
1492         ndr->depth++;
1493         ndr->depth--;
1494 }
1495
1496 static enum ndr_err_code ndr_push_rap_PrintQueue5(struct ndr_push *ndr, int ndr_flags, const struct rap_PrintQueue5 *r)
1497 {
1498         if (ndr_flags & NDR_SCALARS) {
1499                 NDR_CHECK(ndr_push_align(ndr, 5));
1500                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->PrintQueueName));
1501                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->PrintQueueNameHigh));
1502                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1503         }
1504         if (ndr_flags & NDR_BUFFERS) {
1505                 if (r->PrintQueueName) {
1506                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->PrintQueueName));
1507                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1508                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1509                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->PrintQueueName, CH_DOS)));
1510                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->PrintQueueName, ndr_charset_length(r->PrintQueueName, CH_DOS), sizeof(uint8_t), CH_DOS));
1511                 }
1512         }
1513         return NDR_ERR_SUCCESS;
1514 }
1515
1516 static enum ndr_err_code ndr_pull_rap_PrintQueue5(struct ndr_pull *ndr, int ndr_flags, struct rap_PrintQueue5 *r)
1517 {
1518         uint16_t _ptr_PrintQueueName;
1519         TALLOC_CTX *_mem_save_PrintQueueName_0;
1520         if (ndr_flags & NDR_SCALARS) {
1521                 NDR_CHECK(ndr_pull_align(ndr, 5));
1522                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_PrintQueueName));
1523                 if (_ptr_PrintQueueName) {
1524                         NDR_PULL_ALLOC(ndr, r->PrintQueueName);
1525                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->PrintQueueName, _ptr_PrintQueueName));
1526                 } else {
1527                         r->PrintQueueName = NULL;
1528                 }
1529                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->PrintQueueNameHigh));
1530                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1531         }
1532         if (ndr_flags & NDR_BUFFERS) {
1533                 if (r->PrintQueueName) {
1534                         uint32_t _relative_save_offset;
1535                         _relative_save_offset = ndr->offset;
1536                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->PrintQueueName));
1537                         _mem_save_PrintQueueName_0 = NDR_PULL_GET_MEM_CTX(ndr);
1538                         NDR_PULL_SET_MEM_CTX(ndr, r->PrintQueueName, 0);
1539                         NDR_CHECK(ndr_pull_array_size(ndr, &r->PrintQueueName));
1540                         NDR_CHECK(ndr_pull_array_length(ndr, &r->PrintQueueName));
1541                         if (ndr_get_array_length(ndr, &r->PrintQueueName) > ndr_get_array_size(ndr, &r->PrintQueueName)) {
1542                                 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));
1543                         }
1544                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t)));
1545                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->PrintQueueName, ndr_get_array_length(ndr, &r->PrintQueueName), sizeof(uint8_t), CH_DOS));
1546                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_PrintQueueName_0, 0);
1547                 }
1548         }
1549         return NDR_ERR_SUCCESS;
1550 }
1551
1552 _PUBLIC_ void ndr_print_rap_PrintQueue5(struct ndr_print *ndr, const char *name, const struct rap_PrintQueue5 *r)
1553 {
1554         ndr_print_struct(ndr, name, "rap_PrintQueue5");
1555         ndr->depth++;
1556         ndr_print_ptr(ndr, "PrintQueueName", r->PrintQueueName);
1557         ndr->depth++;
1558         if (r->PrintQueueName) {
1559                 ndr_print_string(ndr, "PrintQueueName", r->PrintQueueName);
1560         }
1561         ndr->depth--;
1562         ndr_print_uint16(ndr, "PrintQueueNameHigh", r->PrintQueueNameHigh);
1563         ndr->depth--;
1564 }
1565
1566 static enum ndr_err_code ndr_push_rap_printq_info(struct ndr_push *ndr, int ndr_flags, const union rap_printq_info *r)
1567 {
1568         if (ndr_flags & NDR_SCALARS) {
1569                 int level = ndr_push_get_switch_value(ndr, r);
1570                 NDR_CHECK(ndr_push_union_align(ndr, 5));
1571                 switch (level) {
1572                         case 0: {
1573                                 NDR_CHECK(ndr_push_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0));
1574                         break; }
1575
1576                         case 1: {
1577                                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1));
1578                         break; }
1579
1580                         case 2: {
1581                                 NDR_CHECK(ndr_push_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2));
1582                         break; }
1583
1584                         case 3: {
1585                                 NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3));
1586                         break; }
1587
1588                         case 4: {
1589                                 NDR_CHECK(ndr_push_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4));
1590                         break; }
1591
1592                         case 5: {
1593                                 NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5));
1594                         break; }
1595
1596                         default:
1597                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1598                 }
1599         }
1600         if (ndr_flags & NDR_BUFFERS) {
1601                 int level = ndr_push_get_switch_value(ndr, r);
1602                 switch (level) {
1603                         case 0:
1604                         break;
1605
1606                         case 1:
1607                                 NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1));
1608                         break;
1609
1610                         case 2:
1611                                 NDR_CHECK(ndr_push_rap_PrintQueue2(ndr, NDR_BUFFERS, &r->info2));
1612                         break;
1613
1614                         case 3:
1615                                 NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3));
1616                         break;
1617
1618                         case 4:
1619                         break;
1620
1621                         case 5:
1622                                 NDR_CHECK(ndr_push_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5));
1623                         break;
1624
1625                         default:
1626                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1627                 }
1628         }
1629         return NDR_ERR_SUCCESS;
1630 }
1631
1632 static enum ndr_err_code ndr_pull_rap_printq_info(struct ndr_pull *ndr, int ndr_flags, union rap_printq_info *r)
1633 {
1634         int level;
1635         level = ndr_pull_get_switch_value(ndr, r);
1636         if (ndr_flags & NDR_SCALARS) {
1637                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
1638                 switch (level) {
1639                         case 0: {
1640                                 NDR_CHECK(ndr_pull_rap_PrintQueue0(ndr, NDR_SCALARS, &r->info0));
1641                         break; }
1642
1643                         case 1: {
1644                                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, &r->info1));
1645                         break; }
1646
1647                         case 2: {
1648                                 NDR_CHECK(ndr_pull_rap_PrintQueue2(ndr, NDR_SCALARS, &r->info2));
1649                         break; }
1650
1651                         case 3: {
1652                                 NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_SCALARS, &r->info3));
1653                         break; }
1654
1655                         case 4: {
1656                                 NDR_CHECK(ndr_pull_rap_PrintQueue4(ndr, NDR_SCALARS, &r->info4));
1657                         break; }
1658
1659                         case 5: {
1660                                 NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_SCALARS, &r->info5));
1661                         break; }
1662
1663                         default:
1664                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1665                 }
1666         }
1667         if (ndr_flags & NDR_BUFFERS) {
1668                 switch (level) {
1669                         case 0:
1670                         break;
1671
1672                         case 1:
1673                                 NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, &r->info1));
1674                         break;
1675
1676                         case 2:
1677                                 NDR_CHECK(ndr_pull_rap_PrintQueue2(ndr, NDR_BUFFERS, &r->info2));
1678                         break;
1679
1680                         case 3:
1681                                 NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_BUFFERS, &r->info3));
1682                         break;
1683
1684                         case 4:
1685                         break;
1686
1687                         case 5:
1688                                 NDR_CHECK(ndr_pull_rap_PrintQueue5(ndr, NDR_BUFFERS, &r->info5));
1689                         break;
1690
1691                         default:
1692                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1693                 }
1694         }
1695         return NDR_ERR_SUCCESS;
1696 }
1697
1698 _PUBLIC_ void ndr_print_rap_printq_info(struct ndr_print *ndr, const char *name, const union rap_printq_info *r)
1699 {
1700         int level;
1701         level = ndr_print_get_switch_value(ndr, r);
1702         ndr_print_union(ndr, name, level, "rap_printq_info");
1703         switch (level) {
1704                 case 0:
1705                         ndr_print_rap_PrintQueue0(ndr, "info0", &r->info0);
1706                 break;
1707
1708                 case 1:
1709                         ndr_print_rap_PrintQueue1(ndr, "info1", &r->info1);
1710                 break;
1711
1712                 case 2:
1713                         ndr_print_rap_PrintQueue2(ndr, "info2", &r->info2);
1714                 break;
1715
1716                 case 3:
1717                         ndr_print_rap_PrintQueue3(ndr, "info3", &r->info3);
1718                 break;
1719
1720                 case 4:
1721                         ndr_print_rap_PrintQueue4(ndr, "info4", &r->info4);
1722                 break;
1723
1724                 case 5:
1725                         ndr_print_rap_PrintQueue5(ndr, "info5", &r->info5);
1726                 break;
1727
1728                 default:
1729                         ndr_print_bad_level(ndr, name, level);
1730         }
1731 }
1732
1733 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetShareEnum(struct ndr_push *ndr, int flags, const struct rap_NetShareEnum *r)
1734 {
1735         if (flags & NDR_IN) {
1736                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
1737                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
1738         }
1739         if (flags & NDR_OUT) {
1740                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
1741                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
1742                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
1743                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
1744                 if (r->out.info == NULL) {
1745                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1746                 }
1747                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
1748                 NDR_CHECK(ndr_push_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1749         }
1750         return NDR_ERR_SUCCESS;
1751 }
1752
1753 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetShareEnum(struct ndr_pull *ndr, int flags, struct rap_NetShareEnum *r)
1754 {
1755         TALLOC_CTX *_mem_save_info_0;
1756         if (flags & NDR_IN) {
1757                 ZERO_STRUCT(r->out);
1758
1759                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
1760                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
1761                 NDR_PULL_ALLOC(ndr, r->out.info);
1762                 ZERO_STRUCTP(r->out.info);
1763         }
1764         if (flags & NDR_OUT) {
1765                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
1766                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
1767                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
1768                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
1769                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1770                         NDR_PULL_ALLOC(ndr, r->out.info);
1771                 }
1772                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1773                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
1774                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
1775                 NDR_CHECK(ndr_pull_rap_share_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1776                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
1777         }
1778         return NDR_ERR_SUCCESS;
1779 }
1780
1781 _PUBLIC_ void ndr_print_rap_NetShareEnum(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetShareEnum *r)
1782 {
1783         ndr_print_struct(ndr, name, "rap_NetShareEnum");
1784         ndr->depth++;
1785         if (flags & NDR_SET_VALUES) {
1786                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1787         }
1788         if (flags & NDR_IN) {
1789                 ndr_print_struct(ndr, "in", "rap_NetShareEnum");
1790                 ndr->depth++;
1791                 ndr_print_uint16(ndr, "level", r->in.level);
1792                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
1793                 ndr->depth--;
1794         }
1795         if (flags & NDR_OUT) {
1796                 ndr_print_struct(ndr, "out", "rap_NetShareEnum");
1797                 ndr->depth++;
1798                 ndr_print_uint16(ndr, "status", r->out.status);
1799                 ndr_print_uint16(ndr, "convert", r->out.convert);
1800                 ndr_print_uint16(ndr, "count", r->out.count);
1801                 ndr_print_uint16(ndr, "available", r->out.available);
1802                 ndr_print_ptr(ndr, "info", r->out.info);
1803                 ndr->depth++;
1804                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
1805                 ndr_print_rap_share_info(ndr, "info", r->out.info);
1806                 ndr->depth--;
1807                 ndr->depth--;
1808         }
1809         ndr->depth--;
1810 }
1811
1812 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetServerEnum2(struct ndr_push *ndr, int flags, const struct rap_NetServerEnum2 *r)
1813 {
1814         if (flags & NDR_IN) {
1815                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
1816                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
1817                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.servertype));
1818                 if (r->in.domain == NULL) {
1819                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1820                 }
1821                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS)));
1822                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
1823                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_DOS)));
1824                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_DOS), sizeof(uint8_t), CH_DOS));
1825         }
1826         if (flags & NDR_OUT) {
1827                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
1828                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
1829                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
1830                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
1831                 if (r->out.info == NULL) {
1832                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1833                 }
1834                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
1835                 NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1836         }
1837         return NDR_ERR_SUCCESS;
1838 }
1839
1840 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetServerEnum2(struct ndr_pull *ndr, int flags, struct rap_NetServerEnum2 *r)
1841 {
1842         TALLOC_CTX *_mem_save_info_0;
1843         if (flags & NDR_IN) {
1844                 ZERO_STRUCT(r->out);
1845
1846                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
1847                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
1848                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.servertype));
1849                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
1850                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
1851                 if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
1852                         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));
1853                 }
1854                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t)));
1855                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t), CH_DOS));
1856                 NDR_PULL_ALLOC(ndr, r->out.info);
1857                 ZERO_STRUCTP(r->out.info);
1858         }
1859         if (flags & NDR_OUT) {
1860                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
1861                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
1862                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
1863                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
1864                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1865                         NDR_PULL_ALLOC(ndr, r->out.info);
1866                 }
1867                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1868                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
1869                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
1870                 NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1871                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
1872         }
1873         return NDR_ERR_SUCCESS;
1874 }
1875
1876 _PUBLIC_ void ndr_print_rap_NetServerEnum2(struct ndr_print *ndr, const char *name, int flags, const struct rap_NetServerEnum2 *r)
1877 {
1878         ndr_print_struct(ndr, name, "rap_NetServerEnum2");
1879         ndr->depth++;
1880         if (flags & NDR_SET_VALUES) {
1881                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1882         }
1883         if (flags & NDR_IN) {
1884                 ndr_print_struct(ndr, "in", "rap_NetServerEnum2");
1885                 ndr->depth++;
1886                 ndr_print_uint16(ndr, "level", r->in.level);
1887                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
1888                 ndr_print_uint32(ndr, "servertype", r->in.servertype);
1889                 ndr_print_ptr(ndr, "domain", r->in.domain);
1890                 ndr->depth++;
1891                 ndr_print_string(ndr, "domain", r->in.domain);
1892                 ndr->depth--;
1893                 ndr->depth--;
1894         }
1895         if (flags & NDR_OUT) {
1896                 ndr_print_struct(ndr, "out", "rap_NetServerEnum2");
1897                 ndr->depth++;
1898                 ndr_print_uint16(ndr, "status", r->out.status);
1899                 ndr_print_uint16(ndr, "convert", r->out.convert);
1900                 ndr_print_uint16(ndr, "count", r->out.count);
1901                 ndr_print_uint16(ndr, "available", r->out.available);
1902                 ndr_print_ptr(ndr, "info", r->out.info);
1903                 ndr->depth++;
1904                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
1905                 ndr_print_rap_server_info(ndr, "info", r->out.info);
1906                 ndr->depth--;
1907                 ndr->depth--;
1908         }
1909         ndr->depth--;
1910 }
1911
1912 _PUBLIC_ enum ndr_err_code ndr_push_rap_WserverGetInfo(struct ndr_push *ndr, int flags, const struct rap_WserverGetInfo *r)
1913 {
1914         if (flags & NDR_IN) {
1915                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
1916                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
1917         }
1918         if (flags & NDR_OUT) {
1919                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
1920                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
1921                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
1922                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info, r->in.level));
1923                 NDR_CHECK(ndr_push_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
1924         }
1925         return NDR_ERR_SUCCESS;
1926 }
1927
1928 _PUBLIC_ enum ndr_err_code ndr_pull_rap_WserverGetInfo(struct ndr_pull *ndr, int flags, struct rap_WserverGetInfo *r)
1929 {
1930         if (flags & NDR_IN) {
1931                 ZERO_STRUCT(r->out);
1932
1933                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
1934                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
1935         }
1936         if (flags & NDR_OUT) {
1937                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
1938                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
1939                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
1940                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info, r->in.level));
1941                 NDR_CHECK(ndr_pull_rap_server_info(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
1942         }
1943         return NDR_ERR_SUCCESS;
1944 }
1945
1946 _PUBLIC_ void ndr_print_rap_WserverGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct rap_WserverGetInfo *r)
1947 {
1948         ndr_print_struct(ndr, name, "rap_WserverGetInfo");
1949         ndr->depth++;
1950         if (flags & NDR_SET_VALUES) {
1951                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1952         }
1953         if (flags & NDR_IN) {
1954                 ndr_print_struct(ndr, "in", "rap_WserverGetInfo");
1955                 ndr->depth++;
1956                 ndr_print_uint16(ndr, "level", r->in.level);
1957                 ndr_print_uint16(ndr, "bufsize", r->in.bufsize);
1958                 ndr->depth--;
1959         }
1960         if (flags & NDR_OUT) {
1961                 ndr_print_struct(ndr, "out", "rap_WserverGetInfo");
1962                 ndr->depth++;
1963                 ndr_print_uint16(ndr, "status", r->out.status);
1964                 ndr_print_uint16(ndr, "convert", r->out.convert);
1965                 ndr_print_uint16(ndr, "available", r->out.available);
1966                 ndr_print_set_switch_value(ndr, &r->out.info, r->in.level);
1967                 ndr_print_rap_server_info(ndr, "info", &r->out.info);
1968                 ndr->depth--;
1969         }
1970         ndr->depth--;
1971 }
1972
1973 _PUBLIC_ enum ndr_err_code ndr_push_rap_NetPrintQEnum(struct ndr_push *ndr, int flags, const struct rap_NetPrintQEnum *r)
1974 {
1975         if (flags & NDR_IN) {
1976                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
1977                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.bufsize));
1978         }
1979         if (flags & NDR_OUT) {
1980                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.status));
1981                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.convert));
1982                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.count));
1983                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.available));
1984                 if (r->out.info == NULL) {
1985                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1986                 }
1987                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
1988                 NDR_CHECK(ndr_push_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1989         }
1990         return NDR_ERR_SUCCESS;
1991 }
1992
1993 _PUBLIC_ enum ndr_err_code ndr_pull_rap_NetPrintQEnum(struct ndr_pull *ndr, int flags, struct rap_NetPrintQEnum *r)
1994 {
1995         TALLOC_CTX *_mem_save_info_0;
1996         if (flags & NDR_IN) {
1997                 ZERO_STRUCT(r->out);
1998
1999                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
2000                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.bufsize));
2001                 NDR_PULL_ALLOC(ndr, r->out.info);
2002                 ZERO_STRUCTP(r->out.info);
2003         }
2004         if (flags & NDR_OUT) {
2005                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.status));
2006                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.convert));
2007                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.count));
2008                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.available));
2009                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
2010                         NDR_PULL_ALLOC(ndr, r->out.info);
2011                 }
2012                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
2013                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
2014                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
2015                 NDR_CHECK(ndr_pull_rap_printq_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
2016                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
2017         }
2018         return NDR_ERR_SUCCESS;
2019 }
2020