1 /* parser auto-generated by pidl */
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");
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
);
58 for (cntr_transfer_syntaxes_0
=0;cntr_transfer_syntaxes_0
<r
->num_transfer_syntaxes
;cntr_transfer_syntaxes_0
++) {
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
]);
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_REMAINING
);
84 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->auth_info
));
85 ndr
->flags
= _flags_save_DATA_BLOB
;
87 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
89 if (ndr_flags
& NDR_BUFFERS
) {
91 return NDR_ERR_SUCCESS
;
94 static enum ndr_err_code
ndr_pull_dcerpc_bind(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_bind
*r
)
96 uint32_t cntr_ctx_list_0
;
97 TALLOC_CTX
*_mem_save_ctx_list_0
;
98 if (ndr_flags
& NDR_SCALARS
) {
99 NDR_CHECK(ndr_pull_align(ndr
, 4));
100 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_xmit_frag
));
101 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_recv_frag
));
102 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->assoc_group_id
));
103 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->num_contexts
));
104 NDR_PULL_ALLOC_N(ndr
, r
->ctx_list
, r
->num_contexts
);
105 _mem_save_ctx_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
106 NDR_PULL_SET_MEM_CTX(ndr
, r
->ctx_list
, 0);
107 for (cntr_ctx_list_0
= 0; cntr_ctx_list_0
< r
->num_contexts
; cntr_ctx_list_0
++) {
108 NDR_CHECK(ndr_pull_dcerpc_ctx_list(ndr
, NDR_SCALARS
, &r
->ctx_list
[cntr_ctx_list_0
]));
110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctx_list_0
, 0);
112 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
113 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
114 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->auth_info
));
115 ndr
->flags
= _flags_save_DATA_BLOB
;
117 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
119 if (ndr_flags
& NDR_BUFFERS
) {
121 return NDR_ERR_SUCCESS
;
124 _PUBLIC_
void ndr_print_dcerpc_bind(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_bind
*r
)
126 uint32_t cntr_ctx_list_0
;
127 ndr_print_struct(ndr
, name
, "dcerpc_bind");
129 ndr_print_uint16(ndr
, "max_xmit_frag", r
->max_xmit_frag
);
130 ndr_print_uint16(ndr
, "max_recv_frag", r
->max_recv_frag
);
131 ndr_print_uint32(ndr
, "assoc_group_id", r
->assoc_group_id
);
132 ndr_print_uint8(ndr
, "num_contexts", r
->num_contexts
);
133 ndr
->print(ndr
, "%s: ARRAY(%d)", "ctx_list", (int)r
->num_contexts
);
135 for (cntr_ctx_list_0
=0;cntr_ctx_list_0
<r
->num_contexts
;cntr_ctx_list_0
++) {
137 if (asprintf(&idx_0
, "[%d]", cntr_ctx_list_0
) != -1) {
138 ndr_print_dcerpc_ctx_list(ndr
, "ctx_list", &r
->ctx_list
[cntr_ctx_list_0
]);
143 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
147 static enum ndr_err_code
ndr_push_dcerpc_empty(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_empty
*r
)
149 if (ndr_flags
& NDR_SCALARS
) {
150 NDR_CHECK(ndr_push_align(ndr
, 1));
151 NDR_CHECK(ndr_push_trailer_align(ndr
, 1));
153 if (ndr_flags
& NDR_BUFFERS
) {
155 return NDR_ERR_SUCCESS
;
158 static enum ndr_err_code
ndr_pull_dcerpc_empty(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_empty
*r
)
160 if (ndr_flags
& NDR_SCALARS
) {
161 NDR_CHECK(ndr_pull_align(ndr
, 1));
162 NDR_CHECK(ndr_pull_trailer_align(ndr
, 1));
164 if (ndr_flags
& NDR_BUFFERS
) {
166 return NDR_ERR_SUCCESS
;
169 _PUBLIC_
void ndr_print_dcerpc_empty(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_empty
*r
)
171 ndr_print_struct(ndr
, name
, "dcerpc_empty");
176 static enum ndr_err_code
ndr_push_dcerpc_object(struct ndr_push
*ndr
, int ndr_flags
, const union dcerpc_object
*r
)
178 if (ndr_flags
& NDR_SCALARS
) {
179 int level
= ndr_push_get_switch_value(ndr
, r
);
180 NDR_CHECK(ndr_push_union_align(ndr
, 4));
183 NDR_CHECK(ndr_push_dcerpc_empty(ndr
, NDR_SCALARS
, &r
->empty
));
186 case LIBNDR_FLAG_OBJECT_PRESENT
: {
187 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->object
));
192 if (ndr_flags
& NDR_BUFFERS
) {
193 int level
= ndr_push_get_switch_value(ndr
, r
);
198 case LIBNDR_FLAG_OBJECT_PRESENT
:
203 return NDR_ERR_SUCCESS
;
206 static enum ndr_err_code
ndr_pull_dcerpc_object(struct ndr_pull
*ndr
, int ndr_flags
, union dcerpc_object
*r
)
209 level
= ndr_pull_get_switch_value(ndr
, r
);
210 if (ndr_flags
& NDR_SCALARS
) {
211 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
214 NDR_CHECK(ndr_pull_dcerpc_empty(ndr
, NDR_SCALARS
, &r
->empty
));
217 case LIBNDR_FLAG_OBJECT_PRESENT
: {
218 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->object
));
223 if (ndr_flags
& NDR_BUFFERS
) {
228 case LIBNDR_FLAG_OBJECT_PRESENT
:
233 return NDR_ERR_SUCCESS
;
236 _PUBLIC_
void ndr_print_dcerpc_object(struct ndr_print
*ndr
, const char *name
, const union dcerpc_object
*r
)
239 level
= ndr_print_get_switch_value(ndr
, r
);
240 ndr_print_union(ndr
, name
, level
, "dcerpc_object");
243 ndr_print_dcerpc_empty(ndr
, "empty", &r
->empty
);
246 case LIBNDR_FLAG_OBJECT_PRESENT
:
247 ndr_print_GUID(ndr
, "object", &r
->object
);
253 static enum ndr_err_code
ndr_push_dcerpc_request(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_request
*r
)
255 if (ndr_flags
& NDR_SCALARS
) {
256 NDR_CHECK(ndr_push_align(ndr
, 4));
257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->alloc_hint
));
258 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->context_id
));
259 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->opnum
));
260 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->object
, ndr
->flags
& LIBNDR_FLAG_OBJECT_PRESENT
));
261 NDR_CHECK(ndr_push_dcerpc_object(ndr
, NDR_SCALARS
, &r
->object
));
263 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
264 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
265 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
266 ndr
->flags
= _flags_save_DATA_BLOB
;
269 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
271 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->stub_and_verifier
));
272 ndr
->flags
= _flags_save_DATA_BLOB
;
274 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
276 if (ndr_flags
& NDR_BUFFERS
) {
278 return NDR_ERR_SUCCESS
;
281 static enum ndr_err_code
ndr_pull_dcerpc_request(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_request
*r
)
283 if (ndr_flags
& NDR_SCALARS
) {
284 NDR_CHECK(ndr_pull_align(ndr
, 4));
285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->alloc_hint
));
286 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->context_id
));
287 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->opnum
));
288 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->object
, ndr
->flags
& LIBNDR_FLAG_OBJECT_PRESENT
));
289 NDR_CHECK(ndr_pull_dcerpc_object(ndr
, NDR_SCALARS
, &r
->object
));
291 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
293 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
294 ndr
->flags
= _flags_save_DATA_BLOB
;
297 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
298 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
299 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->stub_and_verifier
));
300 ndr
->flags
= _flags_save_DATA_BLOB
;
302 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
304 if (ndr_flags
& NDR_BUFFERS
) {
306 return NDR_ERR_SUCCESS
;
309 _PUBLIC_
void ndr_print_dcerpc_request(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_request
*r
)
311 ndr_print_struct(ndr
, name
, "dcerpc_request");
313 ndr_print_uint32(ndr
, "alloc_hint", r
->alloc_hint
);
314 ndr_print_uint16(ndr
, "context_id", r
->context_id
);
315 ndr_print_uint16(ndr
, "opnum", r
->opnum
);
316 ndr_print_set_switch_value(ndr
, &r
->object
, ndr
->flags
& LIBNDR_FLAG_OBJECT_PRESENT
);
317 ndr_print_dcerpc_object(ndr
, "object", &r
->object
);
318 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
319 ndr_print_DATA_BLOB(ndr
, "stub_and_verifier", r
->stub_and_verifier
);
323 static enum ndr_err_code
ndr_push_dcerpc_ack_ctx(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_ack_ctx
*r
)
325 if (ndr_flags
& NDR_SCALARS
) {
326 NDR_CHECK(ndr_push_align(ndr
, 4));
327 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->result
));
328 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->reason
));
329 NDR_CHECK(ndr_push_ndr_syntax_id(ndr
, NDR_SCALARS
, &r
->syntax
));
330 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
332 if (ndr_flags
& NDR_BUFFERS
) {
334 return NDR_ERR_SUCCESS
;
337 static enum ndr_err_code
ndr_pull_dcerpc_ack_ctx(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_ack_ctx
*r
)
339 if (ndr_flags
& NDR_SCALARS
) {
340 NDR_CHECK(ndr_pull_align(ndr
, 4));
341 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->result
));
342 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->reason
));
343 NDR_CHECK(ndr_pull_ndr_syntax_id(ndr
, NDR_SCALARS
, &r
->syntax
));
344 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
346 if (ndr_flags
& NDR_BUFFERS
) {
348 return NDR_ERR_SUCCESS
;
351 _PUBLIC_
void ndr_print_dcerpc_ack_ctx(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_ack_ctx
*r
)
353 ndr_print_struct(ndr
, name
, "dcerpc_ack_ctx");
355 ndr_print_uint16(ndr
, "result", r
->result
);
356 ndr_print_uint16(ndr
, "reason", r
->reason
);
357 ndr_print_ndr_syntax_id(ndr
, "syntax", &r
->syntax
);
361 static enum ndr_err_code
ndr_push_dcerpc_bind_ack(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_bind_ack
*r
)
363 uint32_t cntr_ctx_list_0
;
364 if (ndr_flags
& NDR_SCALARS
) {
365 NDR_CHECK(ndr_push_align(ndr
, 4));
366 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_xmit_frag
));
367 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_recv_frag
));
368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->assoc_group_id
));
369 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen(r
->secondary_address
) + 1));
370 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->secondary_address
, strlen(r
->secondary_address
) + 1, sizeof(uint8_t), CH_DOS
));
372 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
373 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
374 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad1
));
375 ndr
->flags
= _flags_save_DATA_BLOB
;
377 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->num_results
));
378 for (cntr_ctx_list_0
= 0; cntr_ctx_list_0
< r
->num_results
; cntr_ctx_list_0
++) {
379 NDR_CHECK(ndr_push_dcerpc_ack_ctx(ndr
, NDR_SCALARS
, &r
->ctx_list
[cntr_ctx_list_0
]));
382 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
384 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->auth_info
));
385 ndr
->flags
= _flags_save_DATA_BLOB
;
387 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
389 if (ndr_flags
& NDR_BUFFERS
) {
391 return NDR_ERR_SUCCESS
;
394 static enum ndr_err_code
ndr_pull_dcerpc_bind_ack(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_bind_ack
*r
)
396 uint32_t cntr_ctx_list_0
;
397 TALLOC_CTX
*_mem_save_ctx_list_0
;
398 if (ndr_flags
& NDR_SCALARS
) {
399 NDR_CHECK(ndr_pull_align(ndr
, 4));
400 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_xmit_frag
));
401 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_recv_frag
));
402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->assoc_group_id
));
403 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->secondary_address_size
));
404 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->secondary_address
, r
->secondary_address_size
, sizeof(uint8_t), CH_DOS
));
406 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
407 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
408 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad1
));
409 ndr
->flags
= _flags_save_DATA_BLOB
;
411 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->num_results
));
412 NDR_PULL_ALLOC_N(ndr
, r
->ctx_list
, r
->num_results
);
413 _mem_save_ctx_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
414 NDR_PULL_SET_MEM_CTX(ndr
, r
->ctx_list
, 0);
415 for (cntr_ctx_list_0
= 0; cntr_ctx_list_0
< r
->num_results
; cntr_ctx_list_0
++) {
416 NDR_CHECK(ndr_pull_dcerpc_ack_ctx(ndr
, NDR_SCALARS
, &r
->ctx_list
[cntr_ctx_list_0
]));
418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctx_list_0
, 0);
420 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
421 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
422 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->auth_info
));
423 ndr
->flags
= _flags_save_DATA_BLOB
;
425 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
427 if (ndr_flags
& NDR_BUFFERS
) {
429 return NDR_ERR_SUCCESS
;
432 _PUBLIC_
void ndr_print_dcerpc_bind_ack(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_bind_ack
*r
)
434 uint32_t cntr_ctx_list_0
;
435 ndr_print_struct(ndr
, name
, "dcerpc_bind_ack");
437 ndr_print_uint16(ndr
, "max_xmit_frag", r
->max_xmit_frag
);
438 ndr_print_uint16(ndr
, "max_recv_frag", r
->max_recv_frag
);
439 ndr_print_uint32(ndr
, "assoc_group_id", r
->assoc_group_id
);
440 ndr_print_uint16(ndr
, "secondary_address_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen(r
->secondary_address
) + 1:r
->secondary_address_size
);
441 ndr_print_string(ndr
, "secondary_address", r
->secondary_address
);
442 ndr_print_DATA_BLOB(ndr
, "_pad1", r
->_pad1
);
443 ndr_print_uint8(ndr
, "num_results", r
->num_results
);
444 ndr
->print(ndr
, "%s: ARRAY(%d)", "ctx_list", (int)r
->num_results
);
446 for (cntr_ctx_list_0
=0;cntr_ctx_list_0
<r
->num_results
;cntr_ctx_list_0
++) {
448 if (asprintf(&idx_0
, "[%d]", cntr_ctx_list_0
) != -1) {
449 ndr_print_dcerpc_ack_ctx(ndr
, "ctx_list", &r
->ctx_list
[cntr_ctx_list_0
]);
454 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
458 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
)
460 uint32_t cntr_versions_0
;
461 if (ndr_flags
& NDR_SCALARS
) {
462 NDR_CHECK(ndr_push_align(ndr
, 4));
463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_versions
));
464 for (cntr_versions_0
= 0; cntr_versions_0
< r
->num_versions
; cntr_versions_0
++) {
465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->versions
[cntr_versions_0
]));
467 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
469 if (ndr_flags
& NDR_BUFFERS
) {
471 return NDR_ERR_SUCCESS
;
474 static enum ndr_err_code
ndr_pull_dcerpc_bind_nak_versions(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_bind_nak_versions
*r
)
476 uint32_t cntr_versions_0
;
477 TALLOC_CTX
*_mem_save_versions_0
;
478 if (ndr_flags
& NDR_SCALARS
) {
479 NDR_CHECK(ndr_pull_align(ndr
, 4));
480 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_versions
));
481 NDR_PULL_ALLOC_N(ndr
, r
->versions
, r
->num_versions
);
482 _mem_save_versions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
483 NDR_PULL_SET_MEM_CTX(ndr
, r
->versions
, 0);
484 for (cntr_versions_0
= 0; cntr_versions_0
< r
->num_versions
; cntr_versions_0
++) {
485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->versions
[cntr_versions_0
]));
487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_versions_0
, 0);
488 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
490 if (ndr_flags
& NDR_BUFFERS
) {
492 return NDR_ERR_SUCCESS
;
495 _PUBLIC_
void ndr_print_dcerpc_bind_nak_versions(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_bind_nak_versions
*r
)
497 uint32_t cntr_versions_0
;
498 ndr_print_struct(ndr
, name
, "dcerpc_bind_nak_versions");
500 ndr_print_uint32(ndr
, "num_versions", r
->num_versions
);
501 ndr
->print(ndr
, "%s: ARRAY(%d)", "versions", (int)r
->num_versions
);
503 for (cntr_versions_0
=0;cntr_versions_0
<r
->num_versions
;cntr_versions_0
++) {
505 if (asprintf(&idx_0
, "[%d]", cntr_versions_0
) != -1) {
506 ndr_print_uint32(ndr
, "versions", r
->versions
[cntr_versions_0
]);
514 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
)
516 if (ndr_flags
& NDR_SCALARS
) {
517 int level
= ndr_push_get_switch_value(ndr
, r
);
518 NDR_CHECK(ndr_push_union_align(ndr
, 4));
520 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
: {
521 NDR_CHECK(ndr_push_dcerpc_bind_nak_versions(ndr
, NDR_SCALARS
, &r
->v
));
529 if (ndr_flags
& NDR_BUFFERS
) {
530 int level
= ndr_push_get_switch_value(ndr
, r
);
532 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
:
540 return NDR_ERR_SUCCESS
;
543 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
)
546 level
= ndr_pull_get_switch_value(ndr
, r
);
547 if (ndr_flags
& NDR_SCALARS
) {
548 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
550 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
: {
551 NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions(ndr
, NDR_SCALARS
, &r
->v
));
559 if (ndr_flags
& NDR_BUFFERS
) {
561 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
:
569 return NDR_ERR_SUCCESS
;
572 _PUBLIC_
void ndr_print_dcerpc_bind_nak_versions_ctr(struct ndr_print
*ndr
, const char *name
, const union dcerpc_bind_nak_versions_ctr
*r
)
575 level
= ndr_print_get_switch_value(ndr
, r
);
576 ndr_print_union(ndr
, name
, level
, "dcerpc_bind_nak_versions_ctr");
578 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
:
579 ndr_print_dcerpc_bind_nak_versions(ndr
, "v", &r
->v
);
588 static enum ndr_err_code
ndr_push_dcerpc_bind_nak(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_bind_nak
*r
)
590 if (ndr_flags
& NDR_SCALARS
) {
591 NDR_CHECK(ndr_push_align(ndr
, 4));
592 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->reject_reason
));
593 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->versions
, r
->reject_reason
));
594 NDR_CHECK(ndr_push_dcerpc_bind_nak_versions_ctr(ndr
, NDR_SCALARS
, &r
->versions
));
595 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
597 if (ndr_flags
& NDR_BUFFERS
) {
598 NDR_CHECK(ndr_push_dcerpc_bind_nak_versions_ctr(ndr
, NDR_BUFFERS
, &r
->versions
));
600 return NDR_ERR_SUCCESS
;
603 static enum ndr_err_code
ndr_pull_dcerpc_bind_nak(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_bind_nak
*r
)
605 if (ndr_flags
& NDR_SCALARS
) {
606 NDR_CHECK(ndr_pull_align(ndr
, 4));
607 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->reject_reason
));
608 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->versions
, r
->reject_reason
));
609 NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions_ctr(ndr
, NDR_SCALARS
, &r
->versions
));
610 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
612 if (ndr_flags
& NDR_BUFFERS
) {
613 NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions_ctr(ndr
, NDR_BUFFERS
, &r
->versions
));
615 return NDR_ERR_SUCCESS
;
618 _PUBLIC_
void ndr_print_dcerpc_bind_nak(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_bind_nak
*r
)
620 ndr_print_struct(ndr
, name
, "dcerpc_bind_nak");
622 ndr_print_uint16(ndr
, "reject_reason", r
->reject_reason
);
623 ndr_print_set_switch_value(ndr
, &r
->versions
, r
->reject_reason
);
624 ndr_print_dcerpc_bind_nak_versions_ctr(ndr
, "versions", &r
->versions
);
628 static enum ndr_err_code
ndr_push_dcerpc_response(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_response
*r
)
630 if (ndr_flags
& NDR_SCALARS
) {
631 NDR_CHECK(ndr_push_align(ndr
, 4));
632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->alloc_hint
));
633 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->context_id
));
634 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->cancel_count
));
636 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
638 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
639 ndr
->flags
= _flags_save_DATA_BLOB
;
642 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
644 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->stub_and_verifier
));
645 ndr
->flags
= _flags_save_DATA_BLOB
;
647 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
649 if (ndr_flags
& NDR_BUFFERS
) {
651 return NDR_ERR_SUCCESS
;
654 static enum ndr_err_code
ndr_pull_dcerpc_response(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_response
*r
)
656 if (ndr_flags
& NDR_SCALARS
) {
657 NDR_CHECK(ndr_pull_align(ndr
, 4));
658 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->alloc_hint
));
659 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->context_id
));
660 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->cancel_count
));
662 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
663 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN8
);
664 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
665 ndr
->flags
= _flags_save_DATA_BLOB
;
668 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
669 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
670 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->stub_and_verifier
));
671 ndr
->flags
= _flags_save_DATA_BLOB
;
673 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
675 if (ndr_flags
& NDR_BUFFERS
) {
677 return NDR_ERR_SUCCESS
;
680 _PUBLIC_
void ndr_print_dcerpc_response(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_response
*r
)
682 ndr_print_struct(ndr
, name
, "dcerpc_response");
684 ndr_print_uint32(ndr
, "alloc_hint", r
->alloc_hint
);
685 ndr_print_uint16(ndr
, "context_id", r
->context_id
);
686 ndr_print_uint8(ndr
, "cancel_count", r
->cancel_count
);
687 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
688 ndr_print_DATA_BLOB(ndr
, "stub_and_verifier", r
->stub_and_verifier
);
692 static enum ndr_err_code
ndr_push_dcerpc_fault(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_fault
*r
)
694 if (ndr_flags
& NDR_SCALARS
) {
695 NDR_CHECK(ndr_push_align(ndr
, 4));
696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->alloc_hint
));
697 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->context_id
));
698 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->cancel_count
));
699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
701 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
702 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
703 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
704 ndr
->flags
= _flags_save_DATA_BLOB
;
706 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
708 if (ndr_flags
& NDR_BUFFERS
) {
710 return NDR_ERR_SUCCESS
;
713 static enum ndr_err_code
ndr_pull_dcerpc_fault(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_fault
*r
)
715 if (ndr_flags
& NDR_SCALARS
) {
716 NDR_CHECK(ndr_pull_align(ndr
, 4));
717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->alloc_hint
));
718 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->context_id
));
719 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->cancel_count
));
720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
722 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
724 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
725 ndr
->flags
= _flags_save_DATA_BLOB
;
727 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
729 if (ndr_flags
& NDR_BUFFERS
) {
731 return NDR_ERR_SUCCESS
;
734 _PUBLIC_
void ndr_print_dcerpc_fault(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_fault
*r
)
736 ndr_print_struct(ndr
, name
, "dcerpc_fault");
738 ndr_print_uint32(ndr
, "alloc_hint", r
->alloc_hint
);
739 ndr_print_uint16(ndr
, "context_id", r
->context_id
);
740 ndr_print_uint8(ndr
, "cancel_count", r
->cancel_count
);
741 ndr_print_uint32(ndr
, "status", r
->status
);
742 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
746 static enum ndr_err_code
ndr_push_dcerpc_AuthType(struct ndr_push
*ndr
, int ndr_flags
, enum dcerpc_AuthType r
)
748 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
749 return NDR_ERR_SUCCESS
;
752 static enum ndr_err_code
ndr_pull_dcerpc_AuthType(struct ndr_pull
*ndr
, int ndr_flags
, enum dcerpc_AuthType
*r
)
755 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
757 return NDR_ERR_SUCCESS
;
760 _PUBLIC_
void ndr_print_dcerpc_AuthType(struct ndr_print
*ndr
, const char *name
, enum dcerpc_AuthType r
)
762 const char *val
= NULL
;
765 case DCERPC_AUTH_TYPE_NONE
: val
= "DCERPC_AUTH_TYPE_NONE"; break;
766 case DCERPC_AUTH_TYPE_KRB5_1
: val
= "DCERPC_AUTH_TYPE_KRB5_1"; break;
767 case DCERPC_AUTH_TYPE_SPNEGO
: val
= "DCERPC_AUTH_TYPE_SPNEGO"; break;
768 case DCERPC_AUTH_TYPE_NTLMSSP
: val
= "DCERPC_AUTH_TYPE_NTLMSSP"; break;
769 case DCERPC_AUTH_TYPE_KRB5
: val
= "DCERPC_AUTH_TYPE_KRB5"; break;
770 case DCERPC_AUTH_TYPE_DPA
: val
= "DCERPC_AUTH_TYPE_DPA"; break;
771 case DCERPC_AUTH_TYPE_MSN
: val
= "DCERPC_AUTH_TYPE_MSN"; break;
772 case DCERPC_AUTH_TYPE_DIGEST
: val
= "DCERPC_AUTH_TYPE_DIGEST"; break;
773 case DCERPC_AUTH_TYPE_SCHANNEL
: val
= "DCERPC_AUTH_TYPE_SCHANNEL"; break;
774 case DCERPC_AUTH_TYPE_MSMQ
: val
= "DCERPC_AUTH_TYPE_MSMQ"; break;
776 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
779 static enum ndr_err_code
ndr_push_dcerpc_AuthLevel(struct ndr_push
*ndr
, int ndr_flags
, enum dcerpc_AuthLevel r
)
781 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
782 return NDR_ERR_SUCCESS
;
785 static enum ndr_err_code
ndr_pull_dcerpc_AuthLevel(struct ndr_pull
*ndr
, int ndr_flags
, enum dcerpc_AuthLevel
*r
)
788 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
790 return NDR_ERR_SUCCESS
;
793 _PUBLIC_
void ndr_print_dcerpc_AuthLevel(struct ndr_print
*ndr
, const char *name
, enum dcerpc_AuthLevel r
)
795 const char *val
= NULL
;
798 case DCERPC_AUTH_LEVEL_NONE
: val
= "DCERPC_AUTH_LEVEL_NONE"; break;
799 case DCERPC_AUTH_LEVEL_CONNECT
: val
= "DCERPC_AUTH_LEVEL_CONNECT"; break;
800 case DCERPC_AUTH_LEVEL_CALL
: val
= "DCERPC_AUTH_LEVEL_CALL"; break;
801 case DCERPC_AUTH_LEVEL_PACKET
: val
= "DCERPC_AUTH_LEVEL_PACKET"; break;
802 case DCERPC_AUTH_LEVEL_INTEGRITY
: val
= "DCERPC_AUTH_LEVEL_INTEGRITY"; break;
803 case DCERPC_AUTH_LEVEL_PRIVACY
: val
= "DCERPC_AUTH_LEVEL_PRIVACY"; break;
805 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
808 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_auth(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_auth
*r
)
810 if (ndr_flags
& NDR_SCALARS
) {
811 NDR_CHECK(ndr_push_align(ndr
, 4));
812 NDR_CHECK(ndr_push_dcerpc_AuthType(ndr
, NDR_SCALARS
, r
->auth_type
));
813 NDR_CHECK(ndr_push_dcerpc_AuthLevel(ndr
, NDR_SCALARS
, r
->auth_level
));
814 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auth_pad_length
));
815 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auth_reserved
));
816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_context_id
));
818 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
819 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
820 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->credentials
));
821 ndr
->flags
= _flags_save_DATA_BLOB
;
823 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
825 if (ndr_flags
& NDR_BUFFERS
) {
827 return NDR_ERR_SUCCESS
;
830 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_auth(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_auth
*r
)
832 if (ndr_flags
& NDR_SCALARS
) {
833 NDR_CHECK(ndr_pull_align(ndr
, 4));
834 NDR_CHECK(ndr_pull_dcerpc_AuthType(ndr
, NDR_SCALARS
, &r
->auth_type
));
835 NDR_CHECK(ndr_pull_dcerpc_AuthLevel(ndr
, NDR_SCALARS
, &r
->auth_level
));
836 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auth_pad_length
));
837 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auth_reserved
));
838 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_context_id
));
840 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
841 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
842 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->credentials
));
843 ndr
->flags
= _flags_save_DATA_BLOB
;
845 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
847 if (ndr_flags
& NDR_BUFFERS
) {
849 return NDR_ERR_SUCCESS
;
852 _PUBLIC_
void ndr_print_dcerpc_auth(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_auth
*r
)
854 ndr_print_struct(ndr
, name
, "dcerpc_auth");
856 ndr_print_dcerpc_AuthType(ndr
, "auth_type", r
->auth_type
);
857 ndr_print_dcerpc_AuthLevel(ndr
, "auth_level", r
->auth_level
);
858 ndr_print_uint8(ndr
, "auth_pad_length", r
->auth_pad_length
);
859 ndr_print_uint8(ndr
, "auth_reserved", r
->auth_reserved
);
860 ndr_print_uint32(ndr
, "auth_context_id", r
->auth_context_id
);
861 ndr_print_DATA_BLOB(ndr
, "credentials", r
->credentials
);
865 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_auth3(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_auth3
*r
)
867 if (ndr_flags
& NDR_SCALARS
) {
868 NDR_CHECK(ndr_push_align(ndr
, 4));
869 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
871 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
873 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->auth_info
));
874 ndr
->flags
= _flags_save_DATA_BLOB
;
876 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
878 if (ndr_flags
& NDR_BUFFERS
) {
880 return NDR_ERR_SUCCESS
;
883 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_auth3(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_auth3
*r
)
885 if (ndr_flags
& NDR_SCALARS
) {
886 NDR_CHECK(ndr_pull_align(ndr
, 4));
887 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_pad
));
889 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
890 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
891 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->auth_info
));
892 ndr
->flags
= _flags_save_DATA_BLOB
;
894 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
896 if (ndr_flags
& NDR_BUFFERS
) {
898 return NDR_ERR_SUCCESS
;
901 _PUBLIC_
void ndr_print_dcerpc_auth3(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_auth3
*r
)
903 ndr_print_struct(ndr
, name
, "dcerpc_auth3");
905 ndr_print_uint32(ndr
, "_pad", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->_pad
);
906 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
910 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_orphaned(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_orphaned
*r
)
912 if (ndr_flags
& NDR_SCALARS
) {
913 NDR_CHECK(ndr_push_align(ndr
, 4));
914 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
916 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
917 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
918 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->auth_info
));
919 ndr
->flags
= _flags_save_DATA_BLOB
;
921 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
923 if (ndr_flags
& NDR_BUFFERS
) {
925 return NDR_ERR_SUCCESS
;
928 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_orphaned(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_orphaned
*r
)
930 if (ndr_flags
& NDR_SCALARS
) {
931 NDR_CHECK(ndr_pull_align(ndr
, 4));
932 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_pad
));
934 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
936 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->auth_info
));
937 ndr
->flags
= _flags_save_DATA_BLOB
;
939 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
941 if (ndr_flags
& NDR_BUFFERS
) {
943 return NDR_ERR_SUCCESS
;
946 _PUBLIC_
void ndr_print_dcerpc_orphaned(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_orphaned
*r
)
948 ndr_print_struct(ndr
, name
, "dcerpc_orphaned");
950 ndr_print_uint32(ndr
, "_pad", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->_pad
);
951 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
955 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_co_cancel(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_co_cancel
*r
)
957 if (ndr_flags
& NDR_SCALARS
) {
958 NDR_CHECK(ndr_push_align(ndr
, 4));
959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
961 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
963 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->auth_info
));
964 ndr
->flags
= _flags_save_DATA_BLOB
;
966 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
968 if (ndr_flags
& NDR_BUFFERS
) {
970 return NDR_ERR_SUCCESS
;
973 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_co_cancel(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_co_cancel
*r
)
975 if (ndr_flags
& NDR_SCALARS
) {
976 NDR_CHECK(ndr_pull_align(ndr
, 4));
977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_pad
));
979 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
981 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->auth_info
));
982 ndr
->flags
= _flags_save_DATA_BLOB
;
984 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
986 if (ndr_flags
& NDR_BUFFERS
) {
988 return NDR_ERR_SUCCESS
;
991 _PUBLIC_
void ndr_print_dcerpc_co_cancel(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_co_cancel
*r
)
993 ndr_print_struct(ndr
, name
, "dcerpc_co_cancel");
995 ndr_print_uint32(ndr
, "_pad", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->_pad
);
996 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
1000 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_cl_cancel(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_cl_cancel
*r
)
1002 if (ndr_flags
& NDR_SCALARS
) {
1003 NDR_CHECK(ndr_push_align(ndr
, 4));
1004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
1005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->id
));
1006 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1008 if (ndr_flags
& NDR_BUFFERS
) {
1010 return NDR_ERR_SUCCESS
;
1013 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_cl_cancel(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_cl_cancel
*r
)
1015 if (ndr_flags
& NDR_SCALARS
) {
1016 NDR_CHECK(ndr_pull_align(ndr
, 4));
1017 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
1018 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->id
));
1019 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1021 if (ndr_flags
& NDR_BUFFERS
) {
1023 return NDR_ERR_SUCCESS
;
1026 _PUBLIC_
void ndr_print_dcerpc_cl_cancel(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_cl_cancel
*r
)
1028 ndr_print_struct(ndr
, name
, "dcerpc_cl_cancel");
1030 ndr_print_uint32(ndr
, "version", r
->version
);
1031 ndr_print_uint32(ndr
, "id", r
->id
);
1035 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_cancel_ack(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_cancel_ack
*r
)
1037 if (ndr_flags
& NDR_SCALARS
) {
1038 NDR_CHECK(ndr_push_align(ndr
, 4));
1039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
1040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->id
));
1041 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->server_is_accepting
));
1042 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1044 if (ndr_flags
& NDR_BUFFERS
) {
1046 return NDR_ERR_SUCCESS
;
1049 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_cancel_ack(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_cancel_ack
*r
)
1051 if (ndr_flags
& NDR_SCALARS
) {
1052 NDR_CHECK(ndr_pull_align(ndr
, 4));
1053 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
1054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->id
));
1055 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->server_is_accepting
));
1056 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1058 if (ndr_flags
& NDR_BUFFERS
) {
1060 return NDR_ERR_SUCCESS
;
1063 _PUBLIC_
void ndr_print_dcerpc_cancel_ack(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_cancel_ack
*r
)
1065 ndr_print_struct(ndr
, name
, "dcerpc_cancel_ack");
1067 ndr_print_uint32(ndr
, "version", r
->version
);
1068 ndr_print_uint32(ndr
, "id", r
->id
);
1069 ndr_print_uint32(ndr
, "server_is_accepting", r
->server_is_accepting
);
1073 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_fack(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_fack
*r
)
1075 uint32_t cntr_selack_0
;
1076 if (ndr_flags
& NDR_SCALARS
) {
1077 NDR_CHECK(ndr_push_align(ndr
, 4));
1078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
1079 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->_pad1
));
1080 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->window_size
));
1081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_tdsu
));
1082 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_frag_size
));
1083 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->serial_no
));
1084 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->selack_size
));
1085 for (cntr_selack_0
= 0; cntr_selack_0
< r
->selack_size
; cntr_selack_0
++) {
1086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->selack
[cntr_selack_0
]));
1088 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1090 if (ndr_flags
& NDR_BUFFERS
) {
1092 return NDR_ERR_SUCCESS
;
1095 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_fack(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_fack
*r
)
1097 uint32_t cntr_selack_0
;
1098 TALLOC_CTX
*_mem_save_selack_0
;
1099 if (ndr_flags
& NDR_SCALARS
) {
1100 NDR_CHECK(ndr_pull_align(ndr
, 4));
1101 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
1102 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->_pad1
));
1103 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->window_size
));
1104 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_tdsu
));
1105 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_frag_size
));
1106 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->serial_no
));
1107 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->selack_size
));
1108 NDR_PULL_ALLOC_N(ndr
, r
->selack
, r
->selack_size
);
1109 _mem_save_selack_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1110 NDR_PULL_SET_MEM_CTX(ndr
, r
->selack
, 0);
1111 for (cntr_selack_0
= 0; cntr_selack_0
< r
->selack_size
; cntr_selack_0
++) {
1112 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->selack
[cntr_selack_0
]));
1114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_selack_0
, 0);
1115 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1117 if (ndr_flags
& NDR_BUFFERS
) {
1119 return NDR_ERR_SUCCESS
;
1122 _PUBLIC_
void ndr_print_dcerpc_fack(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_fack
*r
)
1124 uint32_t cntr_selack_0
;
1125 ndr_print_struct(ndr
, name
, "dcerpc_fack");
1127 ndr_print_uint32(ndr
, "version", r
->version
);
1128 ndr_print_uint8(ndr
, "_pad1", r
->_pad1
);
1129 ndr_print_uint16(ndr
, "window_size", r
->window_size
);
1130 ndr_print_uint32(ndr
, "max_tdsu", r
->max_tdsu
);
1131 ndr_print_uint32(ndr
, "max_frag_size", r
->max_frag_size
);
1132 ndr_print_uint16(ndr
, "serial_no", r
->serial_no
);
1133 ndr_print_uint16(ndr
, "selack_size", r
->selack_size
);
1134 ndr
->print(ndr
, "%s: ARRAY(%d)", "selack", (int)r
->selack_size
);
1136 for (cntr_selack_0
=0;cntr_selack_0
<r
->selack_size
;cntr_selack_0
++) {
1138 if (asprintf(&idx_0
, "[%d]", cntr_selack_0
) != -1) {
1139 ndr_print_uint32(ndr
, "selack", r
->selack
[cntr_selack_0
]);
1147 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_ack(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_ack
*r
)
1149 if (ndr_flags
& NDR_SCALARS
) {
1150 NDR_CHECK(ndr_push_align(ndr
, 1));
1151 NDR_CHECK(ndr_push_trailer_align(ndr
, 1));
1153 if (ndr_flags
& NDR_BUFFERS
) {
1155 return NDR_ERR_SUCCESS
;
1158 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_ack(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_ack
*r
)
1160 if (ndr_flags
& NDR_SCALARS
) {
1161 NDR_CHECK(ndr_pull_align(ndr
, 1));
1162 NDR_CHECK(ndr_pull_trailer_align(ndr
, 1));
1164 if (ndr_flags
& NDR_BUFFERS
) {
1166 return NDR_ERR_SUCCESS
;
1169 _PUBLIC_
void ndr_print_dcerpc_ack(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_ack
*r
)
1171 ndr_print_struct(ndr
, name
, "dcerpc_ack");
1176 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_ping(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_ping
*r
)
1178 if (ndr_flags
& NDR_SCALARS
) {
1179 NDR_CHECK(ndr_push_align(ndr
, 1));
1180 NDR_CHECK(ndr_push_trailer_align(ndr
, 1));
1182 if (ndr_flags
& NDR_BUFFERS
) {
1184 return NDR_ERR_SUCCESS
;
1187 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_ping(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_ping
*r
)
1189 if (ndr_flags
& NDR_SCALARS
) {
1190 NDR_CHECK(ndr_pull_align(ndr
, 1));
1191 NDR_CHECK(ndr_pull_trailer_align(ndr
, 1));
1193 if (ndr_flags
& NDR_BUFFERS
) {
1195 return NDR_ERR_SUCCESS
;
1198 _PUBLIC_
void ndr_print_dcerpc_ping(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_ping
*r
)
1200 ndr_print_struct(ndr
, name
, "dcerpc_ping");
1205 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_shutdown(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_shutdown
*r
)
1207 if (ndr_flags
& NDR_SCALARS
) {
1208 NDR_CHECK(ndr_push_align(ndr
, 1));
1209 NDR_CHECK(ndr_push_trailer_align(ndr
, 1));
1211 if (ndr_flags
& NDR_BUFFERS
) {
1213 return NDR_ERR_SUCCESS
;
1216 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_shutdown(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_shutdown
*r
)
1218 if (ndr_flags
& NDR_SCALARS
) {
1219 NDR_CHECK(ndr_pull_align(ndr
, 1));
1220 NDR_CHECK(ndr_pull_trailer_align(ndr
, 1));
1222 if (ndr_flags
& NDR_BUFFERS
) {
1224 return NDR_ERR_SUCCESS
;
1227 _PUBLIC_
void ndr_print_dcerpc_shutdown(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_shutdown
*r
)
1229 ndr_print_struct(ndr
, name
, "dcerpc_shutdown");
1234 _PUBLIC_
enum ndr_err_code
ndr_push_dcerpc_working(struct ndr_push
*ndr
, int ndr_flags
, const struct dcerpc_working
*r
)
1236 if (ndr_flags
& NDR_SCALARS
) {
1237 NDR_CHECK(ndr_push_align(ndr
, 1));
1238 NDR_CHECK(ndr_push_trailer_align(ndr
, 1));
1240 if (ndr_flags
& NDR_BUFFERS
) {
1242 return NDR_ERR_SUCCESS
;
1245 _PUBLIC_
enum ndr_err_code
ndr_pull_dcerpc_working(struct ndr_pull
*ndr
, int ndr_flags
, struct dcerpc_working
*r
)
1247 if (ndr_flags
& NDR_SCALARS
) {
1248 NDR_CHECK(ndr_pull_align(ndr
, 1));
1249 NDR_CHECK(ndr_pull_trailer_align(ndr
, 1));
1251 if (ndr_flags
& NDR_BUFFERS
) {
1253 return NDR_ERR_SUCCESS
;
1256 _PUBLIC_
void ndr_print_dcerpc_working(struct ndr_print
*ndr
, const char *name
, const struct dcerpc_working
*r
)
1258 ndr_print_struct(ndr
, name
, "dcerpc_working");
1263 static enum ndr_err_code
ndr_push_dcerpc_pkt_type(struct ndr_push
*ndr
, int ndr_flags
, enum dcerpc_pkt_type r
)
1265 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
1266 return NDR_ERR_SUCCESS
;
1269 static enum ndr_err_code
ndr_pull_dcerpc_pkt_type(struct ndr_pull
*ndr
, int ndr_flags
, enum dcerpc_pkt_type
*r
)
1272 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
1274 return NDR_ERR_SUCCESS
;
1277 _PUBLIC_
void ndr_print_dcerpc_pkt_type(struct ndr_print
*ndr
, const char *name
, enum dcerpc_pkt_type r
)
1279 const char *val
= NULL
;
1282 case DCERPC_PKT_REQUEST
: val
= "DCERPC_PKT_REQUEST"; break;
1283 case DCERPC_PKT_PING
: val
= "DCERPC_PKT_PING"; break;
1284 case DCERPC_PKT_RESPONSE
: val
= "DCERPC_PKT_RESPONSE"; break;
1285 case DCERPC_PKT_FAULT
: val
= "DCERPC_PKT_FAULT"; break;
1286 case DCERPC_PKT_WORKING
: val
= "DCERPC_PKT_WORKING"; break;
1287 case DCERPC_PKT_NOCALL
: val
= "DCERPC_PKT_NOCALL"; break;
1288 case DCERPC_PKT_REJECT
: val
= "DCERPC_PKT_REJECT"; break;
1289 case DCERPC_PKT_ACK
: val
= "DCERPC_PKT_ACK"; break;
1290 case DCERPC_PKT_CL_CANCEL
: val
= "DCERPC_PKT_CL_CANCEL"; break;
1291 case DCERPC_PKT_FACK
: val
= "DCERPC_PKT_FACK"; break;
1292 case DCERPC_PKT_CANCEL_ACK
: val
= "DCERPC_PKT_CANCEL_ACK"; break;
1293 case DCERPC_PKT_BIND
: val
= "DCERPC_PKT_BIND"; break;
1294 case DCERPC_PKT_BIND_ACK
: val
= "DCERPC_PKT_BIND_ACK"; break;
1295 case DCERPC_PKT_BIND_NAK
: val
= "DCERPC_PKT_BIND_NAK"; break;
1296 case DCERPC_PKT_ALTER
: val
= "DCERPC_PKT_ALTER"; break;
1297 case DCERPC_PKT_ALTER_RESP
: val
= "DCERPC_PKT_ALTER_RESP"; break;
1298 case DCERPC_PKT_AUTH3
: val
= "DCERPC_PKT_AUTH3"; break;
1299 case DCERPC_PKT_SHUTDOWN
: val
= "DCERPC_PKT_SHUTDOWN"; break;
1300 case DCERPC_PKT_CO_CANCEL
: val
= "DCERPC_PKT_CO_CANCEL"; break;
1301 case DCERPC_PKT_ORPHANED
: val
= "DCERPC_PKT_ORPHANED"; break;
1303 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1306 static enum ndr_err_code
ndr_push_dcerpc_payload(struct ndr_push
*ndr
, int ndr_flags
, const union dcerpc_payload
*r
)
1308 if (ndr_flags
& NDR_SCALARS
) {
1309 int level
= ndr_push_get_switch_value(ndr
, r
);
1310 NDR_CHECK(ndr_push_union_align(ndr
, 4));
1312 case DCERPC_PKT_REQUEST
: {
1313 NDR_CHECK(ndr_push_dcerpc_request(ndr
, NDR_SCALARS
, &r
->request
));
1316 case DCERPC_PKT_PING
: {
1317 NDR_CHECK(ndr_push_dcerpc_ping(ndr
, NDR_SCALARS
, &r
->ping
));
1320 case DCERPC_PKT_RESPONSE
: {
1321 NDR_CHECK(ndr_push_dcerpc_response(ndr
, NDR_SCALARS
, &r
->response
));
1324 case DCERPC_PKT_FAULT
: {
1325 NDR_CHECK(ndr_push_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->fault
));
1328 case DCERPC_PKT_WORKING
: {
1329 NDR_CHECK(ndr_push_dcerpc_working(ndr
, NDR_SCALARS
, &r
->working
));
1332 case DCERPC_PKT_NOCALL
: {
1333 NDR_CHECK(ndr_push_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->nocall
));
1336 case DCERPC_PKT_REJECT
: {
1337 NDR_CHECK(ndr_push_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->reject
));
1340 case DCERPC_PKT_ACK
: {
1341 NDR_CHECK(ndr_push_dcerpc_ack(ndr
, NDR_SCALARS
, &r
->ack
));
1344 case DCERPC_PKT_CL_CANCEL
: {
1345 NDR_CHECK(ndr_push_dcerpc_cl_cancel(ndr
, NDR_SCALARS
, &r
->cl_cancel
));
1348 case DCERPC_PKT_FACK
: {
1349 NDR_CHECK(ndr_push_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->fack
));
1352 case DCERPC_PKT_CANCEL_ACK
: {
1353 NDR_CHECK(ndr_push_dcerpc_cancel_ack(ndr
, NDR_SCALARS
, &r
->cancel_ack
));
1356 case DCERPC_PKT_BIND
: {
1357 NDR_CHECK(ndr_push_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->bind
));
1360 case DCERPC_PKT_BIND_ACK
: {
1361 NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->bind_ack
));
1364 case DCERPC_PKT_BIND_NAK
: {
1365 NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr
, NDR_SCALARS
, &r
->bind_nak
));
1368 case DCERPC_PKT_ALTER
: {
1369 NDR_CHECK(ndr_push_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->alter
));
1372 case DCERPC_PKT_ALTER_RESP
: {
1373 NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->alter_resp
));
1376 case DCERPC_PKT_SHUTDOWN
: {
1377 NDR_CHECK(ndr_push_dcerpc_shutdown(ndr
, NDR_SCALARS
, &r
->shutdown
));
1380 case DCERPC_PKT_CO_CANCEL
: {
1381 NDR_CHECK(ndr_push_dcerpc_co_cancel(ndr
, NDR_SCALARS
, &r
->co_cancel
));
1384 case DCERPC_PKT_ORPHANED
: {
1385 NDR_CHECK(ndr_push_dcerpc_orphaned(ndr
, NDR_SCALARS
, &r
->orphaned
));
1388 case DCERPC_PKT_AUTH3
: {
1389 NDR_CHECK(ndr_push_dcerpc_auth3(ndr
, NDR_SCALARS
, &r
->auth3
));
1393 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1396 if (ndr_flags
& NDR_BUFFERS
) {
1397 int level
= ndr_push_get_switch_value(ndr
, r
);
1399 case DCERPC_PKT_REQUEST
:
1402 case DCERPC_PKT_PING
:
1405 case DCERPC_PKT_RESPONSE
:
1408 case DCERPC_PKT_FAULT
:
1411 case DCERPC_PKT_WORKING
:
1414 case DCERPC_PKT_NOCALL
:
1417 case DCERPC_PKT_REJECT
:
1420 case DCERPC_PKT_ACK
:
1423 case DCERPC_PKT_CL_CANCEL
:
1426 case DCERPC_PKT_FACK
:
1429 case DCERPC_PKT_CANCEL_ACK
:
1432 case DCERPC_PKT_BIND
:
1435 case DCERPC_PKT_BIND_ACK
:
1438 case DCERPC_PKT_BIND_NAK
:
1439 NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr
, NDR_BUFFERS
, &r
->bind_nak
));
1442 case DCERPC_PKT_ALTER
:
1445 case DCERPC_PKT_ALTER_RESP
:
1448 case DCERPC_PKT_SHUTDOWN
:
1451 case DCERPC_PKT_CO_CANCEL
:
1454 case DCERPC_PKT_ORPHANED
:
1457 case DCERPC_PKT_AUTH3
:
1461 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1464 return NDR_ERR_SUCCESS
;
1467 static enum ndr_err_code
ndr_pull_dcerpc_payload(struct ndr_pull
*ndr
, int ndr_flags
, union dcerpc_payload
*r
)
1470 level
= ndr_pull_get_switch_value(ndr
, r
);
1471 if (ndr_flags
& NDR_SCALARS
) {
1472 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
1474 case DCERPC_PKT_REQUEST
: {
1475 NDR_CHECK(ndr_pull_dcerpc_request(ndr
, NDR_SCALARS
, &r
->request
));
1478 case DCERPC_PKT_PING
: {
1479 NDR_CHECK(ndr_pull_dcerpc_ping(ndr
, NDR_SCALARS
, &r
->ping
));
1482 case DCERPC_PKT_RESPONSE
: {
1483 NDR_CHECK(ndr_pull_dcerpc_response(ndr
, NDR_SCALARS
, &r
->response
));
1486 case DCERPC_PKT_FAULT
: {
1487 NDR_CHECK(ndr_pull_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->fault
));
1490 case DCERPC_PKT_WORKING
: {
1491 NDR_CHECK(ndr_pull_dcerpc_working(ndr
, NDR_SCALARS
, &r
->working
));
1494 case DCERPC_PKT_NOCALL
: {
1495 NDR_CHECK(ndr_pull_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->nocall
));
1498 case DCERPC_PKT_REJECT
: {
1499 NDR_CHECK(ndr_pull_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->reject
));
1502 case DCERPC_PKT_ACK
: {
1503 NDR_CHECK(ndr_pull_dcerpc_ack(ndr
, NDR_SCALARS
, &r
->ack
));
1506 case DCERPC_PKT_CL_CANCEL
: {
1507 NDR_CHECK(ndr_pull_dcerpc_cl_cancel(ndr
, NDR_SCALARS
, &r
->cl_cancel
));
1510 case DCERPC_PKT_FACK
: {
1511 NDR_CHECK(ndr_pull_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->fack
));
1514 case DCERPC_PKT_CANCEL_ACK
: {
1515 NDR_CHECK(ndr_pull_dcerpc_cancel_ack(ndr
, NDR_SCALARS
, &r
->cancel_ack
));
1518 case DCERPC_PKT_BIND
: {
1519 NDR_CHECK(ndr_pull_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->bind
));
1522 case DCERPC_PKT_BIND_ACK
: {
1523 NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->bind_ack
));
1526 case DCERPC_PKT_BIND_NAK
: {
1527 NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr
, NDR_SCALARS
, &r
->bind_nak
));
1530 case DCERPC_PKT_ALTER
: {
1531 NDR_CHECK(ndr_pull_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->alter
));
1534 case DCERPC_PKT_ALTER_RESP
: {
1535 NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->alter_resp
));
1538 case DCERPC_PKT_SHUTDOWN
: {
1539 NDR_CHECK(ndr_pull_dcerpc_shutdown(ndr
, NDR_SCALARS
, &r
->shutdown
));
1542 case DCERPC_PKT_CO_CANCEL
: {
1543 NDR_CHECK(ndr_pull_dcerpc_co_cancel(ndr
, NDR_SCALARS
, &r
->co_cancel
));
1546 case DCERPC_PKT_ORPHANED
: {
1547 NDR_CHECK(ndr_pull_dcerpc_orphaned(ndr
, NDR_SCALARS
, &r
->orphaned
));
1550 case DCERPC_PKT_AUTH3
: {
1551 NDR_CHECK(ndr_pull_dcerpc_auth3(ndr
, NDR_SCALARS
, &r
->auth3
));
1555 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1558 if (ndr_flags
& NDR_BUFFERS
) {
1560 case DCERPC_PKT_REQUEST
:
1563 case DCERPC_PKT_PING
:
1566 case DCERPC_PKT_RESPONSE
:
1569 case DCERPC_PKT_FAULT
:
1572 case DCERPC_PKT_WORKING
:
1575 case DCERPC_PKT_NOCALL
:
1578 case DCERPC_PKT_REJECT
:
1581 case DCERPC_PKT_ACK
:
1584 case DCERPC_PKT_CL_CANCEL
:
1587 case DCERPC_PKT_FACK
:
1590 case DCERPC_PKT_CANCEL_ACK
:
1593 case DCERPC_PKT_BIND
:
1596 case DCERPC_PKT_BIND_ACK
:
1599 case DCERPC_PKT_BIND_NAK
:
1600 NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr
, NDR_BUFFERS
, &r
->bind_nak
));
1603 case DCERPC_PKT_ALTER
:
1606 case DCERPC_PKT_ALTER_RESP
:
1609 case DCERPC_PKT_SHUTDOWN
:
1612 case DCERPC_PKT_CO_CANCEL
:
1615 case DCERPC_PKT_ORPHANED
:
1618 case DCERPC_PKT_AUTH3
:
1622 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1625 return NDR_ERR_SUCCESS
;
1628 _PUBLIC_
void ndr_print_dcerpc_payload(struct ndr_print
*ndr
, const char *name
, const union dcerpc_payload
*r
)
1631 level
= ndr_print_get_switch_value(ndr
, r
);
1632 ndr_print_union(ndr
, name
, level
, "dcerpc_payload");
1634 case DCERPC_PKT_REQUEST
:
1635 ndr_print_dcerpc_request(ndr
, "request", &r
->request
);
1638 case DCERPC_PKT_PING
:
1639 ndr_print_dcerpc_ping(ndr
, "ping", &r
->ping
);
1642 case DCERPC_PKT_RESPONSE
:
1643 ndr_print_dcerpc_response(ndr
, "response", &r
->response
);
1646 case DCERPC_PKT_FAULT
:
1647 ndr_print_dcerpc_fault(ndr
, "fault", &r
->fault
);
1650 case DCERPC_PKT_WORKING
:
1651 ndr_print_dcerpc_working(ndr
, "working", &r
->working
);
1654 case DCERPC_PKT_NOCALL
:
1655 ndr_print_dcerpc_fack(ndr
, "nocall", &r
->nocall
);
1658 case DCERPC_PKT_REJECT
:
1659 ndr_print_dcerpc_fault(ndr
, "reject", &r
->reject
);
1662 case DCERPC_PKT_ACK
:
1663 ndr_print_dcerpc_ack(ndr
, "ack", &r
->ack
);
1666 case DCERPC_PKT_CL_CANCEL
:
1667 ndr_print_dcerpc_cl_cancel(ndr
, "cl_cancel", &r
->cl_cancel
);
1670 case DCERPC_PKT_FACK
:
1671 ndr_print_dcerpc_fack(ndr
, "fack", &r
->fack
);
1674 case DCERPC_PKT_CANCEL_ACK
:
1675 ndr_print_dcerpc_cancel_ack(ndr
, "cancel_ack", &r
->cancel_ack
);
1678 case DCERPC_PKT_BIND
:
1679 ndr_print_dcerpc_bind(ndr
, "bind", &r
->bind
);
1682 case DCERPC_PKT_BIND_ACK
:
1683 ndr_print_dcerpc_bind_ack(ndr
, "bind_ack", &r
->bind_ack
);
1686 case DCERPC_PKT_BIND_NAK
:
1687 ndr_print_dcerpc_bind_nak(ndr
, "bind_nak", &r
->bind_nak
);
1690 case DCERPC_PKT_ALTER
:
1691 ndr_print_dcerpc_bind(ndr
, "alter", &r
->alter
);
1694 case DCERPC_PKT_ALTER_RESP
:
1695 ndr_print_dcerpc_bind_ack(ndr
, "alter_resp", &r
->alter_resp
);
1698 case DCERPC_PKT_SHUTDOWN
:
1699 ndr_print_dcerpc_shutdown(ndr
, "shutdown", &r
->shutdown
);
1702 case DCERPC_PKT_CO_CANCEL
:
1703 ndr_print_dcerpc_co_cancel(ndr
, "co_cancel", &r
->co_cancel
);
1706 case DCERPC_PKT_ORPHANED
:
1707 ndr_print_dcerpc_orphaned(ndr
, "orphaned", &r
->orphaned
);
1710 case DCERPC_PKT_AUTH3
:
1711 ndr_print_dcerpc_auth3(ndr
, "auth3", &r
->auth3
);
1715 ndr_print_bad_level(ndr
, name
, level
);
1719 _PUBLIC_
enum ndr_err_code
ndr_push_ncacn_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct ncacn_packet
*r
)
1721 if (ndr_flags
& NDR_SCALARS
) {
1722 NDR_CHECK(ndr_push_align(ndr
, 4));
1723 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->rpc_vers
));
1724 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->rpc_vers_minor
));
1725 NDR_CHECK(ndr_push_dcerpc_pkt_type(ndr
, NDR_SCALARS
, r
->ptype
));
1726 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pfc_flags
));
1727 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->drep
, 4));
1728 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->frag_length
));
1729 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->auth_length
));
1730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->call_id
));
1731 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->u
, r
->ptype
));
1732 NDR_CHECK(ndr_push_dcerpc_payload(ndr
, NDR_SCALARS
, &r
->u
));
1733 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1735 if (ndr_flags
& NDR_BUFFERS
) {
1736 NDR_CHECK(ndr_push_dcerpc_payload(ndr
, NDR_BUFFERS
, &r
->u
));
1738 return NDR_ERR_SUCCESS
;
1741 _PUBLIC_
enum ndr_err_code
ndr_pull_ncacn_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct ncacn_packet
*r
)
1743 if (ndr_flags
& NDR_SCALARS
) {
1744 NDR_CHECK(ndr_pull_align(ndr
, 4));
1745 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->rpc_vers
));
1746 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->rpc_vers_minor
));
1747 NDR_CHECK(ndr_pull_dcerpc_pkt_type(ndr
, NDR_SCALARS
, &r
->ptype
));
1748 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pfc_flags
));
1749 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->drep
, 4));
1750 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->frag_length
));
1751 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->auth_length
));
1752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->call_id
));
1753 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->u
, r
->ptype
));
1754 NDR_CHECK(ndr_pull_dcerpc_payload(ndr
, NDR_SCALARS
, &r
->u
));
1755 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1757 if (ndr_flags
& NDR_BUFFERS
) {
1758 NDR_CHECK(ndr_pull_dcerpc_payload(ndr
, NDR_BUFFERS
, &r
->u
));
1760 return NDR_ERR_SUCCESS
;
1763 _PUBLIC_
void ndr_print_ncacn_packet(struct ndr_print
*ndr
, const char *name
, const struct ncacn_packet
*r
)
1765 ndr_print_struct(ndr
, name
, "ncacn_packet");
1767 ndr_print_uint8(ndr
, "rpc_vers", r
->rpc_vers
);
1768 ndr_print_uint8(ndr
, "rpc_vers_minor", r
->rpc_vers_minor
);
1769 ndr_print_dcerpc_pkt_type(ndr
, "ptype", r
->ptype
);
1770 ndr_print_uint8(ndr
, "pfc_flags", r
->pfc_flags
);
1771 ndr_print_array_uint8(ndr
, "drep", r
->drep
, 4);
1772 ndr_print_uint16(ndr
, "frag_length", r
->frag_length
);
1773 ndr_print_uint16(ndr
, "auth_length", r
->auth_length
);
1774 ndr_print_uint32(ndr
, "call_id", r
->call_id
);
1775 ndr_print_set_switch_value(ndr
, &r
->u
, r
->ptype
);
1776 ndr_print_dcerpc_payload(ndr
, "u", &r
->u
);
1780 _PUBLIC_
enum ndr_err_code
ndr_push_ncadg_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct ncadg_packet
*r
)
1782 if (ndr_flags
& NDR_SCALARS
) {
1783 NDR_CHECK(ndr_push_align(ndr
, 4));
1784 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->rpc_vers
));
1785 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->ptype
));
1786 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pfc_flags
));
1787 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->ncadg_flags
));
1788 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->drep
, 3));
1789 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->serial_high
));
1790 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->object
));
1791 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->iface
));
1792 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->activity
));
1793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->server_boot
));
1794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->iface_version
));
1795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->seq_num
));
1796 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->opnum
));
1797 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ihint
));
1798 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ahint
));
1799 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->len
));
1800 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->fragnum
));
1801 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auth_proto
));
1802 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->serial_low
));
1803 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->u
, r
->ptype
));
1804 NDR_CHECK(ndr_push_dcerpc_payload(ndr
, NDR_SCALARS
, &r
->u
));
1805 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1807 if (ndr_flags
& NDR_BUFFERS
) {
1808 NDR_CHECK(ndr_push_dcerpc_payload(ndr
, NDR_BUFFERS
, &r
->u
));
1810 return NDR_ERR_SUCCESS
;
1813 _PUBLIC_
enum ndr_err_code
ndr_pull_ncadg_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct ncadg_packet
*r
)
1815 if (ndr_flags
& NDR_SCALARS
) {
1816 NDR_CHECK(ndr_pull_align(ndr
, 4));
1817 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->rpc_vers
));
1818 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->ptype
));
1819 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pfc_flags
));
1820 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->ncadg_flags
));
1821 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->drep
, 3));
1822 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->serial_high
));
1823 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->object
));
1824 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->iface
));
1825 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->activity
));
1826 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->server_boot
));
1827 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->iface_version
));
1828 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->seq_num
));
1829 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->opnum
));
1830 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ihint
));
1831 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ahint
));
1832 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->len
));
1833 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->fragnum
));
1834 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auth_proto
));
1835 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->serial_low
));
1836 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->u
, r
->ptype
));
1837 NDR_CHECK(ndr_pull_dcerpc_payload(ndr
, NDR_SCALARS
, &r
->u
));
1838 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1840 if (ndr_flags
& NDR_BUFFERS
) {
1841 NDR_CHECK(ndr_pull_dcerpc_payload(ndr
, NDR_BUFFERS
, &r
->u
));
1843 return NDR_ERR_SUCCESS
;
1846 _PUBLIC_
void ndr_print_ncadg_packet(struct ndr_print
*ndr
, const char *name
, const struct ncadg_packet
*r
)
1848 ndr_print_struct(ndr
, name
, "ncadg_packet");
1850 ndr_print_uint8(ndr
, "rpc_vers", r
->rpc_vers
);
1851 ndr_print_uint8(ndr
, "ptype", r
->ptype
);
1852 ndr_print_uint8(ndr
, "pfc_flags", r
->pfc_flags
);
1853 ndr_print_uint8(ndr
, "ncadg_flags", r
->ncadg_flags
);
1854 ndr_print_array_uint8(ndr
, "drep", r
->drep
, 3);
1855 ndr_print_uint8(ndr
, "serial_high", r
->serial_high
);
1856 ndr_print_GUID(ndr
, "object", &r
->object
);
1857 ndr_print_GUID(ndr
, "iface", &r
->iface
);
1858 ndr_print_GUID(ndr
, "activity", &r
->activity
);
1859 ndr_print_uint32(ndr
, "server_boot", r
->server_boot
);
1860 ndr_print_uint32(ndr
, "iface_version", r
->iface_version
);
1861 ndr_print_uint32(ndr
, "seq_num", r
->seq_num
);
1862 ndr_print_uint16(ndr
, "opnum", r
->opnum
);
1863 ndr_print_uint16(ndr
, "ihint", r
->ihint
);
1864 ndr_print_uint16(ndr
, "ahint", r
->ahint
);
1865 ndr_print_uint16(ndr
, "len", r
->len
);
1866 ndr_print_uint16(ndr
, "fragnum", r
->fragnum
);
1867 ndr_print_uint8(ndr
, "auth_proto", r
->auth_proto
);
1868 ndr_print_uint8(ndr
, "serial_low", r
->serial_low
);
1869 ndr_print_set_switch_value(ndr
, &r
->u
, r
->ptype
);
1870 ndr_print_dcerpc_payload(ndr
, "u", &r
->u
);