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);