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_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");
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
);
147 for (cntr_ctx_list_0
=0;cntr_ctx_list_0
<r
->num_contexts
;cntr_ctx_list_0
++) {
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
]);
155 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
156 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
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");
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));
196 NDR_CHECK(ndr_push_dcerpc_empty(ndr
, NDR_SCALARS
, &r
->empty
));
199 case LIBNDR_FLAG_OBJECT_PRESENT
: {
200 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->object
));
205 if (ndr_flags
& NDR_BUFFERS
) {
206 int level
= ndr_push_get_switch_value(ndr
, r
);
211 case LIBNDR_FLAG_OBJECT_PRESENT
:
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
)
222 level
= ndr_pull_get_switch_value(ndr
, r
);
223 if (ndr_flags
& NDR_SCALARS
) {
224 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
227 NDR_CHECK(ndr_pull_dcerpc_empty(ndr
, NDR_SCALARS
, &r
->empty
));
230 case LIBNDR_FLAG_OBJECT_PRESENT
: {
231 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->object
));
236 if (ndr_flags
& NDR_BUFFERS
) {
241 case LIBNDR_FLAG_OBJECT_PRESENT
:
246 return NDR_ERR_SUCCESS
;
249 _PUBLIC_
void ndr_print_dcerpc_object(struct ndr_print
*ndr
, const char *name
, const union dcerpc_object
*r
)
252 level
= ndr_print_get_switch_value(ndr
, r
);
253 ndr_print_union(ndr
, name
, level
, "dcerpc_object");
256 ndr_print_dcerpc_empty(ndr
, "empty", &r
->empty
);
259 case LIBNDR_FLAG_OBJECT_PRESENT
:
260 ndr_print_GUID(ndr
, "object", &r
->object
);
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");
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
);
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");
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
);
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");
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
);
459 for (cntr_ctx_list_0
=0;cntr_ctx_list_0
<r
->num_results
;cntr_ctx_list_0
++) {
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
]);
467 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
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");
513 ndr_print_uint32(ndr
, "num_versions", r
->num_versions
);
514 ndr
->print(ndr
, "%s: ARRAY(%d)", "versions", (int)r
->num_versions
);
516 for (cntr_versions_0
=0;cntr_versions_0
<r
->num_versions
;cntr_versions_0
++) {
518 if (asprintf(&idx_0
, "[%d]", cntr_versions_0
) != -1) {
519 ndr_print_uint32(ndr
, "versions", r
->versions
[cntr_versions_0
]);
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));
533 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
: {
534 NDR_CHECK(ndr_push_dcerpc_bind_nak_versions(ndr
, NDR_SCALARS
, &r
->v
));
542 if (ndr_flags
& NDR_BUFFERS
) {
543 int level
= ndr_push_get_switch_value(ndr
, r
);
545 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
:
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
)
559 level
= ndr_pull_get_switch_value(ndr
, r
);
560 if (ndr_flags
& NDR_SCALARS
) {
561 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
563 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
: {
564 NDR_CHECK(ndr_pull_dcerpc_bind_nak_versions(ndr
, NDR_SCALARS
, &r
->v
));
572 if (ndr_flags
& NDR_BUFFERS
) {
574 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
:
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
)
588 level
= ndr_print_get_switch_value(ndr
, r
);
589 ndr_print_union(ndr
, name
, level
, "dcerpc_bind_nak_versions_ctr");
591 case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED
:
592 ndr_print_dcerpc_bind_nak_versions(ndr
, "v", &r
->v
);
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");
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
);
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");
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
);
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");
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
);
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
)
768 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &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
;
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
)
801 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &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
;
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");
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
);
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");
918 ndr_print_uint32(ndr
, "_pad", r
->_pad
);
919 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
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");
963 ndr_print_uint32(ndr
, "_pad", r
->_pad
);
964 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
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");
1008 ndr_print_uint32(ndr
, "_pad", r
->_pad
);
1009 ndr_print_DATA_BLOB(ndr
, "auth_info", r
->auth_info
);
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");
1043 ndr_print_uint32(ndr
, "version", r
->version
);
1044 ndr_print_uint32(ndr
, "id", r
->id
);
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");
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
);
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");
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
);
1149 for (cntr_selack_0
=0;cntr_selack_0
<r
->selack_size
;cntr_selack_0
++) {
1151 if (asprintf(&idx_0
, "[%d]", cntr_selack_0
) != -1) {
1152 ndr_print_uint32(ndr
, "selack", r
->selack
[cntr_selack_0
]);
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");
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");
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");
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");
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
)
1285 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &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
;
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));
1325 case DCERPC_PKT_REQUEST
: {
1326 NDR_CHECK(ndr_push_dcerpc_request(ndr
, NDR_SCALARS
, &r
->request
));
1329 case DCERPC_PKT_PING
: {
1330 NDR_CHECK(ndr_push_dcerpc_ping(ndr
, NDR_SCALARS
, &r
->ping
));
1333 case DCERPC_PKT_RESPONSE
: {
1334 NDR_CHECK(ndr_push_dcerpc_response(ndr
, NDR_SCALARS
, &r
->response
));
1337 case DCERPC_PKT_FAULT
: {
1338 NDR_CHECK(ndr_push_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->fault
));
1341 case DCERPC_PKT_WORKING
: {
1342 NDR_CHECK(ndr_push_dcerpc_working(ndr
, NDR_SCALARS
, &r
->working
));
1345 case DCERPC_PKT_NOCALL
: {
1346 NDR_CHECK(ndr_push_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->nocall
));
1349 case DCERPC_PKT_REJECT
: {
1350 NDR_CHECK(ndr_push_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->reject
));
1353 case DCERPC_PKT_ACK
: {
1354 NDR_CHECK(ndr_push_dcerpc_ack(ndr
, NDR_SCALARS
, &r
->ack
));
1357 case DCERPC_PKT_CL_CANCEL
: {
1358 NDR_CHECK(ndr_push_dcerpc_cl_cancel(ndr
, NDR_SCALARS
, &r
->cl_cancel
));
1361 case DCERPC_PKT_FACK
: {
1362 NDR_CHECK(ndr_push_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->fack
));
1365 case DCERPC_PKT_CANCEL_ACK
: {
1366 NDR_CHECK(ndr_push_dcerpc_cancel_ack(ndr
, NDR_SCALARS
, &r
->cancel_ack
));
1369 case DCERPC_PKT_BIND
: {
1370 NDR_CHECK(ndr_push_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->bind
));
1373 case DCERPC_PKT_BIND_ACK
: {
1374 NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->bind_ack
));
1377 case DCERPC_PKT_BIND_NAK
: {
1378 NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr
, NDR_SCALARS
, &r
->bind_nak
));
1381 case DCERPC_PKT_ALTER
: {
1382 NDR_CHECK(ndr_push_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->alter
));
1385 case DCERPC_PKT_ALTER_RESP
: {
1386 NDR_CHECK(ndr_push_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->alter_resp
));
1389 case DCERPC_PKT_SHUTDOWN
: {
1390 NDR_CHECK(ndr_push_dcerpc_shutdown(ndr
, NDR_SCALARS
, &r
->shutdown
));
1393 case DCERPC_PKT_CO_CANCEL
: {
1394 NDR_CHECK(ndr_push_dcerpc_co_cancel(ndr
, NDR_SCALARS
, &r
->co_cancel
));
1397 case DCERPC_PKT_ORPHANED
: {
1398 NDR_CHECK(ndr_push_dcerpc_orphaned(ndr
, NDR_SCALARS
, &r
->orphaned
));
1401 case DCERPC_PKT_AUTH3
: {
1402 NDR_CHECK(ndr_push_dcerpc_auth3(ndr
, NDR_SCALARS
, &r
->auth3
));
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
);
1412 case DCERPC_PKT_REQUEST
:
1415 case DCERPC_PKT_PING
:
1418 case DCERPC_PKT_RESPONSE
:
1421 case DCERPC_PKT_FAULT
:
1424 case DCERPC_PKT_WORKING
:
1427 case DCERPC_PKT_NOCALL
:
1430 case DCERPC_PKT_REJECT
:
1433 case DCERPC_PKT_ACK
:
1436 case DCERPC_PKT_CL_CANCEL
:
1439 case DCERPC_PKT_FACK
:
1442 case DCERPC_PKT_CANCEL_ACK
:
1445 case DCERPC_PKT_BIND
:
1448 case DCERPC_PKT_BIND_ACK
:
1451 case DCERPC_PKT_BIND_NAK
:
1452 NDR_CHECK(ndr_push_dcerpc_bind_nak(ndr
, NDR_BUFFERS
, &r
->bind_nak
));
1455 case DCERPC_PKT_ALTER
:
1458 case DCERPC_PKT_ALTER_RESP
:
1461 case DCERPC_PKT_SHUTDOWN
:
1464 case DCERPC_PKT_CO_CANCEL
:
1467 case DCERPC_PKT_ORPHANED
:
1470 case DCERPC_PKT_AUTH3
:
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
)
1483 level
= ndr_pull_get_switch_value(ndr
, r
);
1484 if (ndr_flags
& NDR_SCALARS
) {
1485 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
1487 case DCERPC_PKT_REQUEST
: {
1488 NDR_CHECK(ndr_pull_dcerpc_request(ndr
, NDR_SCALARS
, &r
->request
));
1491 case DCERPC_PKT_PING
: {
1492 NDR_CHECK(ndr_pull_dcerpc_ping(ndr
, NDR_SCALARS
, &r
->ping
));
1495 case DCERPC_PKT_RESPONSE
: {
1496 NDR_CHECK(ndr_pull_dcerpc_response(ndr
, NDR_SCALARS
, &r
->response
));
1499 case DCERPC_PKT_FAULT
: {
1500 NDR_CHECK(ndr_pull_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->fault
));
1503 case DCERPC_PKT_WORKING
: {
1504 NDR_CHECK(ndr_pull_dcerpc_working(ndr
, NDR_SCALARS
, &r
->working
));
1507 case DCERPC_PKT_NOCALL
: {
1508 NDR_CHECK(ndr_pull_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->nocall
));
1511 case DCERPC_PKT_REJECT
: {
1512 NDR_CHECK(ndr_pull_dcerpc_fault(ndr
, NDR_SCALARS
, &r
->reject
));
1515 case DCERPC_PKT_ACK
: {
1516 NDR_CHECK(ndr_pull_dcerpc_ack(ndr
, NDR_SCALARS
, &r
->ack
));
1519 case DCERPC_PKT_CL_CANCEL
: {
1520 NDR_CHECK(ndr_pull_dcerpc_cl_cancel(ndr
, NDR_SCALARS
, &r
->cl_cancel
));
1523 case DCERPC_PKT_FACK
: {
1524 NDR_CHECK(ndr_pull_dcerpc_fack(ndr
, NDR_SCALARS
, &r
->fack
));
1527 case DCERPC_PKT_CANCEL_ACK
: {
1528 NDR_CHECK(ndr_pull_dcerpc_cancel_ack(ndr
, NDR_SCALARS
, &r
->cancel_ack
));
1531 case DCERPC_PKT_BIND
: {
1532 NDR_CHECK(ndr_pull_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->bind
));
1535 case DCERPC_PKT_BIND_ACK
: {
1536 NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->bind_ack
));
1539 case DCERPC_PKT_BIND_NAK
: {
1540 NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr
, NDR_SCALARS
, &r
->bind_nak
));
1543 case DCERPC_PKT_ALTER
: {
1544 NDR_CHECK(ndr_pull_dcerpc_bind(ndr
, NDR_SCALARS
, &r
->alter
));
1547 case DCERPC_PKT_ALTER_RESP
: {
1548 NDR_CHECK(ndr_pull_dcerpc_bind_ack(ndr
, NDR_SCALARS
, &r
->alter_resp
));
1551 case DCERPC_PKT_SHUTDOWN
: {
1552 NDR_CHECK(ndr_pull_dcerpc_shutdown(ndr
, NDR_SCALARS
, &r
->shutdown
));
1555 case DCERPC_PKT_CO_CANCEL
: {
1556 NDR_CHECK(ndr_pull_dcerpc_co_cancel(ndr
, NDR_SCALARS
, &r
->co_cancel
));
1559 case DCERPC_PKT_ORPHANED
: {
1560 NDR_CHECK(ndr_pull_dcerpc_orphaned(ndr
, NDR_SCALARS
, &r
->orphaned
));
1563 case DCERPC_PKT_AUTH3
: {
1564 NDR_CHECK(ndr_pull_dcerpc_auth3(ndr
, NDR_SCALARS
, &r
->auth3
));
1568 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1571 if (ndr_flags
& NDR_BUFFERS
) {
1573 case DCERPC_PKT_REQUEST
:
1576 case DCERPC_PKT_PING
:
1579 case DCERPC_PKT_RESPONSE
:
1582 case DCERPC_PKT_FAULT
:
1585 case DCERPC_PKT_WORKING
:
1588 case DCERPC_PKT_NOCALL
:
1591 case DCERPC_PKT_REJECT
:
1594 case DCERPC_PKT_ACK
:
1597 case DCERPC_PKT_CL_CANCEL
:
1600 case DCERPC_PKT_FACK
:
1603 case DCERPC_PKT_CANCEL_ACK
:
1606 case DCERPC_PKT_BIND
:
1609 case DCERPC_PKT_BIND_ACK
:
1612 case DCERPC_PKT_BIND_NAK
:
1613 NDR_CHECK(ndr_pull_dcerpc_bind_nak(ndr
, NDR_BUFFERS
, &r
->bind_nak
));
1616 case DCERPC_PKT_ALTER
:
1619 case DCERPC_PKT_ALTER_RESP
:
1622 case DCERPC_PKT_SHUTDOWN
:
1625 case DCERPC_PKT_CO_CANCEL
:
1628 case DCERPC_PKT_ORPHANED
:
1631 case DCERPC_PKT_AUTH3
:
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
)
1644 level
= ndr_print_get_switch_value(ndr
, r
);
1645 ndr_print_union(ndr
, name
, level
, "dcerpc_payload");
1647 case DCERPC_PKT_REQUEST
:
1648 ndr_print_dcerpc_request(ndr
, "request", &r
->request
);
1651 case DCERPC_PKT_PING
:
1652 ndr_print_dcerpc_ping(ndr
, "ping", &r
->ping
);
1655 case DCERPC_PKT_RESPONSE
:
1656 ndr_print_dcerpc_response(ndr
, "response", &r
->response
);
1659 case DCERPC_PKT_FAULT
:
1660 ndr_print_dcerpc_fault(ndr
, "fault", &r
->fault
);
1663 case DCERPC_PKT_WORKING
:
1664 ndr_print_dcerpc_working(ndr
, "working", &r
->working
);
1667 case DCERPC_PKT_NOCALL
:
1668 ndr_print_dcerpc_fack(ndr
, "nocall", &r
->nocall
);
1671 case DCERPC_PKT_REJECT
:
1672 ndr_print_dcerpc_fault(ndr
, "reject", &r
->reject
);
1675 case DCERPC_PKT_ACK
:
1676 ndr_print_dcerpc_ack(ndr
, "ack", &r
->ack
);
1679 case DCERPC_PKT_CL_CANCEL
:
1680 ndr_print_dcerpc_cl_cancel(ndr
, "cl_cancel", &r
->cl_cancel
);
1683 case DCERPC_PKT_FACK
:
1684 ndr_print_dcerpc_fack(ndr
, "fack", &r
->fack
);
1687 case DCERPC_PKT_CANCEL_ACK
:
1688 ndr_print_dcerpc_cancel_ack(ndr
, "cancel_ack", &r
->cancel_ack
);
1691 case DCERPC_PKT_BIND
:
1692 ndr_print_dcerpc_bind(ndr
, "bind", &r
->bind
);
1695 case DCERPC_PKT_BIND_ACK
:
1696 ndr_print_dcerpc_bind_ack(ndr
, "bind_ack", &r
->bind_ack
);
1699 case DCERPC_PKT_BIND_NAK
:
1700 ndr_print_dcerpc_bind_nak(ndr
, "bind_nak", &r
->bind_nak
);
1703 case DCERPC_PKT_ALTER
:
1704 ndr_print_dcerpc_bind(ndr
, "alter", &r
->alter
);
1707 case DCERPC_PKT_ALTER_RESP
:
1708 ndr_print_dcerpc_bind_ack(ndr
, "alter_resp", &r
->alter_resp
);
1711 case DCERPC_PKT_SHUTDOWN
:
1712 ndr_print_dcerpc_shutdown(ndr
, "shutdown", &r
->shutdown
);
1715 case DCERPC_PKT_CO_CANCEL
:
1716 ndr_print_dcerpc_co_cancel(ndr
, "co_cancel", &r
->co_cancel
);
1719 case DCERPC_PKT_ORPHANED
:
1720 ndr_print_dcerpc_orphaned(ndr
, "orphaned", &r
->orphaned
);
1723 case DCERPC_PKT_AUTH3
:
1724 ndr_print_dcerpc_auth3(ndr
, "auth3", &r
->auth3
);
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");
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
);
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");
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
);