Simplify the logic - remove extraneous argument and calls to set_close_write_time().
[Samba/fernandojvsilva.git] / librpc / gen_ndr / ndr_dcerpc.c
blob37f6d548183ebd30cc3b8bc727a3489f75dadfe5
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_dcerpc.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 static enum ndr_err_code ndr_push_dcerpc_ctx_list(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ctx_list *r)
9 uint32_t cntr_transfer_syntaxes_0;
10 if (ndr_flags & NDR_SCALARS) {
11 NDR_CHECK(ndr_push_align(ndr, 4));
12 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
13 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_transfer_syntaxes));
14 NDR_CHECK(ndr_push_ndr_syntax_id(ndr, NDR_SCALARS, &r->abstract_syntax));
15 for (cntr_transfer_syntaxes_0 = 0; cntr_transfer_syntaxes_0 < r->num_transfer_syntaxes; cntr_transfer_syntaxes_0++) {
16 NDR_CHECK(ndr_push_ndr_syntax_id(ndr, NDR_SCALARS, &r->transfer_syntaxes[cntr_transfer_syntaxes_0]));
18 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20 if (ndr_flags & NDR_BUFFERS) {
22 return NDR_ERR_SUCCESS;
25 static enum ndr_err_code ndr_pull_dcerpc_ctx_list(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ctx_list *r)
27 uint32_t cntr_transfer_syntaxes_0;
28 TALLOC_CTX *_mem_save_transfer_syntaxes_0;
29 if (ndr_flags & NDR_SCALARS) {
30 NDR_CHECK(ndr_pull_align(ndr, 4));
31 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
32 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_transfer_syntaxes));
33 NDR_CHECK(ndr_pull_ndr_syntax_id(ndr, NDR_SCALARS, &r->abstract_syntax));
34 NDR_PULL_ALLOC_N(ndr, r->transfer_syntaxes, r->num_transfer_syntaxes);
35 _mem_save_transfer_syntaxes_0 = NDR_PULL_GET_MEM_CTX(ndr);
36 NDR_PULL_SET_MEM_CTX(ndr, r->transfer_syntaxes, 0);
37 for (cntr_transfer_syntaxes_0 = 0; cntr_transfer_syntaxes_0 < r->num_transfer_syntaxes; cntr_transfer_syntaxes_0++) {
38 NDR_CHECK(ndr_pull_ndr_syntax_id(ndr, NDR_SCALARS, &r->transfer_syntaxes[cntr_transfer_syntaxes_0]));
40 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transfer_syntaxes_0, 0);
41 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
43 if (ndr_flags & NDR_BUFFERS) {
45 return NDR_ERR_SUCCESS;
48 _PUBLIC_ void ndr_print_dcerpc_ctx_list(struct ndr_print *ndr, const char *name, const struct dcerpc_ctx_list *r)
50 uint32_t cntr_transfer_syntaxes_0;
51 ndr_print_struct(ndr, name, "dcerpc_ctx_list");
52 ndr->depth++;
53 ndr_print_uint16(ndr, "context_id", r->context_id);
54 ndr_print_uint8(ndr, "num_transfer_syntaxes", r->num_transfer_syntaxes);
55 ndr_print_ndr_syntax_id(ndr, "abstract_syntax", &r->abstract_syntax);
56 ndr->print(ndr, "%s: ARRAY(%d)", "transfer_syntaxes", (int)r->num_transfer_syntaxes);
57 ndr->depth++;
58 for (cntr_transfer_syntaxes_0=0;cntr_transfer_syntaxes_0<r->num_transfer_syntaxes;cntr_transfer_syntaxes_0++) {
59 char *idx_0=NULL;
60 if (asprintf(&idx_0, "[%d]", cntr_transfer_syntaxes_0) != -1) {
61 ndr_print_ndr_syntax_id(ndr, "transfer_syntaxes", &r->transfer_syntaxes[cntr_transfer_syntaxes_0]);
62 free(idx_0);
65 ndr->depth--;
66 ndr->depth--;
69 static enum ndr_err_code ndr_push_dcerpc_bind(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind *r)
71 uint32_t cntr_ctx_list_0;
72 if (ndr_flags & NDR_SCALARS) {
73 NDR_CHECK(ndr_push_align(ndr, 4));
74 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_xmit_frag));
75 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_recv_frag));
76 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->assoc_group_id));
77 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_contexts));
78 for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_contexts; cntr_ctx_list_0++) {
79 NDR_CHECK(ndr_push_dcerpc_ctx_list(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
82 uint32_t _flags_save_DATA_BLOB = ndr->flags;
83 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
84 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
85 ndr->flags = _flags_save_DATA_BLOB;
88 uint32_t _flags_save_DATA_BLOB = ndr->flags;
89 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
90 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
91 ndr->flags = _flags_save_DATA_BLOB;
93 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
95 if (ndr_flags & NDR_BUFFERS) {
97 return NDR_ERR_SUCCESS;
100 static enum ndr_err_code ndr_pull_dcerpc_bind(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind *r)
102 uint32_t cntr_ctx_list_0;
103 TALLOC_CTX *_mem_save_ctx_list_0;
104 if (ndr_flags & NDR_SCALARS) {
105 NDR_CHECK(ndr_pull_align(ndr, 4));
106 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_xmit_frag));
107 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_recv_frag));
108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->assoc_group_id));
109 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_contexts));
110 NDR_PULL_ALLOC_N(ndr, r->ctx_list, r->num_contexts);
111 _mem_save_ctx_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
112 NDR_PULL_SET_MEM_CTX(ndr, r->ctx_list, 0);
113 for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_contexts; cntr_ctx_list_0++) {
114 NDR_CHECK(ndr_pull_dcerpc_ctx_list(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctx_list_0, 0);
118 uint32_t _flags_save_DATA_BLOB = ndr->flags;
119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
120 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
121 ndr->flags = _flags_save_DATA_BLOB;
124 uint32_t _flags_save_DATA_BLOB = ndr->flags;
125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
126 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
127 ndr->flags = _flags_save_DATA_BLOB;
129 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
131 if (ndr_flags & NDR_BUFFERS) {
133 return NDR_ERR_SUCCESS;
136 _PUBLIC_ void ndr_print_dcerpc_bind(struct ndr_print *ndr, const char *name, const struct dcerpc_bind *r)
138 uint32_t cntr_ctx_list_0;
139 ndr_print_struct(ndr, name, "dcerpc_bind");
140 ndr->depth++;
141 ndr_print_uint16(ndr, "max_xmit_frag", r->max_xmit_frag);
142 ndr_print_uint16(ndr, "max_recv_frag", r->max_recv_frag);
143 ndr_print_uint32(ndr, "assoc_group_id", r->assoc_group_id);
144 ndr_print_uint8(ndr, "num_contexts", r->num_contexts);
145 ndr->print(ndr, "%s: ARRAY(%d)", "ctx_list", (int)r->num_contexts);
146 ndr->depth++;
147 for (cntr_ctx_list_0=0;cntr_ctx_list_0<r->num_contexts;cntr_ctx_list_0++) {
148 char *idx_0=NULL;
149 if (asprintf(&idx_0, "[%d]", cntr_ctx_list_0) != -1) {
150 ndr_print_dcerpc_ctx_list(ndr, "ctx_list", &r->ctx_list[cntr_ctx_list_0]);
151 free(idx_0);
154 ndr->depth--;
155 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
156 ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
157 ndr->depth--;
160 static enum ndr_err_code ndr_push_dcerpc_empty(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_empty *r)
162 if (ndr_flags & NDR_SCALARS) {
163 NDR_CHECK(ndr_push_align(ndr, 1));
164 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
166 if (ndr_flags & NDR_BUFFERS) {
168 return NDR_ERR_SUCCESS;
171 static enum ndr_err_code ndr_pull_dcerpc_empty(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_empty *r)
173 if (ndr_flags & NDR_SCALARS) {
174 NDR_CHECK(ndr_pull_align(ndr, 1));
175 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
177 if (ndr_flags & NDR_BUFFERS) {
179 return NDR_ERR_SUCCESS;
182 _PUBLIC_ void ndr_print_dcerpc_empty(struct ndr_print *ndr, const char *name, const struct dcerpc_empty *r)
184 ndr_print_struct(ndr, name, "dcerpc_empty");
185 ndr->depth++;
186 ndr->depth--;
189 static enum ndr_err_code ndr_push_dcerpc_object(struct ndr_push *ndr, int ndr_flags, const union dcerpc_object *r)
191 if (ndr_flags & NDR_SCALARS) {
192 int level = ndr_push_get_switch_value(ndr, r);
193 NDR_CHECK(ndr_push_union_align(ndr, 4));
194 switch (level) {
195 default: {
196 NDR_CHECK(ndr_push_dcerpc_empty(ndr, NDR_SCALARS, &r->empty));
197 break; }
199 case LIBNDR_FLAG_OBJECT_PRESENT: {
200 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->object));
201 break; }
205 if (ndr_flags & NDR_BUFFERS) {
206 int level = ndr_push_get_switch_value(ndr, r);
207 switch (level) {
208 default:
209 break;
211 case LIBNDR_FLAG_OBJECT_PRESENT:
212 break;
216 return NDR_ERR_SUCCESS;
219 static enum ndr_err_code ndr_pull_dcerpc_object(struct ndr_pull *ndr, int ndr_flags, union dcerpc_object *r)
221 int level;
222 level = ndr_pull_get_switch_value(ndr, r);
223 if (ndr_flags & NDR_SCALARS) {
224 NDR_CHECK(ndr_pull_union_align(ndr, 4));
225 switch (level) {
226 default: {
227 NDR_CHECK(ndr_pull_dcerpc_empty(ndr, NDR_SCALARS, &r->empty));
228 break; }
230 case LIBNDR_FLAG_OBJECT_PRESENT: {
231 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->object));
232 break; }
236 if (ndr_flags & NDR_BUFFERS) {
237 switch (level) {
238 default:
239 break;
241 case LIBNDR_FLAG_OBJECT_PRESENT:
242 break;
246 return NDR_ERR_SUCCESS;
249 _PUBLIC_ void ndr_print_dcerpc_object(struct ndr_print *ndr, const char *name, const union dcerpc_object *r)
251 int level;
252 level = ndr_print_get_switch_value(ndr, r);
253 ndr_print_union(ndr, name, level, "dcerpc_object");
254 switch (level) {
255 default:
256 ndr_print_dcerpc_empty(ndr, "empty", &r->empty);
257 break;
259 case LIBNDR_FLAG_OBJECT_PRESENT:
260 ndr_print_GUID(ndr, "object", &r->object);
261 break;
266 static enum ndr_err_code ndr_push_dcerpc_request(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_request *r)
268 if (ndr_flags & NDR_SCALARS) {
269 NDR_CHECK(ndr_push_align(ndr, 4));
270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->alloc_hint));
271 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
272 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opnum));
273 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT));
274 NDR_CHECK(ndr_push_dcerpc_object(ndr, NDR_SCALARS, &r->object));
276 uint32_t _flags_save_DATA_BLOB = ndr->flags;
277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
278 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
279 ndr->flags = _flags_save_DATA_BLOB;
282 uint32_t _flags_save_DATA_BLOB = ndr->flags;
283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
284 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->stub_and_verifier));
285 ndr->flags = _flags_save_DATA_BLOB;
287 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
289 if (ndr_flags & NDR_BUFFERS) {
291 return NDR_ERR_SUCCESS;
294 static enum ndr_err_code ndr_pull_dcerpc_request(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_request *r)
296 if (ndr_flags & NDR_SCALARS) {
297 NDR_CHECK(ndr_pull_align(ndr, 4));
298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->alloc_hint));
299 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
300 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opnum));
301 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT));
302 NDR_CHECK(ndr_pull_dcerpc_object(ndr, NDR_SCALARS, &r->object));
304 uint32_t _flags_save_DATA_BLOB = ndr->flags;
305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
306 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
307 ndr->flags = _flags_save_DATA_BLOB;
310 uint32_t _flags_save_DATA_BLOB = ndr->flags;
311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
312 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->stub_and_verifier));
313 ndr->flags = _flags_save_DATA_BLOB;
315 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
317 if (ndr_flags & NDR_BUFFERS) {
319 return NDR_ERR_SUCCESS;
322 _PUBLIC_ void ndr_print_dcerpc_request(struct ndr_print *ndr, const char *name, const struct dcerpc_request *r)
324 ndr_print_struct(ndr, name, "dcerpc_request");
325 ndr->depth++;
326 ndr_print_uint32(ndr, "alloc_hint", r->alloc_hint);
327 ndr_print_uint16(ndr, "context_id", r->context_id);
328 ndr_print_uint16(ndr, "opnum", r->opnum);
329 ndr_print_set_switch_value(ndr, &r->object, ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT);
330 ndr_print_dcerpc_object(ndr, "object", &r->object);
331 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
332 ndr_print_DATA_BLOB(ndr, "stub_and_verifier", r->stub_and_verifier);
333 ndr->depth--;
336 static enum ndr_err_code ndr_push_dcerpc_ack_ctx(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ack_ctx *r)
338 if (ndr_flags & NDR_SCALARS) {
339 NDR_CHECK(ndr_push_align(ndr, 4));
340 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->result));
341 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reason));
342 NDR_CHECK(ndr_push_ndr_syntax_id(ndr, NDR_SCALARS, &r->syntax));
343 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
345 if (ndr_flags & NDR_BUFFERS) {
347 return NDR_ERR_SUCCESS;
350 static enum ndr_err_code ndr_pull_dcerpc_ack_ctx(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ack_ctx *r)
352 if (ndr_flags & NDR_SCALARS) {
353 NDR_CHECK(ndr_pull_align(ndr, 4));
354 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->result));
355 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reason));
356 NDR_CHECK(ndr_pull_ndr_syntax_id(ndr, NDR_SCALARS, &r->syntax));
357 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
359 if (ndr_flags & NDR_BUFFERS) {
361 return NDR_ERR_SUCCESS;
364 _PUBLIC_ void ndr_print_dcerpc_ack_ctx(struct ndr_print *ndr, const char *name, const struct dcerpc_ack_ctx *r)
366 ndr_print_struct(ndr, name, "dcerpc_ack_ctx");
367 ndr->depth++;
368 ndr_print_uint16(ndr, "result", r->result);
369 ndr_print_uint16(ndr, "reason", r->reason);
370 ndr_print_ndr_syntax_id(ndr, "syntax", &r->syntax);
371 ndr->depth--;
374 static enum ndr_err_code ndr_push_dcerpc_bind_ack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind_ack *r)
376 uint32_t cntr_ctx_list_0;
377 if (ndr_flags & NDR_SCALARS) {
378 NDR_CHECK(ndr_push_align(ndr, 4));
379 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_xmit_frag));
380 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_recv_frag));
381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->assoc_group_id));
382 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->secondary_address) + 1));
383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->secondary_address, strlen(r->secondary_address) + 1, sizeof(uint8_t), CH_DOS));
385 uint32_t _flags_save_DATA_BLOB = ndr->flags;
386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
387 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad1));
388 ndr->flags = _flags_save_DATA_BLOB;
390 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_results));
391 for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_results; cntr_ctx_list_0++) {
392 NDR_CHECK(ndr_push_dcerpc_ack_ctx(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
395 uint32_t _flags_save_DATA_BLOB = ndr->flags;
396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
397 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
398 ndr->flags = _flags_save_DATA_BLOB;
400 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
402 if (ndr_flags & NDR_BUFFERS) {
404 return NDR_ERR_SUCCESS;
407 static enum ndr_err_code ndr_pull_dcerpc_bind_ack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind_ack *r)
409 uint32_t cntr_ctx_list_0;
410 TALLOC_CTX *_mem_save_ctx_list_0;
411 if (ndr_flags & NDR_SCALARS) {
412 NDR_CHECK(ndr_pull_align(ndr, 4));
413 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_xmit_frag));
414 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_recv_frag));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->assoc_group_id));
416 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->secondary_address_size));
417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->secondary_address, r->secondary_address_size, sizeof(uint8_t), CH_DOS));
419 uint32_t _flags_save_DATA_BLOB = ndr->flags;
420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
421 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad1));
422 ndr->flags = _flags_save_DATA_BLOB;
424 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_results));
425 NDR_PULL_ALLOC_N(ndr, r->ctx_list, r->num_results);
426 _mem_save_ctx_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
427 NDR_PULL_SET_MEM_CTX(ndr, r->ctx_list, 0);
428 for (cntr_ctx_list_0 = 0; cntr_ctx_list_0 < r->num_results; cntr_ctx_list_0++) {
429 NDR_CHECK(ndr_pull_dcerpc_ack_ctx(ndr, NDR_SCALARS, &r->ctx_list[cntr_ctx_list_0]));
431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctx_list_0, 0);
433 uint32_t _flags_save_DATA_BLOB = ndr->flags;
434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
435 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
436 ndr->flags = _flags_save_DATA_BLOB;
438 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
440 if (ndr_flags & NDR_BUFFERS) {
442 return NDR_ERR_SUCCESS;
445 _PUBLIC_ void ndr_print_dcerpc_bind_ack(struct ndr_print *ndr, const char *name, const struct dcerpc_bind_ack *r)
447 uint32_t cntr_ctx_list_0;
448 ndr_print_struct(ndr, name, "dcerpc_bind_ack");
449 ndr->depth++;
450 ndr_print_uint16(ndr, "max_xmit_frag", r->max_xmit_frag);
451 ndr_print_uint16(ndr, "max_recv_frag", r->max_recv_frag);
452 ndr_print_uint32(ndr, "assoc_group_id", r->assoc_group_id);
453 ndr_print_uint16(ndr, "secondary_address_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->secondary_address) + 1:r->secondary_address_size);
454 ndr_print_string(ndr, "secondary_address", r->secondary_address);
455 ndr_print_DATA_BLOB(ndr, "_pad1", r->_pad1);
456 ndr_print_uint8(ndr, "num_results", r->num_results);
457 ndr->print(ndr, "%s: ARRAY(%d)", "ctx_list", (int)r->num_results);
458 ndr->depth++;
459 for (cntr_ctx_list_0=0;cntr_ctx_list_0<r->num_results;cntr_ctx_list_0++) {
460 char *idx_0=NULL;
461 if (asprintf(&idx_0, "[%d]", cntr_ctx_list_0) != -1) {
462 ndr_print_dcerpc_ack_ctx(ndr, "ctx_list", &r->ctx_list[cntr_ctx_list_0]);
463 free(idx_0);
466 ndr->depth--;
467 ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
468 ndr->depth--;
471 static enum ndr_err_code ndr_push_dcerpc_bind_nak_versions(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind_nak_versions *r)
473 uint32_t cntr_versions_0;
474 if (ndr_flags & NDR_SCALARS) {
475 NDR_CHECK(ndr_push_align(ndr, 4));
476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_versions));
477 for (cntr_versions_0 = 0; cntr_versions_0 < r->num_versions; cntr_versions_0++) {
478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->versions[cntr_versions_0]));
480 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
482 if (ndr_flags & NDR_BUFFERS) {
484 return NDR_ERR_SUCCESS;
487 static enum ndr_err_code ndr_pull_dcerpc_bind_nak_versions(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind_nak_versions *r)
489 uint32_t cntr_versions_0;
490 TALLOC_CTX *_mem_save_versions_0;
491 if (ndr_flags & NDR_SCALARS) {
492 NDR_CHECK(ndr_pull_align(ndr, 4));
493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_versions));
494 NDR_PULL_ALLOC_N(ndr, r->versions, r->num_versions);
495 _mem_save_versions_0 = NDR_PULL_GET_MEM_CTX(ndr);
496 NDR_PULL_SET_MEM_CTX(ndr, r->versions, 0);
497 for (cntr_versions_0 = 0; cntr_versions_0 < r->num_versions; cntr_versions_0++) {
498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->versions[cntr_versions_0]));
500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_versions_0, 0);
501 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
503 if (ndr_flags & NDR_BUFFERS) {
505 return NDR_ERR_SUCCESS;
508 _PUBLIC_ void ndr_print_dcerpc_bind_nak_versions(struct ndr_print *ndr, const char *name, const struct dcerpc_bind_nak_versions *r)
510 uint32_t cntr_versions_0;
511 ndr_print_struct(ndr, name, "dcerpc_bind_nak_versions");
512 ndr->depth++;
513 ndr_print_uint32(ndr, "num_versions", r->num_versions);
514 ndr->print(ndr, "%s: ARRAY(%d)", "versions", (int)r->num_versions);
515 ndr->depth++;
516 for (cntr_versions_0=0;cntr_versions_0<r->num_versions;cntr_versions_0++) {
517 char *idx_0=NULL;
518 if (asprintf(&idx_0, "[%d]", cntr_versions_0) != -1) {
519 ndr_print_uint32(ndr, "versions", r->versions[cntr_versions_0]);
520 free(idx_0);
523 ndr->depth--;
524 ndr->depth--;
527 static enum ndr_err_code ndr_push_dcerpc_bind_nak_versions_ctr(struct ndr_push *ndr, int ndr_flags, const union dcerpc_bind_nak_versions_ctr *r)
529 if (ndr_flags & NDR_SCALARS) {
530 int level = ndr_push_get_switch_value(ndr, r);
531 NDR_CHECK(ndr_push_union_align(ndr, 4));
532 switch (level) {
533 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED: {
534 NDR_CHECK(ndr_push_dcerpc_bind_nak_versions(ndr, NDR_SCALARS, &r->v));
535 break; }
537 default: {
538 break; }
542 if (ndr_flags & NDR_BUFFERS) {
543 int level = ndr_push_get_switch_value(ndr, r);
544 switch (level) {
545 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED:
546 break;
548 default:
549 break;
553 return NDR_ERR_SUCCESS;
556 static enum ndr_err_code ndr_pull_dcerpc_bind_nak_versions_ctr(struct ndr_pull *ndr, int ndr_flags, union dcerpc_bind_nak_versions_ctr *r)
558 int level;
559 level = ndr_pull_get_switch_value(ndr, r);
560 if (ndr_flags & NDR_SCALARS) {
561 NDR_CHECK(ndr_pull_union_align(ndr, 4));
562 switch (level) {
563 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED: {
564 NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions(ndr, NDR_SCALARS, &r->v));
565 break; }
567 default: {
568 break; }
572 if (ndr_flags & NDR_BUFFERS) {
573 switch (level) {
574 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED:
575 break;
577 default:
578 break;
582 return NDR_ERR_SUCCESS;
585 _PUBLIC_ void ndr_print_dcerpc_bind_nak_versions_ctr(struct ndr_print *ndr, const char *name, const union dcerpc_bind_nak_versions_ctr *r)
587 int level;
588 level = ndr_print_get_switch_value(ndr, r);
589 ndr_print_union(ndr, name, level, "dcerpc_bind_nak_versions_ctr");
590 switch (level) {
591 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED:
592 ndr_print_dcerpc_bind_nak_versions(ndr, "v", &r->v);
593 break;
595 default:
596 break;
601 static enum ndr_err_code ndr_push_dcerpc_bind_nak(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_bind_nak *r)
603 if (ndr_flags & NDR_SCALARS) {
604 NDR_CHECK(ndr_push_align(ndr, 4));
605 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reject_reason));
606 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->versions, r->reject_reason));
607 NDR_CHECK(ndr_push_dcerpc_bind_nak_versions_ctr(ndr, NDR_SCALARS, &r->versions));
608 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
610 if (ndr_flags & NDR_BUFFERS) {
611 NDR_CHECK(ndr_push_dcerpc_bind_nak_versions_ctr(ndr, NDR_BUFFERS, &r->versions));
613 return NDR_ERR_SUCCESS;
616 static enum ndr_err_code ndr_pull_dcerpc_bind_nak(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind_nak *r)
618 if (ndr_flags & NDR_SCALARS) {
619 NDR_CHECK(ndr_pull_align(ndr, 4));
620 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reject_reason));
621 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->versions, r->reject_reason));
622 NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions_ctr(ndr, NDR_SCALARS, &r->versions));
623 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
625 if (ndr_flags & NDR_BUFFERS) {
626 NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions_ctr(ndr, NDR_BUFFERS, &r->versions));
628 return NDR_ERR_SUCCESS;
631 _PUBLIC_ void ndr_print_dcerpc_bind_nak(struct ndr_print *ndr, const char *name, const struct dcerpc_bind_nak *r)
633 ndr_print_struct(ndr, name, "dcerpc_bind_nak");
634 ndr->depth++;
635 ndr_print_uint16(ndr, "reject_reason", r->reject_reason);
636 ndr_print_set_switch_value(ndr, &r->versions, r->reject_reason);
637 ndr_print_dcerpc_bind_nak_versions_ctr(ndr, "versions", &r->versions);
638 ndr->depth--;
641 static enum ndr_err_code ndr_push_dcerpc_response(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_response *r)
643 if (ndr_flags & NDR_SCALARS) {
644 NDR_CHECK(ndr_push_align(ndr, 4));
645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->alloc_hint));
646 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
647 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->cancel_count));
649 uint32_t _flags_save_DATA_BLOB = ndr->flags;
650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
651 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
652 ndr->flags = _flags_save_DATA_BLOB;
655 uint32_t _flags_save_DATA_BLOB = ndr->flags;
656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
657 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->stub_and_verifier));
658 ndr->flags = _flags_save_DATA_BLOB;
660 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
662 if (ndr_flags & NDR_BUFFERS) {
664 return NDR_ERR_SUCCESS;
667 static enum ndr_err_code ndr_pull_dcerpc_response(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_response *r)
669 if (ndr_flags & NDR_SCALARS) {
670 NDR_CHECK(ndr_pull_align(ndr, 4));
671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->alloc_hint));
672 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
673 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->cancel_count));
675 uint32_t _flags_save_DATA_BLOB = ndr->flags;
676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
677 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
678 ndr->flags = _flags_save_DATA_BLOB;
681 uint32_t _flags_save_DATA_BLOB = ndr->flags;
682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
683 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->stub_and_verifier));
684 ndr->flags = _flags_save_DATA_BLOB;
686 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
688 if (ndr_flags & NDR_BUFFERS) {
690 return NDR_ERR_SUCCESS;
693 _PUBLIC_ void ndr_print_dcerpc_response(struct ndr_print *ndr, const char *name, const struct dcerpc_response *r)
695 ndr_print_struct(ndr, name, "dcerpc_response");
696 ndr->depth++;
697 ndr_print_uint32(ndr, "alloc_hint", r->alloc_hint);
698 ndr_print_uint16(ndr, "context_id", r->context_id);
699 ndr_print_uint8(ndr, "cancel_count", r->cancel_count);
700 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
701 ndr_print_DATA_BLOB(ndr, "stub_and_verifier", r->stub_and_verifier);
702 ndr->depth--;
705 static enum ndr_err_code ndr_push_dcerpc_fault(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_fault *r)
707 if (ndr_flags & NDR_SCALARS) {
708 NDR_CHECK(ndr_push_align(ndr, 4));
709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->alloc_hint));
710 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->context_id));
711 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->cancel_count));
712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
714 uint32_t _flags_save_DATA_BLOB = ndr->flags;
715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
716 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
717 ndr->flags = _flags_save_DATA_BLOB;
719 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
721 if (ndr_flags & NDR_BUFFERS) {
723 return NDR_ERR_SUCCESS;
726 static enum ndr_err_code ndr_pull_dcerpc_fault(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_fault *r)
728 if (ndr_flags & NDR_SCALARS) {
729 NDR_CHECK(ndr_pull_align(ndr, 4));
730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->alloc_hint));
731 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->context_id));
732 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->cancel_count));
733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
735 uint32_t _flags_save_DATA_BLOB = ndr->flags;
736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
737 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
738 ndr->flags = _flags_save_DATA_BLOB;
740 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
742 if (ndr_flags & NDR_BUFFERS) {
744 return NDR_ERR_SUCCESS;
747 _PUBLIC_ void ndr_print_dcerpc_fault(struct ndr_print *ndr, const char *name, const struct dcerpc_fault *r)
749 ndr_print_struct(ndr, name, "dcerpc_fault");
750 ndr->depth++;
751 ndr_print_uint32(ndr, "alloc_hint", r->alloc_hint);
752 ndr_print_uint16(ndr, "context_id", r->context_id);
753 ndr_print_uint8(ndr, "cancel_count", r->cancel_count);
754 ndr_print_uint32(ndr, "status", r->status);
755 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
756 ndr->depth--;
759 static enum ndr_err_code ndr_push_dcerpc_AuthType(struct ndr_push *ndr, int ndr_flags, enum dcerpc_AuthType r)
761 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
762 return NDR_ERR_SUCCESS;
765 static enum ndr_err_code ndr_pull_dcerpc_AuthType(struct ndr_pull *ndr, int ndr_flags, enum dcerpc_AuthType *r)
767 uint8_t v;
768 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
769 *r = v;
770 return NDR_ERR_SUCCESS;
773 _PUBLIC_ void ndr_print_dcerpc_AuthType(struct ndr_print *ndr, const char *name, enum dcerpc_AuthType r)
775 const char *val = NULL;
777 switch (r) {
778 case DCERPC_AUTH_TYPE_NONE: val = "DCERPC_AUTH_TYPE_NONE"; break;
779 case DCERPC_AUTH_TYPE_KRB5_1: val = "DCERPC_AUTH_TYPE_KRB5_1"; break;
780 case DCERPC_AUTH_TYPE_SPNEGO: val = "DCERPC_AUTH_TYPE_SPNEGO"; break;
781 case DCERPC_AUTH_TYPE_NTLMSSP: val = "DCERPC_AUTH_TYPE_NTLMSSP"; break;
782 case DCERPC_AUTH_TYPE_KRB5: val = "DCERPC_AUTH_TYPE_KRB5"; break;
783 case DCERPC_AUTH_TYPE_DPA: val = "DCERPC_AUTH_TYPE_DPA"; break;
784 case DCERPC_AUTH_TYPE_MSN: val = "DCERPC_AUTH_TYPE_MSN"; break;
785 case DCERPC_AUTH_TYPE_DIGEST: val = "DCERPC_AUTH_TYPE_DIGEST"; break;
786 case DCERPC_AUTH_TYPE_SCHANNEL: val = "DCERPC_AUTH_TYPE_SCHANNEL"; break;
787 case DCERPC_AUTH_TYPE_MSMQ: val = "DCERPC_AUTH_TYPE_MSMQ"; break;
789 ndr_print_enum(ndr, name, "ENUM", val, r);
792 static enum ndr_err_code ndr_push_dcerpc_AuthLevel(struct ndr_push *ndr, int ndr_flags, enum dcerpc_AuthLevel r)
794 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
795 return NDR_ERR_SUCCESS;
798 static enum ndr_err_code ndr_pull_dcerpc_AuthLevel(struct ndr_pull *ndr, int ndr_flags, enum dcerpc_AuthLevel *r)
800 uint8_t v;
801 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
802 *r = v;
803 return NDR_ERR_SUCCESS;
806 _PUBLIC_ void ndr_print_dcerpc_AuthLevel(struct ndr_print *ndr, const char *name, enum dcerpc_AuthLevel r)
808 const char *val = NULL;
810 switch (r) {
811 case DCERPC_AUTH_LEVEL_NONE: val = "DCERPC_AUTH_LEVEL_NONE"; break;
812 case DCERPC_AUTH_LEVEL_CONNECT: val = "DCERPC_AUTH_LEVEL_CONNECT"; break;
813 case DCERPC_AUTH_LEVEL_CALL: val = "DCERPC_AUTH_LEVEL_CALL"; break;
814 case DCERPC_AUTH_LEVEL_PACKET: val = "DCERPC_AUTH_LEVEL_PACKET"; break;
815 case DCERPC_AUTH_LEVEL_INTEGRITY: val = "DCERPC_AUTH_LEVEL_INTEGRITY"; break;
816 case DCERPC_AUTH_LEVEL_PRIVACY: val = "DCERPC_AUTH_LEVEL_PRIVACY"; break;
818 ndr_print_enum(ndr, name, "ENUM", val, r);
821 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_auth(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_auth *r)
823 if (ndr_flags & NDR_SCALARS) {
824 NDR_CHECK(ndr_push_align(ndr, 4));
825 NDR_CHECK(ndr_push_dcerpc_AuthType(ndr, NDR_SCALARS, r->auth_type));
826 NDR_CHECK(ndr_push_dcerpc_AuthLevel(ndr, NDR_SCALARS, r->auth_level));
827 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auth_pad_length));
828 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auth_reserved));
829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_context_id));
831 uint32_t _flags_save_DATA_BLOB = ndr->flags;
832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
833 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->credentials));
834 ndr->flags = _flags_save_DATA_BLOB;
836 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
838 if (ndr_flags & NDR_BUFFERS) {
840 return NDR_ERR_SUCCESS;
843 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_auth(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_auth *r)
845 if (ndr_flags & NDR_SCALARS) {
846 NDR_CHECK(ndr_pull_align(ndr, 4));
847 NDR_CHECK(ndr_pull_dcerpc_AuthType(ndr, NDR_SCALARS, &r->auth_type));
848 NDR_CHECK(ndr_pull_dcerpc_AuthLevel(ndr, NDR_SCALARS, &r->auth_level));
849 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auth_pad_length));
850 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auth_reserved));
851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_context_id));
853 uint32_t _flags_save_DATA_BLOB = ndr->flags;
854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
855 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->credentials));
856 ndr->flags = _flags_save_DATA_BLOB;
858 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
860 if (ndr_flags & NDR_BUFFERS) {
862 return NDR_ERR_SUCCESS;
865 _PUBLIC_ void ndr_print_dcerpc_auth(struct ndr_print *ndr, const char *name, const struct dcerpc_auth *r)
867 ndr_print_struct(ndr, name, "dcerpc_auth");
868 ndr->depth++;
869 ndr_print_dcerpc_AuthType(ndr, "auth_type", r->auth_type);
870 ndr_print_dcerpc_AuthLevel(ndr, "auth_level", r->auth_level);
871 ndr_print_uint8(ndr, "auth_pad_length", r->auth_pad_length);
872 ndr_print_uint8(ndr, "auth_reserved", r->auth_reserved);
873 ndr_print_uint32(ndr, "auth_context_id", r->auth_context_id);
874 ndr_print_DATA_BLOB(ndr, "credentials", r->credentials);
875 ndr->depth--;
878 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_auth3(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_auth3 *r)
880 if (ndr_flags & NDR_SCALARS) {
881 NDR_CHECK(ndr_push_align(ndr, 4));
882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_pad));
884 uint32_t _flags_save_DATA_BLOB = ndr->flags;
885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
886 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
887 ndr->flags = _flags_save_DATA_BLOB;
889 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
891 if (ndr_flags & NDR_BUFFERS) {
893 return NDR_ERR_SUCCESS;
896 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_auth3(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_auth3 *r)
898 if (ndr_flags & NDR_SCALARS) {
899 NDR_CHECK(ndr_pull_align(ndr, 4));
900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
902 uint32_t _flags_save_DATA_BLOB = ndr->flags;
903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
904 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
905 ndr->flags = _flags_save_DATA_BLOB;
907 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
909 if (ndr_flags & NDR_BUFFERS) {
911 return NDR_ERR_SUCCESS;
914 _PUBLIC_ void ndr_print_dcerpc_auth3(struct ndr_print *ndr, const char *name, const struct dcerpc_auth3 *r)
916 ndr_print_struct(ndr, name, "dcerpc_auth3");
917 ndr->depth++;
918 ndr_print_uint32(ndr, "_pad", r->_pad);
919 ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
920 ndr->depth--;
923 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_orphaned(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_orphaned *r)
925 if (ndr_flags & NDR_SCALARS) {
926 NDR_CHECK(ndr_push_align(ndr, 4));
927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_pad));
929 uint32_t _flags_save_DATA_BLOB = ndr->flags;
930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
931 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
932 ndr->flags = _flags_save_DATA_BLOB;
934 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
936 if (ndr_flags & NDR_BUFFERS) {
938 return NDR_ERR_SUCCESS;
941 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_orphaned(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_orphaned *r)
943 if (ndr_flags & NDR_SCALARS) {
944 NDR_CHECK(ndr_pull_align(ndr, 4));
945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
947 uint32_t _flags_save_DATA_BLOB = ndr->flags;
948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
949 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
950 ndr->flags = _flags_save_DATA_BLOB;
952 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
954 if (ndr_flags & NDR_BUFFERS) {
956 return NDR_ERR_SUCCESS;
959 _PUBLIC_ void ndr_print_dcerpc_orphaned(struct ndr_print *ndr, const char *name, const struct dcerpc_orphaned *r)
961 ndr_print_struct(ndr, name, "dcerpc_orphaned");
962 ndr->depth++;
963 ndr_print_uint32(ndr, "_pad", r->_pad);
964 ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
965 ndr->depth--;
968 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_co_cancel(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_co_cancel *r)
970 if (ndr_flags & NDR_SCALARS) {
971 NDR_CHECK(ndr_push_align(ndr, 4));
972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_pad));
974 uint32_t _flags_save_DATA_BLOB = ndr->flags;
975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
976 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->auth_info));
977 ndr->flags = _flags_save_DATA_BLOB;
979 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
981 if (ndr_flags & NDR_BUFFERS) {
983 return NDR_ERR_SUCCESS;
986 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_co_cancel(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_co_cancel *r)
988 if (ndr_flags & NDR_SCALARS) {
989 NDR_CHECK(ndr_pull_align(ndr, 4));
990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
992 uint32_t _flags_save_DATA_BLOB = ndr->flags;
993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
994 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->auth_info));
995 ndr->flags = _flags_save_DATA_BLOB;
997 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
999 if (ndr_flags & NDR_BUFFERS) {
1001 return NDR_ERR_SUCCESS;
1004 _PUBLIC_ void ndr_print_dcerpc_co_cancel(struct ndr_print *ndr, const char *name, const struct dcerpc_co_cancel *r)
1006 ndr_print_struct(ndr, name, "dcerpc_co_cancel");
1007 ndr->depth++;
1008 ndr_print_uint32(ndr, "_pad", r->_pad);
1009 ndr_print_DATA_BLOB(ndr, "auth_info", r->auth_info);
1010 ndr->depth--;
1013 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_cl_cancel(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_cl_cancel *r)
1015 if (ndr_flags & NDR_SCALARS) {
1016 NDR_CHECK(ndr_push_align(ndr, 4));
1017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
1018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id));
1019 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1021 if (ndr_flags & NDR_BUFFERS) {
1023 return NDR_ERR_SUCCESS;
1026 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_cl_cancel(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_cl_cancel *r)
1028 if (ndr_flags & NDR_SCALARS) {
1029 NDR_CHECK(ndr_pull_align(ndr, 4));
1030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id));
1032 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1034 if (ndr_flags & NDR_BUFFERS) {
1036 return NDR_ERR_SUCCESS;
1039 _PUBLIC_ void ndr_print_dcerpc_cl_cancel(struct ndr_print *ndr, const char *name, const struct dcerpc_cl_cancel *r)
1041 ndr_print_struct(ndr, name, "dcerpc_cl_cancel");
1042 ndr->depth++;
1043 ndr_print_uint32(ndr, "version", r->version);
1044 ndr_print_uint32(ndr, "id", r->id);
1045 ndr->depth--;
1048 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_cancel_ack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_cancel_ack *r)
1050 if (ndr_flags & NDR_SCALARS) {
1051 NDR_CHECK(ndr_push_align(ndr, 4));
1052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
1053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id));
1054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->server_is_accepting));
1055 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1057 if (ndr_flags & NDR_BUFFERS) {
1059 return NDR_ERR_SUCCESS;
1062 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_cancel_ack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_cancel_ack *r)
1064 if (ndr_flags & NDR_SCALARS) {
1065 NDR_CHECK(ndr_pull_align(ndr, 4));
1066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1067 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id));
1068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->server_is_accepting));
1069 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1071 if (ndr_flags & NDR_BUFFERS) {
1073 return NDR_ERR_SUCCESS;
1076 _PUBLIC_ void ndr_print_dcerpc_cancel_ack(struct ndr_print *ndr, const char *name, const struct dcerpc_cancel_ack *r)
1078 ndr_print_struct(ndr, name, "dcerpc_cancel_ack");
1079 ndr->depth++;
1080 ndr_print_uint32(ndr, "version", r->version);
1081 ndr_print_uint32(ndr, "id", r->id);
1082 ndr_print_uint32(ndr, "server_is_accepting", r->server_is_accepting);
1083 ndr->depth--;
1086 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_fack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_fack *r)
1088 uint32_t cntr_selack_0;
1089 if (ndr_flags & NDR_SCALARS) {
1090 NDR_CHECK(ndr_push_align(ndr, 4));
1091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
1092 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->_pad1));
1093 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->window_size));
1094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_tdsu));
1095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_frag_size));
1096 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->serial_no));
1097 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->selack_size));
1098 for (cntr_selack_0 = 0; cntr_selack_0 < r->selack_size; cntr_selack_0++) {
1099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->selack[cntr_selack_0]));
1101 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1103 if (ndr_flags & NDR_BUFFERS) {
1105 return NDR_ERR_SUCCESS;
1108 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_fack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_fack *r)
1110 uint32_t cntr_selack_0;
1111 TALLOC_CTX *_mem_save_selack_0;
1112 if (ndr_flags & NDR_SCALARS) {
1113 NDR_CHECK(ndr_pull_align(ndr, 4));
1114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1115 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->_pad1));
1116 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->window_size));
1117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_tdsu));
1118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_frag_size));
1119 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->serial_no));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->selack_size));
1121 NDR_PULL_ALLOC_N(ndr, r->selack, r->selack_size);
1122 _mem_save_selack_0 = NDR_PULL_GET_MEM_CTX(ndr);
1123 NDR_PULL_SET_MEM_CTX(ndr, r->selack, 0);
1124 for (cntr_selack_0 = 0; cntr_selack_0 < r->selack_size; cntr_selack_0++) {
1125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->selack[cntr_selack_0]));
1127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_selack_0, 0);
1128 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1130 if (ndr_flags & NDR_BUFFERS) {
1132 return NDR_ERR_SUCCESS;
1135 _PUBLIC_ void ndr_print_dcerpc_fack(struct ndr_print *ndr, const char *name, const struct dcerpc_fack *r)
1137 uint32_t cntr_selack_0;
1138 ndr_print_struct(ndr, name, "dcerpc_fack");
1139 ndr->depth++;
1140 ndr_print_uint32(ndr, "version", r->version);
1141 ndr_print_uint8(ndr, "_pad1", r->_pad1);
1142 ndr_print_uint16(ndr, "window_size", r->window_size);
1143 ndr_print_uint32(ndr, "max_tdsu", r->max_tdsu);
1144 ndr_print_uint32(ndr, "max_frag_size", r->max_frag_size);
1145 ndr_print_uint16(ndr, "serial_no", r->serial_no);
1146 ndr_print_uint16(ndr, "selack_size", r->selack_size);
1147 ndr->print(ndr, "%s: ARRAY(%d)", "selack", (int)r->selack_size);
1148 ndr->depth++;
1149 for (cntr_selack_0=0;cntr_selack_0<r->selack_size;cntr_selack_0++) {
1150 char *idx_0=NULL;
1151 if (asprintf(&idx_0, "[%d]", cntr_selack_0) != -1) {
1152 ndr_print_uint32(ndr, "selack", r->selack[cntr_selack_0]);
1153 free(idx_0);
1156 ndr->depth--;
1157 ndr->depth--;
1160 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_ack(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ack *r)
1162 if (ndr_flags & NDR_SCALARS) {
1163 NDR_CHECK(ndr_push_align(ndr, 1));
1164 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1166 if (ndr_flags & NDR_BUFFERS) {
1168 return NDR_ERR_SUCCESS;
1171 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_ack(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ack *r)
1173 if (ndr_flags & NDR_SCALARS) {
1174 NDR_CHECK(ndr_pull_align(ndr, 1));
1175 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1177 if (ndr_flags & NDR_BUFFERS) {
1179 return NDR_ERR_SUCCESS;
1182 _PUBLIC_ void ndr_print_dcerpc_ack(struct ndr_print *ndr, const char *name, const struct dcerpc_ack *r)
1184 ndr_print_struct(ndr, name, "dcerpc_ack");
1185 ndr->depth++;
1186 ndr->depth--;
1189 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_ping(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_ping *r)
1191 if (ndr_flags & NDR_SCALARS) {
1192 NDR_CHECK(ndr_push_align(ndr, 1));
1193 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1195 if (ndr_flags & NDR_BUFFERS) {
1197 return NDR_ERR_SUCCESS;
1200 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_ping(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_ping *r)
1202 if (ndr_flags & NDR_SCALARS) {
1203 NDR_CHECK(ndr_pull_align(ndr, 1));
1204 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1206 if (ndr_flags & NDR_BUFFERS) {
1208 return NDR_ERR_SUCCESS;
1211 _PUBLIC_ void ndr_print_dcerpc_ping(struct ndr_print *ndr, const char *name, const struct dcerpc_ping *r)
1213 ndr_print_struct(ndr, name, "dcerpc_ping");
1214 ndr->depth++;
1215 ndr->depth--;
1218 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_shutdown(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_shutdown *r)
1220 if (ndr_flags & NDR_SCALARS) {
1221 NDR_CHECK(ndr_push_align(ndr, 1));
1222 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1224 if (ndr_flags & NDR_BUFFERS) {
1226 return NDR_ERR_SUCCESS;
1229 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_shutdown(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_shutdown *r)
1231 if (ndr_flags & NDR_SCALARS) {
1232 NDR_CHECK(ndr_pull_align(ndr, 1));
1233 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1235 if (ndr_flags & NDR_BUFFERS) {
1237 return NDR_ERR_SUCCESS;
1240 _PUBLIC_ void ndr_print_dcerpc_shutdown(struct ndr_print *ndr, const char *name, const struct dcerpc_shutdown *r)
1242 ndr_print_struct(ndr, name, "dcerpc_shutdown");
1243 ndr->depth++;
1244 ndr->depth--;
1247 _PUBLIC_ enum ndr_err_code ndr_push_dcerpc_working(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_working *r)
1249 if (ndr_flags & NDR_SCALARS) {
1250 NDR_CHECK(ndr_push_align(ndr, 1));
1251 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
1253 if (ndr_flags & NDR_BUFFERS) {
1255 return NDR_ERR_SUCCESS;
1258 _PUBLIC_ enum ndr_err_code ndr_pull_dcerpc_working(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_working *r)
1260 if (ndr_flags & NDR_SCALARS) {
1261 NDR_CHECK(ndr_pull_align(ndr, 1));
1262 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
1264 if (ndr_flags & NDR_BUFFERS) {
1266 return NDR_ERR_SUCCESS;
1269 _PUBLIC_ void ndr_print_dcerpc_working(struct ndr_print *ndr, const char *name, const struct dcerpc_working *r)
1271 ndr_print_struct(ndr, name, "dcerpc_working");
1272 ndr->depth++;
1273 ndr->depth--;
1276 static enum ndr_err_code ndr_push_dcerpc_pkt_type(struct ndr_push *ndr, int ndr_flags, enum dcerpc_pkt_type r)
1278 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
1279 return NDR_ERR_SUCCESS;
1282 static enum ndr_err_code ndr_pull_dcerpc_pkt_type(struct ndr_pull *ndr, int ndr_flags, enum dcerpc_pkt_type *r)
1284 uint8_t v;
1285 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
1286 *r = v;
1287 return NDR_ERR_SUCCESS;
1290 _PUBLIC_ void ndr_print_dcerpc_pkt_type(struct ndr_print *ndr, const char *name, enum dcerpc_pkt_type r)
1292 const char *val = NULL;
1294 switch (r) {
1295 case DCERPC_PKT_REQUEST: val = "DCERPC_PKT_REQUEST"; break;
1296 case DCERPC_PKT_PING: val = "DCERPC_PKT_PING"; break;
1297 case DCERPC_PKT_RESPONSE: val = "DCERPC_PKT_RESPONSE"; break;
1298 case DCERPC_PKT_FAULT: val = "DCERPC_PKT_FAULT"; break;
1299 case DCERPC_PKT_WORKING: val = "DCERPC_PKT_WORKING"; break;
1300 case DCERPC_PKT_NOCALL: val = "DCERPC_PKT_NOCALL"; break;
1301 case DCERPC_PKT_REJECT: val = "DCERPC_PKT_REJECT"; break;
1302 case DCERPC_PKT_ACK: val = "DCERPC_PKT_ACK"; break;
1303 case DCERPC_PKT_CL_CANCEL: val = "DCERPC_PKT_CL_CANCEL"; break;
1304 case DCERPC_PKT_FACK: val = "DCERPC_PKT_FACK"; break;
1305 case DCERPC_PKT_CANCEL_ACK: val = "DCERPC_PKT_CANCEL_ACK"; break;
1306 case DCERPC_PKT_BIND: val = "DCERPC_PKT_BIND"; break;
1307 case DCERPC_PKT_BIND_ACK: val = "DCERPC_PKT_BIND_ACK"; break;
1308 case DCERPC_PKT_BIND_NAK: val = "DCERPC_PKT_BIND_NAK"; break;
1309 case DCERPC_PKT_ALTER: val = "DCERPC_PKT_ALTER"; break;
1310 case DCERPC_PKT_ALTER_RESP: val = "DCERPC_PKT_ALTER_RESP"; break;
1311 case DCERPC_PKT_AUTH3: val = "DCERPC_PKT_AUTH3"; break;
1312 case DCERPC_PKT_SHUTDOWN: val = "DCERPC_PKT_SHUTDOWN"; break;
1313 case DCERPC_PKT_CO_CANCEL: val = "DCERPC_PKT_CO_CANCEL"; break;
1314 case DCERPC_PKT_ORPHANED: val = "DCERPC_PKT_ORPHANED"; break;
1316 ndr_print_enum(ndr, name, "ENUM", val, r);
1319 static enum ndr_err_code ndr_push_dcerpc_payload(struct ndr_push *ndr, int ndr_flags, const union dcerpc_payload *r)
1321 if (ndr_flags & NDR_SCALARS) {
1322 int level = ndr_push_get_switch_value(ndr, r);
1323 NDR_CHECK(ndr_push_union_align(ndr, 4));
1324 switch (level) {
1325 case DCERPC_PKT_REQUEST: {
1326 NDR_CHECK(ndr_push_dcerpc_request(ndr, NDR_SCALARS, &r->request));
1327 break; }
1329 case DCERPC_PKT_PING: {
1330 NDR_CHECK(ndr_push_dcerpc_ping(ndr, NDR_SCALARS, &r->ping));
1331 break; }
1333 case DCERPC_PKT_RESPONSE: {
1334 NDR_CHECK(ndr_push_dcerpc_response(ndr, NDR_SCALARS, &r->response));
1335 break; }
1337 case DCERPC_PKT_FAULT: {
1338 NDR_CHECK(ndr_push_dcerpc_fault(ndr, NDR_SCALARS, &r->fault));
1339 break; }
1341 case DCERPC_PKT_WORKING: {
1342 NDR_CHECK(ndr_push_dcerpc_working(ndr, NDR_SCALARS, &r->working));
1343 break; }
1345 case DCERPC_PKT_NOCALL: {
1346 NDR_CHECK(ndr_push_dcerpc_fack(ndr, NDR_SCALARS, &r->nocall));
1347 break; }
1349 case DCERPC_PKT_REJECT: {
1350 NDR_CHECK(ndr_push_dcerpc_fault(ndr, NDR_SCALARS, &r->reject));
1351 break; }
1353 case DCERPC_PKT_ACK: {
1354 NDR_CHECK(ndr_push_dcerpc_ack(ndr, NDR_SCALARS, &r->ack));
1355 break; }
1357 case DCERPC_PKT_CL_CANCEL: {
1358 NDR_CHECK(ndr_push_dcerpc_cl_cancel(ndr, NDR_SCALARS, &r->cl_cancel));
1359 break; }
1361 case DCERPC_PKT_FACK: {
1362 NDR_CHECK(ndr_push_dcerpc_fack(ndr, NDR_SCALARS, &r->fack));
1363 break; }
1365 case DCERPC_PKT_CANCEL_ACK: {
1366 NDR_CHECK(ndr_push_dcerpc_cancel_ack(ndr, NDR_SCALARS, &r->cancel_ack));
1367 break; }
1369 case DCERPC_PKT_BIND: {
1370 NDR_CHECK(ndr_push_dcerpc_bind(ndr, NDR_SCALARS, &r->bind));
1371 break; }
1373 case DCERPC_PKT_BIND_ACK: {
1374 NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->bind_ack));
1375 break; }
1377 case DCERPC_PKT_BIND_NAK: {
1378 NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr, NDR_SCALARS, &r->bind_nak));
1379 break; }
1381 case DCERPC_PKT_ALTER: {
1382 NDR_CHECK(ndr_push_dcerpc_bind(ndr, NDR_SCALARS, &r->alter));
1383 break; }
1385 case DCERPC_PKT_ALTER_RESP: {
1386 NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->alter_resp));
1387 break; }
1389 case DCERPC_PKT_SHUTDOWN: {
1390 NDR_CHECK(ndr_push_dcerpc_shutdown(ndr, NDR_SCALARS, &r->shutdown));
1391 break; }
1393 case DCERPC_PKT_CO_CANCEL: {
1394 NDR_CHECK(ndr_push_dcerpc_co_cancel(ndr, NDR_SCALARS, &r->co_cancel));
1395 break; }
1397 case DCERPC_PKT_ORPHANED: {
1398 NDR_CHECK(ndr_push_dcerpc_orphaned(ndr, NDR_SCALARS, &r->orphaned));
1399 break; }
1401 case DCERPC_PKT_AUTH3: {
1402 NDR_CHECK(ndr_push_dcerpc_auth3(ndr, NDR_SCALARS, &r->auth3));
1403 break; }
1405 default:
1406 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1409 if (ndr_flags & NDR_BUFFERS) {
1410 int level = ndr_push_get_switch_value(ndr, r);
1411 switch (level) {
1412 case DCERPC_PKT_REQUEST:
1413 break;
1415 case DCERPC_PKT_PING:
1416 break;
1418 case DCERPC_PKT_RESPONSE:
1419 break;
1421 case DCERPC_PKT_FAULT:
1422 break;
1424 case DCERPC_PKT_WORKING:
1425 break;
1427 case DCERPC_PKT_NOCALL:
1428 break;
1430 case DCERPC_PKT_REJECT:
1431 break;
1433 case DCERPC_PKT_ACK:
1434 break;
1436 case DCERPC_PKT_CL_CANCEL:
1437 break;
1439 case DCERPC_PKT_FACK:
1440 break;
1442 case DCERPC_PKT_CANCEL_ACK:
1443 break;
1445 case DCERPC_PKT_BIND:
1446 break;
1448 case DCERPC_PKT_BIND_ACK:
1449 break;
1451 case DCERPC_PKT_BIND_NAK:
1452 NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr, NDR_BUFFERS, &r->bind_nak));
1453 break;
1455 case DCERPC_PKT_ALTER:
1456 break;
1458 case DCERPC_PKT_ALTER_RESP:
1459 break;
1461 case DCERPC_PKT_SHUTDOWN:
1462 break;
1464 case DCERPC_PKT_CO_CANCEL:
1465 break;
1467 case DCERPC_PKT_ORPHANED:
1468 break;
1470 case DCERPC_PKT_AUTH3:
1471 break;
1473 default:
1474 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1477 return NDR_ERR_SUCCESS;
1480 static enum ndr_err_code ndr_pull_dcerpc_payload(struct ndr_pull *ndr, int ndr_flags, union dcerpc_payload *r)
1482 int level;
1483 level = ndr_pull_get_switch_value(ndr, r);
1484 if (ndr_flags & NDR_SCALARS) {
1485 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1486 switch (level) {
1487 case DCERPC_PKT_REQUEST: {
1488 NDR_CHECK(ndr_pull_dcerpc_request(ndr, NDR_SCALARS, &r->request));
1489 break; }
1491 case DCERPC_PKT_PING: {
1492 NDR_CHECK(ndr_pull_dcerpc_ping(ndr, NDR_SCALARS, &r->ping));
1493 break; }
1495 case DCERPC_PKT_RESPONSE: {
1496 NDR_CHECK(ndr_pull_dcerpc_response(ndr, NDR_SCALARS, &r->response));
1497 break; }
1499 case DCERPC_PKT_FAULT: {
1500 NDR_CHECK(ndr_pull_dcerpc_fault(ndr, NDR_SCALARS, &r->fault));
1501 break; }
1503 case DCERPC_PKT_WORKING: {
1504 NDR_CHECK(ndr_pull_dcerpc_working(ndr, NDR_SCALARS, &r->working));
1505 break; }
1507 case DCERPC_PKT_NOCALL: {
1508 NDR_CHECK(ndr_pull_dcerpc_fack(ndr, NDR_SCALARS, &r->nocall));
1509 break; }
1511 case DCERPC_PKT_REJECT: {
1512 NDR_CHECK(ndr_pull_dcerpc_fault(ndr, NDR_SCALARS, &r->reject));
1513 break; }
1515 case DCERPC_PKT_ACK: {
1516 NDR_CHECK(ndr_pull_dcerpc_ack(ndr, NDR_SCALARS, &r->ack));
1517 break; }
1519 case DCERPC_PKT_CL_CANCEL: {
1520 NDR_CHECK(ndr_pull_dcerpc_cl_cancel(ndr, NDR_SCALARS, &r->cl_cancel));
1521 break; }
1523 case DCERPC_PKT_FACK: {
1524 NDR_CHECK(ndr_pull_dcerpc_fack(ndr, NDR_SCALARS, &r->fack));
1525 break; }
1527 case DCERPC_PKT_CANCEL_ACK: {
1528 NDR_CHECK(ndr_pull_dcerpc_cancel_ack(ndr, NDR_SCALARS, &r->cancel_ack));
1529 break; }
1531 case DCERPC_PKT_BIND: {
1532 NDR_CHECK(ndr_pull_dcerpc_bind(ndr, NDR_SCALARS, &r->bind));
1533 break; }
1535 case DCERPC_PKT_BIND_ACK: {
1536 NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->bind_ack));
1537 break; }
1539 case DCERPC_PKT_BIND_NAK: {
1540 NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr, NDR_SCALARS, &r->bind_nak));
1541 break; }
1543 case DCERPC_PKT_ALTER: {
1544 NDR_CHECK(ndr_pull_dcerpc_bind(ndr, NDR_SCALARS, &r->alter));
1545 break; }
1547 case DCERPC_PKT_ALTER_RESP: {
1548 NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr, NDR_SCALARS, &r->alter_resp));
1549 break; }
1551 case DCERPC_PKT_SHUTDOWN: {
1552 NDR_CHECK(ndr_pull_dcerpc_shutdown(ndr, NDR_SCALARS, &r->shutdown));
1553 break; }
1555 case DCERPC_PKT_CO_CANCEL: {
1556 NDR_CHECK(ndr_pull_dcerpc_co_cancel(ndr, NDR_SCALARS, &r->co_cancel));
1557 break; }
1559 case DCERPC_PKT_ORPHANED: {
1560 NDR_CHECK(ndr_pull_dcerpc_orphaned(ndr, NDR_SCALARS, &r->orphaned));
1561 break; }
1563 case DCERPC_PKT_AUTH3: {
1564 NDR_CHECK(ndr_pull_dcerpc_auth3(ndr, NDR_SCALARS, &r->auth3));
1565 break; }
1567 default:
1568 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1571 if (ndr_flags & NDR_BUFFERS) {
1572 switch (level) {
1573 case DCERPC_PKT_REQUEST:
1574 break;
1576 case DCERPC_PKT_PING:
1577 break;
1579 case DCERPC_PKT_RESPONSE:
1580 break;
1582 case DCERPC_PKT_FAULT:
1583 break;
1585 case DCERPC_PKT_WORKING:
1586 break;
1588 case DCERPC_PKT_NOCALL:
1589 break;
1591 case DCERPC_PKT_REJECT:
1592 break;
1594 case DCERPC_PKT_ACK:
1595 break;
1597 case DCERPC_PKT_CL_CANCEL:
1598 break;
1600 case DCERPC_PKT_FACK:
1601 break;
1603 case DCERPC_PKT_CANCEL_ACK:
1604 break;
1606 case DCERPC_PKT_BIND:
1607 break;
1609 case DCERPC_PKT_BIND_ACK:
1610 break;
1612 case DCERPC_PKT_BIND_NAK:
1613 NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr, NDR_BUFFERS, &r->bind_nak));
1614 break;
1616 case DCERPC_PKT_ALTER:
1617 break;
1619 case DCERPC_PKT_ALTER_RESP:
1620 break;
1622 case DCERPC_PKT_SHUTDOWN:
1623 break;
1625 case DCERPC_PKT_CO_CANCEL:
1626 break;
1628 case DCERPC_PKT_ORPHANED:
1629 break;
1631 case DCERPC_PKT_AUTH3:
1632 break;
1634 default:
1635 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1638 return NDR_ERR_SUCCESS;
1641 _PUBLIC_ void ndr_print_dcerpc_payload(struct ndr_print *ndr, const char *name, const union dcerpc_payload *r)
1643 int level;
1644 level = ndr_print_get_switch_value(ndr, r);
1645 ndr_print_union(ndr, name, level, "dcerpc_payload");
1646 switch (level) {
1647 case DCERPC_PKT_REQUEST:
1648 ndr_print_dcerpc_request(ndr, "request", &r->request);
1649 break;
1651 case DCERPC_PKT_PING:
1652 ndr_print_dcerpc_ping(ndr, "ping", &r->ping);
1653 break;
1655 case DCERPC_PKT_RESPONSE:
1656 ndr_print_dcerpc_response(ndr, "response", &r->response);
1657 break;
1659 case DCERPC_PKT_FAULT:
1660 ndr_print_dcerpc_fault(ndr, "fault", &r->fault);
1661 break;
1663 case DCERPC_PKT_WORKING:
1664 ndr_print_dcerpc_working(ndr, "working", &r->working);
1665 break;
1667 case DCERPC_PKT_NOCALL:
1668 ndr_print_dcerpc_fack(ndr, "nocall", &r->nocall);
1669 break;
1671 case DCERPC_PKT_REJECT:
1672 ndr_print_dcerpc_fault(ndr, "reject", &r->reject);
1673 break;
1675 case DCERPC_PKT_ACK:
1676 ndr_print_dcerpc_ack(ndr, "ack", &r->ack);
1677 break;
1679 case DCERPC_PKT_CL_CANCEL:
1680 ndr_print_dcerpc_cl_cancel(ndr, "cl_cancel", &r->cl_cancel);
1681 break;
1683 case DCERPC_PKT_FACK:
1684 ndr_print_dcerpc_fack(ndr, "fack", &r->fack);
1685 break;
1687 case DCERPC_PKT_CANCEL_ACK:
1688 ndr_print_dcerpc_cancel_ack(ndr, "cancel_ack", &r->cancel_ack);
1689 break;
1691 case DCERPC_PKT_BIND:
1692 ndr_print_dcerpc_bind(ndr, "bind", &r->bind);
1693 break;
1695 case DCERPC_PKT_BIND_ACK:
1696 ndr_print_dcerpc_bind_ack(ndr, "bind_ack", &r->bind_ack);
1697 break;
1699 case DCERPC_PKT_BIND_NAK:
1700 ndr_print_dcerpc_bind_nak(ndr, "bind_nak", &r->bind_nak);
1701 break;
1703 case DCERPC_PKT_ALTER:
1704 ndr_print_dcerpc_bind(ndr, "alter", &r->alter);
1705 break;
1707 case DCERPC_PKT_ALTER_RESP:
1708 ndr_print_dcerpc_bind_ack(ndr, "alter_resp", &r->alter_resp);
1709 break;
1711 case DCERPC_PKT_SHUTDOWN:
1712 ndr_print_dcerpc_shutdown(ndr, "shutdown", &r->shutdown);
1713 break;
1715 case DCERPC_PKT_CO_CANCEL:
1716 ndr_print_dcerpc_co_cancel(ndr, "co_cancel", &r->co_cancel);
1717 break;
1719 case DCERPC_PKT_ORPHANED:
1720 ndr_print_dcerpc_orphaned(ndr, "orphaned", &r->orphaned);
1721 break;
1723 case DCERPC_PKT_AUTH3:
1724 ndr_print_dcerpc_auth3(ndr, "auth3", &r->auth3);
1725 break;
1727 default:
1728 ndr_print_bad_level(ndr, name, level);
1732 _PUBLIC_ enum ndr_err_code ndr_push_ncacn_packet(struct ndr_push *ndr, int ndr_flags, const struct ncacn_packet *r)
1734 if (ndr_flags & NDR_SCALARS) {
1735 NDR_CHECK(ndr_push_align(ndr, 4));
1736 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rpc_vers));
1737 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rpc_vers_minor));
1738 NDR_CHECK(ndr_push_dcerpc_pkt_type(ndr, NDR_SCALARS, r->ptype));
1739 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pfc_flags));
1740 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->drep, 4));
1741 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->frag_length));
1742 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->auth_length));
1743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->call_id));
1744 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->ptype));
1745 NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1746 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1748 if (ndr_flags & NDR_BUFFERS) {
1749 NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1751 return NDR_ERR_SUCCESS;
1754 _PUBLIC_ enum ndr_err_code ndr_pull_ncacn_packet(struct ndr_pull *ndr, int ndr_flags, struct ncacn_packet *r)
1756 if (ndr_flags & NDR_SCALARS) {
1757 NDR_CHECK(ndr_pull_align(ndr, 4));
1758 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rpc_vers));
1759 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rpc_vers_minor));
1760 NDR_CHECK(ndr_pull_dcerpc_pkt_type(ndr, NDR_SCALARS, &r->ptype));
1761 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pfc_flags));
1762 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->drep, 4));
1763 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->frag_length));
1764 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->auth_length));
1765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->call_id));
1766 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->ptype));
1767 NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1768 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1770 if (ndr_flags & NDR_BUFFERS) {
1771 NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1773 return NDR_ERR_SUCCESS;
1776 _PUBLIC_ void ndr_print_ncacn_packet(struct ndr_print *ndr, const char *name, const struct ncacn_packet *r)
1778 ndr_print_struct(ndr, name, "ncacn_packet");
1779 ndr->depth++;
1780 ndr_print_uint8(ndr, "rpc_vers", r->rpc_vers);
1781 ndr_print_uint8(ndr, "rpc_vers_minor", r->rpc_vers_minor);
1782 ndr_print_dcerpc_pkt_type(ndr, "ptype", r->ptype);
1783 ndr_print_uint8(ndr, "pfc_flags", r->pfc_flags);
1784 ndr_print_array_uint8(ndr, "drep", r->drep, 4);
1785 ndr_print_uint16(ndr, "frag_length", r->frag_length);
1786 ndr_print_uint16(ndr, "auth_length", r->auth_length);
1787 ndr_print_uint32(ndr, "call_id", r->call_id);
1788 ndr_print_set_switch_value(ndr, &r->u, r->ptype);
1789 ndr_print_dcerpc_payload(ndr, "u", &r->u);
1790 ndr->depth--;
1793 _PUBLIC_ enum ndr_err_code ndr_push_ncadg_packet(struct ndr_push *ndr, int ndr_flags, const struct ncadg_packet *r)
1795 if (ndr_flags & NDR_SCALARS) {
1796 NDR_CHECK(ndr_push_align(ndr, 4));
1797 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->rpc_vers));
1798 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ptype));
1799 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pfc_flags));
1800 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ncadg_flags));
1801 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->drep, 3));
1802 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->serial_high));
1803 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->object));
1804 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->iface));
1805 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->activity));
1806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->server_boot));
1807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iface_version));
1808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->seq_num));
1809 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opnum));
1810 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ihint));
1811 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ahint));
1812 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->len));
1813 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->fragnum));
1814 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auth_proto));
1815 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->serial_low));
1816 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->ptype));
1817 NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1818 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1820 if (ndr_flags & NDR_BUFFERS) {
1821 NDR_CHECK(ndr_push_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1823 return NDR_ERR_SUCCESS;
1826 _PUBLIC_ enum ndr_err_code ndr_pull_ncadg_packet(struct ndr_pull *ndr, int ndr_flags, struct ncadg_packet *r)
1828 if (ndr_flags & NDR_SCALARS) {
1829 NDR_CHECK(ndr_pull_align(ndr, 4));
1830 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->rpc_vers));
1831 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ptype));
1832 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pfc_flags));
1833 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ncadg_flags));
1834 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->drep, 3));
1835 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->serial_high));
1836 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->object));
1837 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->iface));
1838 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->activity));
1839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->server_boot));
1840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iface_version));
1841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->seq_num));
1842 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opnum));
1843 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ihint));
1844 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ahint));
1845 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->len));
1846 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->fragnum));
1847 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auth_proto));
1848 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->serial_low));
1849 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->ptype));
1850 NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_SCALARS, &r->u));
1851 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1853 if (ndr_flags & NDR_BUFFERS) {
1854 NDR_CHECK(ndr_pull_dcerpc_payload(ndr, NDR_BUFFERS, &r->u));
1856 return NDR_ERR_SUCCESS;
1859 _PUBLIC_ void ndr_print_ncadg_packet(struct ndr_print *ndr, const char *name, const struct ncadg_packet *r)
1861 ndr_print_struct(ndr, name, "ncadg_packet");
1862 ndr->depth++;
1863 ndr_print_uint8(ndr, "rpc_vers", r->rpc_vers);
1864 ndr_print_uint8(ndr, "ptype", r->ptype);
1865 ndr_print_uint8(ndr, "pfc_flags", r->pfc_flags);
1866 ndr_print_uint8(ndr, "ncadg_flags", r->ncadg_flags);
1867 ndr_print_array_uint8(ndr, "drep", r->drep, 3);
1868 ndr_print_uint8(ndr, "serial_high", r->serial_high);
1869 ndr_print_GUID(ndr, "object", &r->object);
1870 ndr_print_GUID(ndr, "iface", &r->iface);
1871 ndr_print_GUID(ndr, "activity", &r->activity);
1872 ndr_print_uint32(ndr, "server_boot", r->server_boot);
1873 ndr_print_uint32(ndr, "iface_version", r->iface_version);
1874 ndr_print_uint32(ndr, "seq_num", r->seq_num);
1875 ndr_print_uint16(ndr, "opnum", r->opnum);
1876 ndr_print_uint16(ndr, "ihint", r->ihint);
1877 ndr_print_uint16(ndr, "ahint", r->ahint);
1878 ndr_print_uint16(ndr, "len", r->len);
1879 ndr_print_uint16(ndr, "fragnum", r->fragnum);
1880 ndr_print_uint8(ndr, "auth_proto", r->auth_proto);
1881 ndr_print_uint8(ndr, "serial_low", r->serial_low);
1882 ndr_print_set_switch_value(ndr, &r->u, r->ptype);
1883 ndr_print_dcerpc_payload(ndr, "u", &r->u);
1884 ndr->depth--;