IDL: Add autogenerated nbt files.
[Samba.git] / source / librpc / gen_ndr / ndr_nbt.c
blob1d36c4e0058e99eb23cd7fab0590184a4fe0ba7e
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_nbt.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_svcctl.h"
9 static enum ndr_err_code ndr_push_nbt_operation(struct ndr_push *ndr, int ndr_flags, uint16_t r)
11 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
12 return NDR_ERR_SUCCESS;
15 static enum ndr_err_code ndr_pull_nbt_operation(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
17 uint16_t v;
18 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
19 *r = v;
20 return NDR_ERR_SUCCESS;
23 _PUBLIC_ void ndr_print_nbt_operation(struct ndr_print *ndr, const char *name, uint16_t r)
25 ndr_print_uint16(ndr, name, r);
26 ndr->depth++;
27 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_RCODE", NBT_RCODE, r);
28 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_BROADCAST", NBT_FLAG_BROADCAST, r);
29 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_RECURSION_AVAIL", NBT_FLAG_RECURSION_AVAIL, r);
30 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_RECURSION_DESIRED", NBT_FLAG_RECURSION_DESIRED, r);
31 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_TRUNCATION", NBT_FLAG_TRUNCATION, r);
32 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_AUTHORITIVE", NBT_FLAG_AUTHORITIVE, r);
33 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_OPCODE", NBT_OPCODE, r);
34 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_REPLY", NBT_FLAG_REPLY, r);
35 ndr->depth--;
38 static enum ndr_err_code ndr_push_nbt_name_type(struct ndr_push *ndr, int ndr_flags, enum nbt_name_type r)
40 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
41 return NDR_ERR_SUCCESS;
44 static enum ndr_err_code ndr_pull_nbt_name_type(struct ndr_pull *ndr, int ndr_flags, enum nbt_name_type *r)
46 uint8_t v;
47 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
48 *r = v;
49 return NDR_ERR_SUCCESS;
52 _PUBLIC_ void ndr_print_nbt_name_type(struct ndr_print *ndr, const char *name, enum nbt_name_type r)
54 const char *val = NULL;
56 switch (r) {
57 case NBT_NAME_CLIENT: val = "NBT_NAME_CLIENT"; break;
58 case NBT_NAME_MS: val = "NBT_NAME_MS"; break;
59 case NBT_NAME_USER: val = "NBT_NAME_USER"; break;
60 case NBT_NAME_SERVER: val = "NBT_NAME_SERVER"; break;
61 case NBT_NAME_PDC: val = "NBT_NAME_PDC"; break;
62 case NBT_NAME_LOGON: val = "NBT_NAME_LOGON"; break;
63 case NBT_NAME_MASTER: val = "NBT_NAME_MASTER"; break;
64 case NBT_NAME_BROWSER: val = "NBT_NAME_BROWSER"; break;
66 ndr_print_enum(ndr, name, "ENUM", val, r);
69 _PUBLIC_ void ndr_print_nbt_name(struct ndr_print *ndr, const char *name, const struct nbt_name *r)
71 ndr_print_struct(ndr, name, "nbt_name");
72 ndr->depth++;
73 ndr_print_string(ndr, "name", r->name);
74 ndr_print_string(ndr, "scope", r->scope);
75 ndr_print_nbt_name_type(ndr, "type", r->type);
76 ndr->depth--;
79 static enum ndr_err_code ndr_push_nbt_qclass(struct ndr_push *ndr, int ndr_flags, enum nbt_qclass r)
81 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
82 return NDR_ERR_SUCCESS;
85 static enum ndr_err_code ndr_pull_nbt_qclass(struct ndr_pull *ndr, int ndr_flags, enum nbt_qclass *r)
87 uint16_t v;
88 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
89 *r = v;
90 return NDR_ERR_SUCCESS;
93 _PUBLIC_ void ndr_print_nbt_qclass(struct ndr_print *ndr, const char *name, enum nbt_qclass r)
95 const char *val = NULL;
97 switch (r) {
98 case NBT_QCLASS_IP: val = "NBT_QCLASS_IP"; break;
100 ndr_print_enum(ndr, name, "ENUM", val, r);
103 static enum ndr_err_code ndr_push_nbt_qtype(struct ndr_push *ndr, int ndr_flags, enum nbt_qtype r)
105 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
106 return NDR_ERR_SUCCESS;
109 static enum ndr_err_code ndr_pull_nbt_qtype(struct ndr_pull *ndr, int ndr_flags, enum nbt_qtype *r)
111 uint16_t v;
112 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
113 *r = v;
114 return NDR_ERR_SUCCESS;
117 _PUBLIC_ void ndr_print_nbt_qtype(struct ndr_print *ndr, const char *name, enum nbt_qtype r)
119 const char *val = NULL;
121 switch (r) {
122 case NBT_QTYPE_ADDRESS: val = "NBT_QTYPE_ADDRESS"; break;
123 case NBT_QTYPE_NAMESERVICE: val = "NBT_QTYPE_NAMESERVICE"; break;
124 case NBT_QTYPE_NULL: val = "NBT_QTYPE_NULL"; break;
125 case NBT_QTYPE_NETBIOS: val = "NBT_QTYPE_NETBIOS"; break;
126 case NBT_QTYPE_STATUS: val = "NBT_QTYPE_STATUS"; break;
128 ndr_print_enum(ndr, name, "ENUM", val, r);
131 static enum ndr_err_code ndr_push_nbt_name_question(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_question *r)
133 if (ndr_flags & NDR_SCALARS) {
134 NDR_CHECK(ndr_push_align(ndr, 4));
135 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->name));
136 NDR_CHECK(ndr_push_nbt_qtype(ndr, NDR_SCALARS, r->question_type));
137 NDR_CHECK(ndr_push_nbt_qclass(ndr, NDR_SCALARS, r->question_class));
139 if (ndr_flags & NDR_BUFFERS) {
141 return NDR_ERR_SUCCESS;
144 static enum ndr_err_code ndr_pull_nbt_name_question(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_question *r)
146 if (ndr_flags & NDR_SCALARS) {
147 NDR_CHECK(ndr_pull_align(ndr, 4));
148 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->name));
149 NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->question_type));
150 NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->question_class));
152 if (ndr_flags & NDR_BUFFERS) {
154 return NDR_ERR_SUCCESS;
157 _PUBLIC_ void ndr_print_nbt_name_question(struct ndr_print *ndr, const char *name, const struct nbt_name_question *r)
159 ndr_print_struct(ndr, name, "nbt_name_question");
160 ndr->depth++;
161 ndr_print_nbt_name(ndr, "name", &r->name);
162 ndr_print_nbt_qtype(ndr, "question_type", r->question_type);
163 ndr_print_nbt_qclass(ndr, "question_class", r->question_class);
164 ndr->depth--;
167 static enum ndr_err_code ndr_push_nb_flags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
169 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
170 return NDR_ERR_SUCCESS;
173 static enum ndr_err_code ndr_pull_nb_flags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
175 uint16_t v;
176 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
177 *r = v;
178 return NDR_ERR_SUCCESS;
181 _PUBLIC_ void ndr_print_nb_flags(struct ndr_print *ndr, const char *name, uint16_t r)
183 ndr_print_uint16(ndr, name, r);
184 ndr->depth++;
185 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_PERMANENT", NBT_NM_PERMANENT, r);
186 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_ACTIVE", NBT_NM_ACTIVE, r);
187 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_CONFLICT", NBT_NM_CONFLICT, r);
188 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_DEREGISTER", NBT_NM_DEREGISTER, r);
189 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_OWNER_TYPE", NBT_NM_OWNER_TYPE, r);
190 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_GROUP", NBT_NM_GROUP, r);
191 ndr->depth--;
194 static enum ndr_err_code ndr_push_nbt_rdata_address(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_address *r)
196 if (ndr_flags & NDR_SCALARS) {
197 NDR_CHECK(ndr_push_align(ndr, 4));
198 NDR_CHECK(ndr_push_nb_flags(ndr, NDR_SCALARS, r->nb_flags));
199 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->ipaddr));
201 if (ndr_flags & NDR_BUFFERS) {
203 return NDR_ERR_SUCCESS;
206 static enum ndr_err_code ndr_pull_nbt_rdata_address(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_address *r)
208 if (ndr_flags & NDR_SCALARS) {
209 NDR_CHECK(ndr_pull_align(ndr, 4));
210 NDR_CHECK(ndr_pull_nb_flags(ndr, NDR_SCALARS, &r->nb_flags));
211 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->ipaddr));
213 if (ndr_flags & NDR_BUFFERS) {
215 return NDR_ERR_SUCCESS;
218 _PUBLIC_ void ndr_print_nbt_rdata_address(struct ndr_print *ndr, const char *name, const struct nbt_rdata_address *r)
220 ndr_print_struct(ndr, name, "nbt_rdata_address");
221 ndr->depth++;
222 ndr_print_nb_flags(ndr, "nb_flags", r->nb_flags);
223 ndr_print_ipv4address(ndr, "ipaddr", r->ipaddr);
224 ndr->depth--;
227 static enum ndr_err_code ndr_push_nbt_rdata_netbios(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_netbios *r)
229 uint32_t cntr_addresses_0;
230 if (ndr_flags & NDR_SCALARS) {
231 NDR_CHECK(ndr_push_align(ndr, 4));
232 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
233 for (cntr_addresses_0 = 0; cntr_addresses_0 < r->length / 6; cntr_addresses_0++) {
234 NDR_CHECK(ndr_push_nbt_rdata_address(ndr, NDR_SCALARS, &r->addresses[cntr_addresses_0]));
237 if (ndr_flags & NDR_BUFFERS) {
239 return NDR_ERR_SUCCESS;
242 static enum ndr_err_code ndr_pull_nbt_rdata_netbios(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_netbios *r)
244 uint32_t cntr_addresses_0;
245 TALLOC_CTX *_mem_save_addresses_0;
246 if (ndr_flags & NDR_SCALARS) {
247 NDR_CHECK(ndr_pull_align(ndr, 4));
248 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
249 NDR_PULL_ALLOC_N(ndr, r->addresses, r->length / 6);
250 _mem_save_addresses_0 = NDR_PULL_GET_MEM_CTX(ndr);
251 NDR_PULL_SET_MEM_CTX(ndr, r->addresses, 0);
252 for (cntr_addresses_0 = 0; cntr_addresses_0 < r->length / 6; cntr_addresses_0++) {
253 NDR_CHECK(ndr_pull_nbt_rdata_address(ndr, NDR_SCALARS, &r->addresses[cntr_addresses_0]));
255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_0, 0);
257 if (ndr_flags & NDR_BUFFERS) {
259 return NDR_ERR_SUCCESS;
262 _PUBLIC_ void ndr_print_nbt_rdata_netbios(struct ndr_print *ndr, const char *name, const struct nbt_rdata_netbios *r)
264 uint32_t cntr_addresses_0;
265 ndr_print_struct(ndr, name, "nbt_rdata_netbios");
266 ndr->depth++;
267 ndr_print_uint16(ndr, "length", r->length);
268 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->length / 6);
269 ndr->depth++;
270 for (cntr_addresses_0=0;cntr_addresses_0<r->length / 6;cntr_addresses_0++) {
271 char *idx_0=NULL;
272 if (asprintf(&idx_0, "[%d]", cntr_addresses_0) != -1) {
273 ndr_print_nbt_rdata_address(ndr, "addresses", &r->addresses[cntr_addresses_0]);
274 free(idx_0);
277 ndr->depth--;
278 ndr->depth--;
281 static enum ndr_err_code ndr_push_nbt_statistics(struct ndr_push *ndr, int ndr_flags, const struct nbt_statistics *r)
283 if (ndr_flags & NDR_SCALARS) {
284 NDR_CHECK(ndr_push_align(ndr, 4));
285 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->unit_id, 6));
286 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->jumpers));
287 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->test_result));
288 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version_number));
289 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->period_of_statistics));
290 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_crcs));
291 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_alignment_errors));
292 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_collisions));
293 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_send_aborts));
294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_sends));
295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_receives));
296 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_retransmits));
297 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_no_resource_conditions));
298 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_free_command_blocks));
299 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_number_command_blocks));
300 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_number_command_blocks));
301 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_pending_sessions));
302 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_number_pending_sessions));
303 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_sessions_possible));
304 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->session_data_packet_size));
306 if (ndr_flags & NDR_BUFFERS) {
308 return NDR_ERR_SUCCESS;
311 static enum ndr_err_code ndr_pull_nbt_statistics(struct ndr_pull *ndr, int ndr_flags, struct nbt_statistics *r)
313 if (ndr_flags & NDR_SCALARS) {
314 NDR_CHECK(ndr_pull_align(ndr, 4));
315 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->unit_id, 6));
316 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->jumpers));
317 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->test_result));
318 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version_number));
319 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->period_of_statistics));
320 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_crcs));
321 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_alignment_errors));
322 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_collisions));
323 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_send_aborts));
324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_sends));
325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_receives));
326 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_retransmits));
327 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_no_resource_conditions));
328 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_free_command_blocks));
329 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_number_command_blocks));
330 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_number_command_blocks));
331 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_pending_sessions));
332 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_number_pending_sessions));
333 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_sessions_possible));
334 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->session_data_packet_size));
336 if (ndr_flags & NDR_BUFFERS) {
338 return NDR_ERR_SUCCESS;
341 _PUBLIC_ void ndr_print_nbt_statistics(struct ndr_print *ndr, const char *name, const struct nbt_statistics *r)
343 ndr_print_struct(ndr, name, "nbt_statistics");
344 ndr->depth++;
345 ndr_print_array_uint8(ndr, "unit_id", r->unit_id, 6);
346 ndr_print_uint8(ndr, "jumpers", r->jumpers);
347 ndr_print_uint8(ndr, "test_result", r->test_result);
348 ndr_print_uint16(ndr, "version_number", r->version_number);
349 ndr_print_uint16(ndr, "period_of_statistics", r->period_of_statistics);
350 ndr_print_uint16(ndr, "number_of_crcs", r->number_of_crcs);
351 ndr_print_uint16(ndr, "number_alignment_errors", r->number_alignment_errors);
352 ndr_print_uint16(ndr, "number_of_collisions", r->number_of_collisions);
353 ndr_print_uint16(ndr, "number_send_aborts", r->number_send_aborts);
354 ndr_print_uint32(ndr, "number_good_sends", r->number_good_sends);
355 ndr_print_uint32(ndr, "number_good_receives", r->number_good_receives);
356 ndr_print_uint16(ndr, "number_retransmits", r->number_retransmits);
357 ndr_print_uint16(ndr, "number_no_resource_conditions", r->number_no_resource_conditions);
358 ndr_print_uint16(ndr, "number_free_command_blocks", r->number_free_command_blocks);
359 ndr_print_uint16(ndr, "total_number_command_blocks", r->total_number_command_blocks);
360 ndr_print_uint16(ndr, "max_total_number_command_blocks", r->max_total_number_command_blocks);
361 ndr_print_uint16(ndr, "number_pending_sessions", r->number_pending_sessions);
362 ndr_print_uint16(ndr, "max_number_pending_sessions", r->max_number_pending_sessions);
363 ndr_print_uint16(ndr, "max_total_sessions_possible", r->max_total_sessions_possible);
364 ndr_print_uint16(ndr, "session_data_packet_size", r->session_data_packet_size);
365 ndr->depth--;
368 static enum ndr_err_code ndr_push_nbt_status_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_status_name *r)
370 if (ndr_flags & NDR_SCALARS) {
371 NDR_CHECK(ndr_push_align(ndr, 2));
372 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, 15, sizeof(uint8_t), CH_DOS));
373 NDR_CHECK(ndr_push_nbt_name_type(ndr, NDR_SCALARS, r->type));
374 NDR_CHECK(ndr_push_nb_flags(ndr, NDR_SCALARS, r->nb_flags));
376 if (ndr_flags & NDR_BUFFERS) {
378 return NDR_ERR_SUCCESS;
381 static enum ndr_err_code ndr_pull_nbt_status_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_status_name *r)
383 if (ndr_flags & NDR_SCALARS) {
384 NDR_CHECK(ndr_pull_align(ndr, 2));
385 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, 15, sizeof(uint8_t), CH_DOS));
386 NDR_CHECK(ndr_pull_nbt_name_type(ndr, NDR_SCALARS, &r->type));
387 NDR_CHECK(ndr_pull_nb_flags(ndr, NDR_SCALARS, &r->nb_flags));
389 if (ndr_flags & NDR_BUFFERS) {
391 return NDR_ERR_SUCCESS;
394 _PUBLIC_ void ndr_print_nbt_status_name(struct ndr_print *ndr, const char *name, const struct nbt_status_name *r)
396 ndr_print_struct(ndr, name, "nbt_status_name");
397 ndr->depth++;
398 ndr_print_string(ndr, "name", r->name);
399 ndr_print_nbt_name_type(ndr, "type", r->type);
400 ndr_print_nb_flags(ndr, "nb_flags", r->nb_flags);
401 ndr->depth--;
404 static enum ndr_err_code ndr_push_nbt_rdata_status(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_status *r)
406 uint32_t cntr_names_0;
407 if (ndr_flags & NDR_SCALARS) {
408 NDR_CHECK(ndr_push_align(ndr, 4));
409 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_names * 18 + 47));
410 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_names));
411 for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
412 NDR_CHECK(ndr_push_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
414 NDR_CHECK(ndr_push_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
416 if (ndr_flags & NDR_BUFFERS) {
418 return NDR_ERR_SUCCESS;
421 static enum ndr_err_code ndr_pull_nbt_rdata_status(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_status *r)
423 uint32_t cntr_names_0;
424 TALLOC_CTX *_mem_save_names_0;
425 if (ndr_flags & NDR_SCALARS) {
426 NDR_CHECK(ndr_pull_align(ndr, 4));
427 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
428 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_names));
429 NDR_PULL_ALLOC_N(ndr, r->names, r->num_names);
430 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
431 NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
432 for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
433 NDR_CHECK(ndr_pull_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
436 NDR_CHECK(ndr_pull_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
438 if (ndr_flags & NDR_BUFFERS) {
440 return NDR_ERR_SUCCESS;
443 _PUBLIC_ void ndr_print_nbt_rdata_status(struct ndr_print *ndr, const char *name, const struct nbt_rdata_status *r)
445 uint32_t cntr_names_0;
446 ndr_print_struct(ndr, name, "nbt_rdata_status");
447 ndr->depth++;
448 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->num_names * 18 + 47:r->length);
449 ndr_print_uint8(ndr, "num_names", r->num_names);
450 ndr->print(ndr, "%s: ARRAY(%d)", "names", r->num_names);
451 ndr->depth++;
452 for (cntr_names_0=0;cntr_names_0<r->num_names;cntr_names_0++) {
453 char *idx_0=NULL;
454 if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
455 ndr_print_nbt_status_name(ndr, "names", &r->names[cntr_names_0]);
456 free(idx_0);
459 ndr->depth--;
460 ndr_print_nbt_statistics(ndr, "statistics", &r->statistics);
461 ndr->depth--;
464 static enum ndr_err_code ndr_push_nbt_rdata_data(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_data *r)
466 if (ndr_flags & NDR_SCALARS) {
467 NDR_CHECK(ndr_push_align(ndr, 2));
468 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
469 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
471 if (ndr_flags & NDR_BUFFERS) {
473 return NDR_ERR_SUCCESS;
476 static enum ndr_err_code ndr_pull_nbt_rdata_data(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_data *r)
478 if (ndr_flags & NDR_SCALARS) {
479 NDR_CHECK(ndr_pull_align(ndr, 2));
480 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
481 NDR_PULL_ALLOC_N(ndr, r->data, r->length);
482 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
484 if (ndr_flags & NDR_BUFFERS) {
486 return NDR_ERR_SUCCESS;
489 _PUBLIC_ void ndr_print_nbt_rdata_data(struct ndr_print *ndr, const char *name, const struct nbt_rdata_data *r)
491 ndr_print_struct(ndr, name, "nbt_rdata_data");
492 ndr->depth++;
493 ndr_print_uint16(ndr, "length", r->length);
494 ndr_print_array_uint8(ndr, "data", r->data, r->length);
495 ndr->depth--;
498 static enum ndr_err_code ndr_push_nbt_rdata(struct ndr_push *ndr, int ndr_flags, const union nbt_rdata *r)
500 if (ndr_flags & NDR_SCALARS) {
501 int level = ndr_push_get_switch_value(ndr, r);
502 switch (level) {
503 case NBT_QTYPE_NETBIOS: {
504 NDR_CHECK(ndr_push_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
505 break; }
507 case NBT_QTYPE_STATUS: {
508 NDR_CHECK(ndr_push_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
509 break; }
511 default: {
512 NDR_CHECK(ndr_push_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
513 break; }
517 if (ndr_flags & NDR_BUFFERS) {
518 int level = ndr_push_get_switch_value(ndr, r);
519 switch (level) {
520 case NBT_QTYPE_NETBIOS:
521 break;
523 case NBT_QTYPE_STATUS:
524 break;
526 default:
527 break;
531 return NDR_ERR_SUCCESS;
534 static enum ndr_err_code ndr_pull_nbt_rdata(struct ndr_pull *ndr, int ndr_flags, union nbt_rdata *r)
536 int level;
537 level = ndr_pull_get_switch_value(ndr, r);
538 if (ndr_flags & NDR_SCALARS) {
539 switch (level) {
540 case NBT_QTYPE_NETBIOS: {
541 NDR_CHECK(ndr_pull_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
542 break; }
544 case NBT_QTYPE_STATUS: {
545 NDR_CHECK(ndr_pull_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
546 break; }
548 default: {
549 NDR_CHECK(ndr_pull_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
550 break; }
554 if (ndr_flags & NDR_BUFFERS) {
555 switch (level) {
556 case NBT_QTYPE_NETBIOS:
557 break;
559 case NBT_QTYPE_STATUS:
560 break;
562 default:
563 break;
567 return NDR_ERR_SUCCESS;
570 _PUBLIC_ void ndr_print_nbt_rdata(struct ndr_print *ndr, const char *name, const union nbt_rdata *r)
572 int level;
573 level = ndr_print_get_switch_value(ndr, r);
574 ndr_print_union(ndr, name, level, "nbt_rdata");
575 switch (level) {
576 case NBT_QTYPE_NETBIOS:
577 ndr_print_nbt_rdata_netbios(ndr, "netbios", &r->netbios);
578 break;
580 case NBT_QTYPE_STATUS:
581 ndr_print_nbt_rdata_status(ndr, "status", &r->status);
582 break;
584 default:
585 ndr_print_nbt_rdata_data(ndr, "data", &r->data);
586 break;
591 static enum ndr_err_code ndr_push_nbt_res_rec(struct ndr_push *ndr, int ndr_flags, const struct nbt_res_rec *r)
594 uint32_t _flags_save_STRUCT = ndr->flags;
595 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
596 if (ndr_flags & NDR_SCALARS) {
597 NDR_CHECK(ndr_push_align(ndr, 4));
598 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->name));
599 NDR_CHECK(ndr_push_nbt_qtype(ndr, NDR_SCALARS, r->rr_type));
600 NDR_CHECK(ndr_push_nbt_qclass(ndr, NDR_SCALARS, r->rr_class));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ttl));
602 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->rdata, ((((r->rr_type) == NBT_QTYPE_NETBIOS) && talloc_check_name(ndr, "struct ndr_push") && ((r->rdata).data.length == 2))?0:r->rr_type)));
603 NDR_CHECK(ndr_push_nbt_rdata(ndr, NDR_SCALARS, &r->rdata));
605 if (ndr_flags & NDR_BUFFERS) {
607 ndr->flags = _flags_save_STRUCT;
609 return NDR_ERR_SUCCESS;
612 static enum ndr_err_code ndr_pull_nbt_res_rec(struct ndr_pull *ndr, int ndr_flags, struct nbt_res_rec *r)
615 uint32_t _flags_save_STRUCT = ndr->flags;
616 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
617 if (ndr_flags & NDR_SCALARS) {
618 NDR_CHECK(ndr_pull_align(ndr, 4));
619 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->name));
620 NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->rr_type));
621 NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->rr_class));
622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
623 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rdata, ((((r->rr_type) == NBT_QTYPE_NETBIOS) && talloc_check_name(ndr, "struct ndr_push") && ((r->rdata).data.length == 2))?0:r->rr_type)));
624 NDR_CHECK(ndr_pull_nbt_rdata(ndr, NDR_SCALARS, &r->rdata));
626 if (ndr_flags & NDR_BUFFERS) {
628 ndr->flags = _flags_save_STRUCT;
630 return NDR_ERR_SUCCESS;
633 _PUBLIC_ void ndr_print_nbt_res_rec(struct ndr_print *ndr, const char *name, const struct nbt_res_rec *r)
635 ndr_print_struct(ndr, name, "nbt_res_rec");
637 uint32_t _flags_save_STRUCT = ndr->flags;
638 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
639 ndr->depth++;
640 ndr_print_nbt_name(ndr, "name", &r->name);
641 ndr_print_nbt_qtype(ndr, "rr_type", r->rr_type);
642 ndr_print_nbt_qclass(ndr, "rr_class", r->rr_class);
643 ndr_print_uint32(ndr, "ttl", r->ttl);
644 ndr_print_set_switch_value(ndr, &r->rdata, ((((r->rr_type) == NBT_QTYPE_NETBIOS) && talloc_check_name(ndr, "struct ndr_push") && ((r->rdata).data.length == 2))?0:r->rr_type));
645 ndr_print_nbt_rdata(ndr, "rdata", &r->rdata);
646 ndr->depth--;
647 ndr->flags = _flags_save_STRUCT;
651 _PUBLIC_ enum ndr_err_code ndr_push_nbt_name_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_packet *r)
653 uint32_t cntr_questions_0;
654 uint32_t cntr_answers_0;
655 uint32_t cntr_nsrecs_0;
656 uint32_t cntr_additional_0;
658 uint32_t _flags_save_STRUCT = ndr->flags;
659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
660 if (ndr_flags & NDR_SCALARS) {
661 NDR_CHECK(ndr_push_align(ndr, 4));
662 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->name_trn_id));
663 NDR_CHECK(ndr_push_nbt_operation(ndr, NDR_SCALARS, r->operation));
664 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->qdcount));
665 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ancount));
666 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nscount));
667 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->arcount));
668 for (cntr_questions_0 = 0; cntr_questions_0 < r->qdcount; cntr_questions_0++) {
669 NDR_CHECK(ndr_push_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
671 for (cntr_answers_0 = 0; cntr_answers_0 < r->ancount; cntr_answers_0++) {
672 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
674 for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < r->nscount; cntr_nsrecs_0++) {
675 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
677 for (cntr_additional_0 = 0; cntr_additional_0 < r->arcount; cntr_additional_0++) {
678 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
681 uint32_t _flags_save_DATA_BLOB = ndr->flags;
682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
683 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->padding));
684 ndr->flags = _flags_save_DATA_BLOB;
687 if (ndr_flags & NDR_BUFFERS) {
689 ndr->flags = _flags_save_STRUCT;
691 return NDR_ERR_SUCCESS;
694 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_name_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_packet *r)
696 uint32_t cntr_questions_0;
697 TALLOC_CTX *_mem_save_questions_0;
698 uint32_t cntr_answers_0;
699 TALLOC_CTX *_mem_save_answers_0;
700 uint32_t cntr_nsrecs_0;
701 TALLOC_CTX *_mem_save_nsrecs_0;
702 uint32_t cntr_additional_0;
703 TALLOC_CTX *_mem_save_additional_0;
705 uint32_t _flags_save_STRUCT = ndr->flags;
706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
707 if (ndr_flags & NDR_SCALARS) {
708 NDR_CHECK(ndr_pull_align(ndr, 4));
709 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_trn_id));
710 NDR_CHECK(ndr_pull_nbt_operation(ndr, NDR_SCALARS, &r->operation));
711 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->qdcount));
712 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ancount));
713 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nscount));
714 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->arcount));
715 NDR_PULL_ALLOC_N(ndr, r->questions, r->qdcount);
716 _mem_save_questions_0 = NDR_PULL_GET_MEM_CTX(ndr);
717 NDR_PULL_SET_MEM_CTX(ndr, r->questions, 0);
718 for (cntr_questions_0 = 0; cntr_questions_0 < r->qdcount; cntr_questions_0++) {
719 NDR_CHECK(ndr_pull_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_questions_0, 0);
722 NDR_PULL_ALLOC_N(ndr, r->answers, r->ancount);
723 _mem_save_answers_0 = NDR_PULL_GET_MEM_CTX(ndr);
724 NDR_PULL_SET_MEM_CTX(ndr, r->answers, 0);
725 for (cntr_answers_0 = 0; cntr_answers_0 < r->ancount; cntr_answers_0++) {
726 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_answers_0, 0);
729 NDR_PULL_ALLOC_N(ndr, r->nsrecs, r->nscount);
730 _mem_save_nsrecs_0 = NDR_PULL_GET_MEM_CTX(ndr);
731 NDR_PULL_SET_MEM_CTX(ndr, r->nsrecs, 0);
732 for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < r->nscount; cntr_nsrecs_0++) {
733 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nsrecs_0, 0);
736 NDR_PULL_ALLOC_N(ndr, r->additional, r->arcount);
737 _mem_save_additional_0 = NDR_PULL_GET_MEM_CTX(ndr);
738 NDR_PULL_SET_MEM_CTX(ndr, r->additional, 0);
739 for (cntr_additional_0 = 0; cntr_additional_0 < r->arcount; cntr_additional_0++) {
740 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_additional_0, 0);
744 uint32_t _flags_save_DATA_BLOB = ndr->flags;
745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
746 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->padding));
747 ndr->flags = _flags_save_DATA_BLOB;
750 if (ndr_flags & NDR_BUFFERS) {
752 ndr->flags = _flags_save_STRUCT;
754 return NDR_ERR_SUCCESS;
757 _PUBLIC_ void ndr_print_nbt_name_packet(struct ndr_print *ndr, const char *name, const struct nbt_name_packet *r)
759 uint32_t cntr_questions_0;
760 uint32_t cntr_answers_0;
761 uint32_t cntr_nsrecs_0;
762 uint32_t cntr_additional_0;
763 ndr_print_struct(ndr, name, "nbt_name_packet");
765 uint32_t _flags_save_STRUCT = ndr->flags;
766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
767 ndr->depth++;
768 ndr_print_uint16(ndr, "name_trn_id", r->name_trn_id);
769 ndr_print_nbt_operation(ndr, "operation", r->operation);
770 ndr_print_uint16(ndr, "qdcount", r->qdcount);
771 ndr_print_uint16(ndr, "ancount", r->ancount);
772 ndr_print_uint16(ndr, "nscount", r->nscount);
773 ndr_print_uint16(ndr, "arcount", r->arcount);
774 ndr->print(ndr, "%s: ARRAY(%d)", "questions", r->qdcount);
775 ndr->depth++;
776 for (cntr_questions_0=0;cntr_questions_0<r->qdcount;cntr_questions_0++) {
777 char *idx_0=NULL;
778 if (asprintf(&idx_0, "[%d]", cntr_questions_0) != -1) {
779 ndr_print_nbt_name_question(ndr, "questions", &r->questions[cntr_questions_0]);
780 free(idx_0);
783 ndr->depth--;
784 ndr->print(ndr, "%s: ARRAY(%d)", "answers", r->ancount);
785 ndr->depth++;
786 for (cntr_answers_0=0;cntr_answers_0<r->ancount;cntr_answers_0++) {
787 char *idx_0=NULL;
788 if (asprintf(&idx_0, "[%d]", cntr_answers_0) != -1) {
789 ndr_print_nbt_res_rec(ndr, "answers", &r->answers[cntr_answers_0]);
790 free(idx_0);
793 ndr->depth--;
794 ndr->print(ndr, "%s: ARRAY(%d)", "nsrecs", r->nscount);
795 ndr->depth++;
796 for (cntr_nsrecs_0=0;cntr_nsrecs_0<r->nscount;cntr_nsrecs_0++) {
797 char *idx_0=NULL;
798 if (asprintf(&idx_0, "[%d]", cntr_nsrecs_0) != -1) {
799 ndr_print_nbt_res_rec(ndr, "nsrecs", &r->nsrecs[cntr_nsrecs_0]);
800 free(idx_0);
803 ndr->depth--;
804 ndr->print(ndr, "%s: ARRAY(%d)", "additional", r->arcount);
805 ndr->depth++;
806 for (cntr_additional_0=0;cntr_additional_0<r->arcount;cntr_additional_0++) {
807 char *idx_0=NULL;
808 if (asprintf(&idx_0, "[%d]", cntr_additional_0) != -1) {
809 ndr_print_nbt_res_rec(ndr, "additional", &r->additional[cntr_additional_0]);
810 free(idx_0);
813 ndr->depth--;
814 ndr_print_DATA_BLOB(ndr, "padding", r->padding);
815 ndr->depth--;
816 ndr->flags = _flags_save_STRUCT;
820 static enum ndr_err_code ndr_push_dgram_msg_type(struct ndr_push *ndr, int ndr_flags, enum dgram_msg_type r)
822 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
823 return NDR_ERR_SUCCESS;
826 static enum ndr_err_code ndr_pull_dgram_msg_type(struct ndr_pull *ndr, int ndr_flags, enum dgram_msg_type *r)
828 uint8_t v;
829 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
830 *r = v;
831 return NDR_ERR_SUCCESS;
834 _PUBLIC_ void ndr_print_dgram_msg_type(struct ndr_print *ndr, const char *name, enum dgram_msg_type r)
836 const char *val = NULL;
838 switch (r) {
839 case DGRAM_DIRECT_UNIQUE: val = "DGRAM_DIRECT_UNIQUE"; break;
840 case DGRAM_DIRECT_GROUP: val = "DGRAM_DIRECT_GROUP"; break;
841 case DGRAM_BCAST: val = "DGRAM_BCAST"; break;
842 case DGRAM_ERROR: val = "DGRAM_ERROR"; break;
843 case DGRAM_QUERY: val = "DGRAM_QUERY"; break;
844 case DGRAM_QUERY_POSITIVE: val = "DGRAM_QUERY_POSITIVE"; break;
845 case DGRAM_QUERY_NEGATIVE: val = "DGRAM_QUERY_NEGATIVE"; break;
847 ndr_print_enum(ndr, name, "ENUM", val, r);
850 static enum ndr_err_code ndr_push_dgram_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
852 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
853 return NDR_ERR_SUCCESS;
856 static enum ndr_err_code ndr_pull_dgram_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
858 uint8_t v;
859 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
860 *r = v;
861 return NDR_ERR_SUCCESS;
864 _PUBLIC_ void ndr_print_dgram_flags(struct ndr_print *ndr, const char *name, uint8_t r)
866 ndr_print_uint8(ndr, name, r);
867 ndr->depth++;
868 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_MORE", DGRAM_FLAG_MORE, r);
869 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_FIRST", DGRAM_FLAG_FIRST, r);
870 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_NODE_TYPE", DGRAM_FLAG_NODE_TYPE, r);
871 ndr->depth--;
874 static enum ndr_err_code ndr_push_smb_command(struct ndr_push *ndr, int ndr_flags, enum smb_command r)
876 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
877 return NDR_ERR_SUCCESS;
880 static enum ndr_err_code ndr_pull_smb_command(struct ndr_pull *ndr, int ndr_flags, enum smb_command *r)
882 uint8_t v;
883 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
884 *r = v;
885 return NDR_ERR_SUCCESS;
888 _PUBLIC_ void ndr_print_smb_command(struct ndr_print *ndr, const char *name, enum smb_command r)
890 const char *val = NULL;
892 switch (r) {
893 case SMB_TRANSACTION: val = "SMB_TRANSACTION"; break;
895 ndr_print_enum(ndr, name, "ENUM", val, r);
898 static enum ndr_err_code ndr_push_smb_trans_body(struct ndr_push *ndr, int ndr_flags, const struct smb_trans_body *r)
900 if (ndr_flags & NDR_SCALARS) {
901 NDR_CHECK(ndr_push_align(ndr, 4));
902 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 17));
903 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_param_count));
904 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_data_count));
905 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_param_count));
906 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_data_count));
907 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->max_setup_count));
908 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
909 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->trans_flags));
910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timeout));
911 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
912 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_count));
913 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_offset));
914 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_count));
915 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_offset));
916 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 3));
917 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad2));
918 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opcode));
919 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->priority));
920 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->_class));
921 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->mailslot_name) + 1 + r->data.length));
923 uint32_t _flags_save_string = ndr->flags;
924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
925 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
926 ndr->flags = _flags_save_string;
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->data));
932 ndr->flags = _flags_save_DATA_BLOB;
935 if (ndr_flags & NDR_BUFFERS) {
937 return NDR_ERR_SUCCESS;
940 static enum ndr_err_code ndr_pull_smb_trans_body(struct ndr_pull *ndr, int ndr_flags, struct smb_trans_body *r)
942 if (ndr_flags & NDR_SCALARS) {
943 NDR_CHECK(ndr_pull_align(ndr, 4));
944 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->wct));
945 if (r->wct < 17 || r->wct > 17) {
946 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
948 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_param_count));
949 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_data_count));
950 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_param_count));
951 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_data_count));
952 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->max_setup_count));
953 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad));
954 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->trans_flags));
955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timeout));
956 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved));
957 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->param_count));
958 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->param_offset));
959 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data_count));
960 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data_offset));
961 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->setup_count));
962 if (r->setup_count < 3 || r->setup_count > 3) {
963 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
965 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad2));
966 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opcode));
967 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->priority));
968 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->_class));
969 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->byte_count));
971 uint32_t _flags_save_string = ndr->flags;
972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
973 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
974 ndr->flags = _flags_save_string;
977 uint32_t _flags_save_DATA_BLOB = ndr->flags;
978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
979 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
980 ndr->flags = _flags_save_DATA_BLOB;
983 if (ndr_flags & NDR_BUFFERS) {
985 return NDR_ERR_SUCCESS;
988 _PUBLIC_ void ndr_print_smb_trans_body(struct ndr_print *ndr, const char *name, const struct smb_trans_body *r)
990 ndr_print_struct(ndr, name, "smb_trans_body");
991 ndr->depth++;
992 ndr_print_uint8(ndr, "wct", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?17:r->wct);
993 ndr_print_uint16(ndr, "total_param_count", r->total_param_count);
994 ndr_print_uint16(ndr, "total_data_count", r->total_data_count);
995 ndr_print_uint16(ndr, "max_param_count", r->max_param_count);
996 ndr_print_uint16(ndr, "max_data_count", r->max_data_count);
997 ndr_print_uint8(ndr, "max_setup_count", r->max_setup_count);
998 ndr_print_uint8(ndr, "pad", r->pad);
999 ndr_print_uint16(ndr, "trans_flags", r->trans_flags);
1000 ndr_print_uint32(ndr, "timeout", r->timeout);
1001 ndr_print_uint16(ndr, "reserved", r->reserved);
1002 ndr_print_uint16(ndr, "param_count", r->param_count);
1003 ndr_print_uint16(ndr, "param_offset", r->param_offset);
1004 ndr_print_uint16(ndr, "data_count", r->data_count);
1005 ndr_print_uint16(ndr, "data_offset", r->data_offset);
1006 ndr_print_uint8(ndr, "setup_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?3:r->setup_count);
1007 ndr_print_uint8(ndr, "pad2", r->pad2);
1008 ndr_print_uint16(ndr, "opcode", r->opcode);
1009 ndr_print_uint16(ndr, "priority", r->priority);
1010 ndr_print_uint16(ndr, "_class", r->_class);
1011 ndr_print_uint16(ndr, "byte_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->mailslot_name) + 1 + r->data.length:r->byte_count);
1012 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1013 ndr_print_DATA_BLOB(ndr, "data", r->data);
1014 ndr->depth--;
1017 static enum ndr_err_code ndr_push_smb_body(struct ndr_push *ndr, int ndr_flags, const union smb_body *r)
1019 if (ndr_flags & NDR_SCALARS) {
1020 int level = ndr_push_get_switch_value(ndr, r);
1021 switch (level) {
1022 case SMB_TRANSACTION: {
1023 NDR_CHECK(ndr_push_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1024 break; }
1026 default:
1027 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1030 if (ndr_flags & NDR_BUFFERS) {
1031 int level = ndr_push_get_switch_value(ndr, r);
1032 switch (level) {
1033 case SMB_TRANSACTION:
1034 break;
1036 default:
1037 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1040 return NDR_ERR_SUCCESS;
1043 static enum ndr_err_code ndr_pull_smb_body(struct ndr_pull *ndr, int ndr_flags, union smb_body *r)
1045 int level;
1046 level = ndr_pull_get_switch_value(ndr, r);
1047 if (ndr_flags & NDR_SCALARS) {
1048 switch (level) {
1049 case SMB_TRANSACTION: {
1050 NDR_CHECK(ndr_pull_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1051 break; }
1053 default:
1054 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1057 if (ndr_flags & NDR_BUFFERS) {
1058 switch (level) {
1059 case SMB_TRANSACTION:
1060 break;
1062 default:
1063 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1066 return NDR_ERR_SUCCESS;
1069 _PUBLIC_ void ndr_print_smb_body(struct ndr_print *ndr, const char *name, const union smb_body *r)
1071 int level;
1072 level = ndr_print_get_switch_value(ndr, r);
1073 ndr_print_union(ndr, name, level, "smb_body");
1074 switch (level) {
1075 case SMB_TRANSACTION:
1076 ndr_print_smb_trans_body(ndr, "trans", &r->trans);
1077 break;
1079 default:
1080 ndr_print_bad_level(ndr, name, level);
1084 _PUBLIC_ enum ndr_err_code ndr_push_dgram_smb_packet(struct ndr_push *ndr, int ndr_flags, const struct dgram_smb_packet *r)
1087 uint32_t _flags_save_STRUCT = ndr->flags;
1088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1089 if (ndr_flags & NDR_SCALARS) {
1090 NDR_CHECK(ndr_push_align(ndr, 4));
1091 NDR_CHECK(ndr_push_smb_command(ndr, NDR_SCALARS, r->smb_command));
1092 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->err_class));
1093 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
1094 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->err_code));
1095 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->flags));
1096 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->flags2));
1097 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid_high));
1098 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->signature, 8));
1099 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
1100 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->tid));
1101 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid));
1102 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vuid));
1103 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->mid));
1104 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->smb_command));
1105 NDR_CHECK(ndr_push_smb_body(ndr, NDR_SCALARS, &r->body));
1107 if (ndr_flags & NDR_BUFFERS) {
1109 ndr->flags = _flags_save_STRUCT;
1111 return NDR_ERR_SUCCESS;
1114 _PUBLIC_ enum ndr_err_code ndr_pull_dgram_smb_packet(struct ndr_pull *ndr, int ndr_flags, struct dgram_smb_packet *r)
1117 uint32_t _flags_save_STRUCT = ndr->flags;
1118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1119 if (ndr_flags & NDR_SCALARS) {
1120 NDR_CHECK(ndr_pull_align(ndr, 4));
1121 NDR_CHECK(ndr_pull_smb_command(ndr, NDR_SCALARS, &r->smb_command));
1122 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->err_class));
1123 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad));
1124 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->err_code));
1125 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->flags));
1126 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->flags2));
1127 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid_high));
1128 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->signature, 8));
1129 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved));
1130 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->tid));
1131 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid));
1132 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vuid));
1133 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->mid));
1134 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->smb_command));
1135 NDR_CHECK(ndr_pull_smb_body(ndr, NDR_SCALARS, &r->body));
1137 if (ndr_flags & NDR_BUFFERS) {
1139 ndr->flags = _flags_save_STRUCT;
1141 return NDR_ERR_SUCCESS;
1144 _PUBLIC_ void ndr_print_dgram_smb_packet(struct ndr_print *ndr, const char *name, const struct dgram_smb_packet *r)
1146 ndr_print_struct(ndr, name, "dgram_smb_packet");
1148 uint32_t _flags_save_STRUCT = ndr->flags;
1149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1150 ndr->depth++;
1151 ndr_print_smb_command(ndr, "smb_command", r->smb_command);
1152 ndr_print_uint8(ndr, "err_class", r->err_class);
1153 ndr_print_uint8(ndr, "pad", r->pad);
1154 ndr_print_uint16(ndr, "err_code", r->err_code);
1155 ndr_print_uint8(ndr, "flags", r->flags);
1156 ndr_print_uint16(ndr, "flags2", r->flags2);
1157 ndr_print_uint16(ndr, "pid_high", r->pid_high);
1158 ndr_print_array_uint8(ndr, "signature", r->signature, 8);
1159 ndr_print_uint16(ndr, "reserved", r->reserved);
1160 ndr_print_uint16(ndr, "tid", r->tid);
1161 ndr_print_uint16(ndr, "pid", r->pid);
1162 ndr_print_uint16(ndr, "vuid", r->vuid);
1163 ndr_print_uint16(ndr, "mid", r->mid);
1164 ndr_print_set_switch_value(ndr, &r->body, r->smb_command);
1165 ndr_print_smb_body(ndr, "body", &r->body);
1166 ndr->depth--;
1167 ndr->flags = _flags_save_STRUCT;
1171 static enum ndr_err_code ndr_push_dgram_message_body(struct ndr_push *ndr, int ndr_flags, const union dgram_message_body *r)
1173 if (ndr_flags & NDR_SCALARS) {
1174 int level = ndr_push_get_switch_value(ndr, r);
1175 switch (level) {
1176 case DGRAM_SMB: {
1177 NDR_CHECK(ndr_push_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1178 break; }
1180 default:
1181 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1184 if (ndr_flags & NDR_BUFFERS) {
1185 int level = ndr_push_get_switch_value(ndr, r);
1186 switch (level) {
1187 case DGRAM_SMB:
1188 break;
1190 default:
1191 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1194 return NDR_ERR_SUCCESS;
1197 static enum ndr_err_code ndr_pull_dgram_message_body(struct ndr_pull *ndr, int ndr_flags, union dgram_message_body *r)
1199 int level;
1200 level = ndr_pull_get_switch_value(ndr, r);
1201 if (ndr_flags & NDR_SCALARS) {
1202 switch (level) {
1203 case DGRAM_SMB: {
1204 NDR_CHECK(ndr_pull_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1205 break; }
1207 default:
1208 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1211 if (ndr_flags & NDR_BUFFERS) {
1212 switch (level) {
1213 case DGRAM_SMB:
1214 break;
1216 default:
1217 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1220 return NDR_ERR_SUCCESS;
1223 _PUBLIC_ void ndr_print_dgram_message_body(struct ndr_print *ndr, const char *name, const union dgram_message_body *r)
1225 int level;
1226 level = ndr_print_get_switch_value(ndr, r);
1227 ndr_print_union(ndr, name, level, "dgram_message_body");
1228 switch (level) {
1229 case DGRAM_SMB:
1230 ndr_print_dgram_smb_packet(ndr, "smb", &r->smb);
1231 break;
1233 default:
1234 ndr_print_bad_level(ndr, name, level);
1238 static enum ndr_err_code ndr_push_dgram_message(struct ndr_push *ndr, int ndr_flags, const struct dgram_message *r)
1240 if (ndr_flags & NDR_SCALARS) {
1241 NDR_CHECK(ndr_push_align(ndr, 4));
1242 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1243 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->offset));
1244 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1245 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dgram_body_type));
1247 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->dgram_body_type));
1248 NDR_CHECK(ndr_push_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1250 if (ndr_flags & NDR_BUFFERS) {
1252 return NDR_ERR_SUCCESS;
1255 static enum ndr_err_code ndr_pull_dgram_message(struct ndr_pull *ndr, int ndr_flags, struct dgram_message *r)
1257 if (ndr_flags & NDR_SCALARS) {
1258 NDR_CHECK(ndr_pull_align(ndr, 4));
1259 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1260 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->offset));
1261 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1262 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dgram_body_type));
1264 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->dgram_body_type));
1265 NDR_CHECK(ndr_pull_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1267 if (ndr_flags & NDR_BUFFERS) {
1269 return NDR_ERR_SUCCESS;
1272 _PUBLIC_ void ndr_print_dgram_message(struct ndr_print *ndr, const char *name, const struct dgram_message *r)
1274 ndr_print_struct(ndr, name, "dgram_message");
1275 ndr->depth++;
1276 ndr_print_uint16(ndr, "length", r->length);
1277 ndr_print_uint16(ndr, "offset", r->offset);
1278 ndr_print_nbt_name(ndr, "source_name", &r->source_name);
1279 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1280 ndr_print_uint32(ndr, "dgram_body_type", r->dgram_body_type);
1281 ndr_print_set_switch_value(ndr, &r->body, r->dgram_body_type);
1282 ndr_print_dgram_message_body(ndr, "body", &r->body);
1283 ndr->depth--;
1286 static enum ndr_err_code ndr_push_dgram_err_code(struct ndr_push *ndr, int ndr_flags, enum dgram_err_code r)
1288 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
1289 return NDR_ERR_SUCCESS;
1292 static enum ndr_err_code ndr_pull_dgram_err_code(struct ndr_pull *ndr, int ndr_flags, enum dgram_err_code *r)
1294 uint8_t v;
1295 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
1296 *r = v;
1297 return NDR_ERR_SUCCESS;
1300 _PUBLIC_ void ndr_print_dgram_err_code(struct ndr_print *ndr, const char *name, enum dgram_err_code r)
1302 const char *val = NULL;
1304 switch (r) {
1305 case DGRAM_ERROR_NAME_NOT_PRESENT: val = "DGRAM_ERROR_NAME_NOT_PRESENT"; break;
1306 case DGRAM_ERROR_INVALID_SOURCE: val = "DGRAM_ERROR_INVALID_SOURCE"; break;
1307 case DGRAM_ERROR_INVALID_DEST: val = "DGRAM_ERROR_INVALID_DEST"; break;
1309 ndr_print_enum(ndr, name, "ENUM", val, r);
1312 static enum ndr_err_code ndr_push_dgram_data(struct ndr_push *ndr, int ndr_flags, const union dgram_data *r)
1314 if (ndr_flags & NDR_SCALARS) {
1315 int level = ndr_push_get_switch_value(ndr, r);
1316 switch (level) {
1317 case DGRAM_DIRECT_UNIQUE: {
1318 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1319 break; }
1321 case DGRAM_DIRECT_GROUP: {
1322 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1323 break; }
1325 case DGRAM_BCAST: {
1326 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1327 break; }
1329 case DGRAM_ERROR: {
1330 NDR_CHECK(ndr_push_dgram_err_code(ndr, NDR_SCALARS, r->error));
1331 break; }
1333 case DGRAM_QUERY: {
1334 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1335 break; }
1337 case DGRAM_QUERY_POSITIVE: {
1338 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1339 break; }
1341 case DGRAM_QUERY_NEGATIVE: {
1342 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1343 break; }
1345 default:
1346 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1349 if (ndr_flags & NDR_BUFFERS) {
1350 int level = ndr_push_get_switch_value(ndr, r);
1351 switch (level) {
1352 case DGRAM_DIRECT_UNIQUE:
1353 break;
1355 case DGRAM_DIRECT_GROUP:
1356 break;
1358 case DGRAM_BCAST:
1359 break;
1361 case DGRAM_ERROR:
1362 break;
1364 case DGRAM_QUERY:
1365 break;
1367 case DGRAM_QUERY_POSITIVE:
1368 break;
1370 case DGRAM_QUERY_NEGATIVE:
1371 break;
1373 default:
1374 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1377 return NDR_ERR_SUCCESS;
1380 static enum ndr_err_code ndr_pull_dgram_data(struct ndr_pull *ndr, int ndr_flags, union dgram_data *r)
1382 int level;
1383 level = ndr_pull_get_switch_value(ndr, r);
1384 if (ndr_flags & NDR_SCALARS) {
1385 switch (level) {
1386 case DGRAM_DIRECT_UNIQUE: {
1387 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1388 break; }
1390 case DGRAM_DIRECT_GROUP: {
1391 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1392 break; }
1394 case DGRAM_BCAST: {
1395 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1396 break; }
1398 case DGRAM_ERROR: {
1399 NDR_CHECK(ndr_pull_dgram_err_code(ndr, NDR_SCALARS, &r->error));
1400 break; }
1402 case DGRAM_QUERY: {
1403 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1404 break; }
1406 case DGRAM_QUERY_POSITIVE: {
1407 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1408 break; }
1410 case DGRAM_QUERY_NEGATIVE: {
1411 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1412 break; }
1414 default:
1415 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1418 if (ndr_flags & NDR_BUFFERS) {
1419 switch (level) {
1420 case DGRAM_DIRECT_UNIQUE:
1421 break;
1423 case DGRAM_DIRECT_GROUP:
1424 break;
1426 case DGRAM_BCAST:
1427 break;
1429 case DGRAM_ERROR:
1430 break;
1432 case DGRAM_QUERY:
1433 break;
1435 case DGRAM_QUERY_POSITIVE:
1436 break;
1438 case DGRAM_QUERY_NEGATIVE:
1439 break;
1441 default:
1442 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1445 return NDR_ERR_SUCCESS;
1448 _PUBLIC_ void ndr_print_dgram_data(struct ndr_print *ndr, const char *name, const union dgram_data *r)
1450 int level;
1451 level = ndr_print_get_switch_value(ndr, r);
1452 ndr_print_union(ndr, name, level, "dgram_data");
1453 switch (level) {
1454 case DGRAM_DIRECT_UNIQUE:
1455 ndr_print_dgram_message(ndr, "msg", &r->msg);
1456 break;
1458 case DGRAM_DIRECT_GROUP:
1459 ndr_print_dgram_message(ndr, "msg", &r->msg);
1460 break;
1462 case DGRAM_BCAST:
1463 ndr_print_dgram_message(ndr, "msg", &r->msg);
1464 break;
1466 case DGRAM_ERROR:
1467 ndr_print_dgram_err_code(ndr, "error", r->error);
1468 break;
1470 case DGRAM_QUERY:
1471 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1472 break;
1474 case DGRAM_QUERY_POSITIVE:
1475 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1476 break;
1478 case DGRAM_QUERY_NEGATIVE:
1479 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1480 break;
1482 default:
1483 ndr_print_bad_level(ndr, name, level);
1487 _PUBLIC_ enum ndr_err_code ndr_push_nbt_dgram_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_dgram_packet *r)
1490 uint32_t _flags_save_STRUCT = ndr->flags;
1491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1492 if (ndr_flags & NDR_SCALARS) {
1493 NDR_CHECK(ndr_push_align(ndr, 4));
1494 NDR_CHECK(ndr_push_dgram_msg_type(ndr, NDR_SCALARS, r->msg_type));
1495 NDR_CHECK(ndr_push_dgram_flags(ndr, NDR_SCALARS, r->flags));
1496 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->dgram_id));
1497 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->src_addr));
1498 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->src_port));
1499 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->msg_type));
1500 NDR_CHECK(ndr_push_dgram_data(ndr, NDR_SCALARS, &r->data));
1502 if (ndr_flags & NDR_BUFFERS) {
1504 ndr->flags = _flags_save_STRUCT;
1506 return NDR_ERR_SUCCESS;
1509 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_dgram_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_dgram_packet *r)
1512 uint32_t _flags_save_STRUCT = ndr->flags;
1513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1514 if (ndr_flags & NDR_SCALARS) {
1515 NDR_CHECK(ndr_pull_align(ndr, 4));
1516 NDR_CHECK(ndr_pull_dgram_msg_type(ndr, NDR_SCALARS, &r->msg_type));
1517 NDR_CHECK(ndr_pull_dgram_flags(ndr, NDR_SCALARS, &r->flags));
1518 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dgram_id));
1519 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->src_addr));
1520 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->src_port));
1521 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->msg_type));
1522 NDR_CHECK(ndr_pull_dgram_data(ndr, NDR_SCALARS, &r->data));
1524 if (ndr_flags & NDR_BUFFERS) {
1526 ndr->flags = _flags_save_STRUCT;
1528 return NDR_ERR_SUCCESS;
1531 _PUBLIC_ void ndr_print_nbt_dgram_packet(struct ndr_print *ndr, const char *name, const struct nbt_dgram_packet *r)
1533 ndr_print_struct(ndr, name, "nbt_dgram_packet");
1535 uint32_t _flags_save_STRUCT = ndr->flags;
1536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1537 ndr->depth++;
1538 ndr_print_dgram_msg_type(ndr, "msg_type", r->msg_type);
1539 ndr_print_dgram_flags(ndr, "flags", r->flags);
1540 ndr_print_uint16(ndr, "dgram_id", r->dgram_id);
1541 ndr_print_ipv4address(ndr, "src_addr", r->src_addr);
1542 ndr_print_uint16(ndr, "src_port", r->src_port);
1543 ndr_print_set_switch_value(ndr, &r->data, r->msg_type);
1544 ndr_print_dgram_data(ndr, "data", &r->data);
1545 ndr->depth--;
1546 ndr->flags = _flags_save_STRUCT;
1550 static enum ndr_err_code ndr_push_nbt_netlogon_command(struct ndr_push *ndr, int ndr_flags, enum nbt_netlogon_command r)
1552 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1553 return NDR_ERR_SUCCESS;
1556 static enum ndr_err_code ndr_pull_nbt_netlogon_command(struct ndr_pull *ndr, int ndr_flags, enum nbt_netlogon_command *r)
1558 uint16_t v;
1559 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1560 *r = v;
1561 return NDR_ERR_SUCCESS;
1564 _PUBLIC_ void ndr_print_nbt_netlogon_command(struct ndr_print *ndr, const char *name, enum nbt_netlogon_command r)
1566 const char *val = NULL;
1568 switch (r) {
1569 case NETLOGON_QUERY_FOR_PDC: val = "NETLOGON_QUERY_FOR_PDC"; break;
1570 case NETLOGON_ANNOUNCE_UAS: val = "NETLOGON_ANNOUNCE_UAS"; break;
1571 case NETLOGON_RESPONSE_FROM_PDC: val = "NETLOGON_RESPONSE_FROM_PDC"; break;
1572 case NETLOGON_QUERY_FOR_PDC2: val = "NETLOGON_QUERY_FOR_PDC2"; break;
1573 case NETLOGON_RESPONSE_FROM_PDC2: val = "NETLOGON_RESPONSE_FROM_PDC2"; break;
1574 case NETLOGON_RESPONSE_FROM_PDC_USER: val = "NETLOGON_RESPONSE_FROM_PDC_USER"; break;
1576 ndr_print_enum(ndr, name, "ENUM", val, r);
1579 static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_query_for_pdc *r)
1581 if (ndr_flags & NDR_SCALARS) {
1582 NDR_CHECK(ndr_push_align(ndr, 4));
1584 uint32_t _flags_save_string = ndr->flags;
1585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
1587 ndr->flags = _flags_save_string;
1590 uint32_t _flags_save_string = ndr->flags;
1591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1592 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
1593 ndr->flags = _flags_save_string;
1596 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
1598 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
1599 ndr->flags = _flags_save_DATA_BLOB;
1602 uint32_t _flags_save_string = ndr->flags;
1603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_name));
1605 ndr->flags = _flags_save_string;
1607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version));
1608 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1609 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1611 if (ndr_flags & NDR_BUFFERS) {
1613 return NDR_ERR_SUCCESS;
1616 static enum ndr_err_code ndr_pull_nbt_netlogon_query_for_pdc(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_query_for_pdc *r)
1618 if (ndr_flags & NDR_SCALARS) {
1619 NDR_CHECK(ndr_pull_align(ndr, 4));
1621 uint32_t _flags_save_string = ndr->flags;
1622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1623 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
1624 ndr->flags = _flags_save_string;
1627 uint32_t _flags_save_string = ndr->flags;
1628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1629 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
1630 ndr->flags = _flags_save_string;
1633 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
1635 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
1636 ndr->flags = _flags_save_DATA_BLOB;
1639 uint32_t _flags_save_string = ndr->flags;
1640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1641 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_name));
1642 ndr->flags = _flags_save_string;
1644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
1645 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1646 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1648 if (ndr_flags & NDR_BUFFERS) {
1650 return NDR_ERR_SUCCESS;
1653 _PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc *r)
1655 ndr_print_struct(ndr, name, "nbt_netlogon_query_for_pdc");
1656 ndr->depth++;
1657 ndr_print_string(ndr, "computer_name", r->computer_name);
1658 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1659 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
1660 ndr_print_string(ndr, "unicode_name", r->unicode_name);
1661 ndr_print_uint32(ndr, "nt_version", r->nt_version);
1662 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1663 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1664 ndr->depth--;
1667 static enum ndr_err_code ndr_push_nbt_netlogon_query_for_pdc2(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_query_for_pdc2 *r)
1669 uint32_t cntr_unknown_0;
1670 if (ndr_flags & NDR_SCALARS) {
1671 NDR_CHECK(ndr_push_align(ndr, 4));
1672 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->request_count));
1674 uint32_t _flags_save_string = ndr->flags;
1675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1676 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
1677 ndr->flags = _flags_save_string;
1680 uint32_t _flags_save_string = ndr->flags;
1681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1682 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
1683 ndr->flags = _flags_save_string;
1686 uint32_t _flags_save_string = ndr->flags;
1687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1688 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
1689 ndr->flags = _flags_save_string;
1691 for (cntr_unknown_0 = 0; cntr_unknown_0 < 2; cntr_unknown_0++) {
1692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version));
1695 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1696 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1698 if (ndr_flags & NDR_BUFFERS) {
1700 return NDR_ERR_SUCCESS;
1703 static enum ndr_err_code ndr_pull_nbt_netlogon_query_for_pdc2(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_query_for_pdc2 *r)
1705 uint32_t cntr_unknown_0;
1706 if (ndr_flags & NDR_SCALARS) {
1707 NDR_CHECK(ndr_pull_align(ndr, 4));
1708 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->request_count));
1710 uint32_t _flags_save_string = ndr->flags;
1711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1712 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
1713 ndr->flags = _flags_save_string;
1716 uint32_t _flags_save_string = ndr->flags;
1717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1718 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
1719 ndr->flags = _flags_save_string;
1722 uint32_t _flags_save_string = ndr->flags;
1723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1724 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
1725 ndr->flags = _flags_save_string;
1727 for (cntr_unknown_0 = 0; cntr_unknown_0 < 2; cntr_unknown_0++) {
1728 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
1731 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1732 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1734 if (ndr_flags & NDR_BUFFERS) {
1736 return NDR_ERR_SUCCESS;
1739 _PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc2(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc2 *r)
1741 uint32_t cntr_unknown_0;
1742 ndr_print_struct(ndr, name, "nbt_netlogon_query_for_pdc2");
1743 ndr->depth++;
1744 ndr_print_uint16(ndr, "request_count", r->request_count);
1745 ndr_print_string(ndr, "computer_name", r->computer_name);
1746 ndr_print_string(ndr, "user_name", r->user_name);
1747 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1748 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 2);
1749 ndr->depth++;
1750 for (cntr_unknown_0=0;cntr_unknown_0<2;cntr_unknown_0++) {
1751 char *idx_0=NULL;
1752 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1753 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1754 free(idx_0);
1757 ndr->depth--;
1758 ndr_print_uint32(ndr, "nt_version", r->nt_version);
1759 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1760 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1761 ndr->depth--;
1764 static enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_response_from_pdc *r)
1766 if (ndr_flags & NDR_SCALARS) {
1767 NDR_CHECK(ndr_push_align(ndr, 4));
1769 uint32_t _flags_save_string = ndr->flags;
1770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1771 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
1772 ndr->flags = _flags_save_string;
1775 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
1777 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
1778 ndr->flags = _flags_save_DATA_BLOB;
1781 uint32_t _flags_save_string = ndr->flags;
1782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1783 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
1784 ndr->flags = _flags_save_string;
1787 uint32_t _flags_save_string = ndr->flags;
1788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1789 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
1790 ndr->flags = _flags_save_string;
1792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version));
1793 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1794 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1796 if (ndr_flags & NDR_BUFFERS) {
1798 return NDR_ERR_SUCCESS;
1801 static enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_response_from_pdc *r)
1803 if (ndr_flags & NDR_SCALARS) {
1804 NDR_CHECK(ndr_pull_align(ndr, 4));
1806 uint32_t _flags_save_string = ndr->flags;
1807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
1808 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
1809 ndr->flags = _flags_save_string;
1812 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
1814 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
1815 ndr->flags = _flags_save_DATA_BLOB;
1818 uint32_t _flags_save_string = ndr->flags;
1819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1820 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
1821 ndr->flags = _flags_save_string;
1824 uint32_t _flags_save_string = ndr->flags;
1825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1826 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
1827 ndr->flags = _flags_save_string;
1829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
1830 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1831 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1833 if (ndr_flags & NDR_BUFFERS) {
1835 return NDR_ERR_SUCCESS;
1838 _PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc *r)
1840 ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc");
1841 ndr->depth++;
1842 ndr_print_string(ndr, "pdc_name", r->pdc_name);
1843 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
1844 ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
1845 ndr_print_string(ndr, "domain_name", r->domain_name);
1846 ndr_print_uint32(ndr, "nt_version", r->nt_version);
1847 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1848 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1849 ndr->depth--;
1852 static enum ndr_err_code ndr_push_nbt_server_type(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1855 return NDR_ERR_SUCCESS;
1858 static enum ndr_err_code ndr_pull_nbt_server_type(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1860 uint32_t v;
1861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1862 *r = v;
1863 return NDR_ERR_SUCCESS;
1866 _PUBLIC_ void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r)
1868 ndr_print_uint32(ndr, name, r);
1869 ndr->depth++;
1870 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC, r);
1871 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC, r);
1872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP, r);
1873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS, r);
1874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC, r);
1875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV, r);
1876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_CLOSEST", NBT_SERVER_CLOSEST, r);
1877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_WRITABLE", NBT_SERVER_WRITABLE, r);
1878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GOOD_TIMESERV", NBT_SERVER_GOOD_TIMESERV, r);
1879 ndr->depth--;
1882 static enum ndr_err_code ndr_push_nbt_netlogon_response_from_pdc2(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_response_from_pdc2 *r)
1884 uint32_t cntr_unknown3_0;
1885 if (ndr_flags & NDR_SCALARS) {
1886 NDR_CHECK(ndr_push_align(ndr, 4));
1888 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1890 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
1891 ndr->flags = _flags_save_DATA_BLOB;
1893 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
1894 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1895 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
1896 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
1897 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
1898 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
1899 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
1900 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));
1901 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));
1902 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site));
1903 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->unknown));
1904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
1906 uint32_t _flags_save_ipv4address = ndr->flags;
1907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1908 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
1909 ndr->flags = _flags_save_ipv4address;
1911 for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) {
1912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3[cntr_unknown3_0]));
1914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version));
1915 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1916 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1918 if (ndr_flags & NDR_BUFFERS) {
1920 return NDR_ERR_SUCCESS;
1923 static enum ndr_err_code ndr_pull_nbt_netlogon_response_from_pdc2(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_response_from_pdc2 *r)
1925 uint32_t cntr_unknown3_0;
1926 if (ndr_flags & NDR_SCALARS) {
1927 NDR_CHECK(ndr_pull_align(ndr, 4));
1929 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1931 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
1932 ndr->flags = _flags_save_DATA_BLOB;
1934 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
1935 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1936 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
1937 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
1938 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
1939 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
1940 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
1941 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));
1942 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));
1943 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site));
1944 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unknown));
1945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
1947 uint32_t _flags_save_ipv4address = ndr->flags;
1948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1949 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
1950 ndr->flags = _flags_save_ipv4address;
1952 for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) {
1953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3[cntr_unknown3_0]));
1955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
1956 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1957 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1959 if (ndr_flags & NDR_BUFFERS) {
1961 return NDR_ERR_SUCCESS;
1964 _PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc2(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc2 *r)
1966 uint32_t cntr_unknown3_0;
1967 ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc2");
1968 ndr->depth++;
1969 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
1970 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
1971 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
1972 ndr_print_nbt_string(ndr, "forest", r->forest);
1973 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
1974 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
1975 ndr_print_nbt_string(ndr, "domain", r->domain);
1976 ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
1977 ndr_print_nbt_string(ndr, "user_name", r->user_name);
1978 ndr_print_nbt_string(ndr, "server_site", r->server_site);
1979 ndr_print_nbt_string(ndr, "client_site", r->client_site);
1980 ndr_print_uint8(ndr, "unknown", r->unknown);
1981 ndr_print_uint32(ndr, "unknown2", r->unknown2);
1982 ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
1983 ndr->print(ndr, "%s: ARRAY(%d)", "unknown3", 2);
1984 ndr->depth++;
1985 for (cntr_unknown3_0=0;cntr_unknown3_0<2;cntr_unknown3_0++) {
1986 char *idx_0=NULL;
1987 if (asprintf(&idx_0, "[%d]", cntr_unknown3_0) != -1) {
1988 ndr_print_uint32(ndr, "unknown3", r->unknown3[cntr_unknown3_0]);
1989 free(idx_0);
1992 ndr->depth--;
1993 ndr_print_uint32(ndr, "nt_version", r->nt_version);
1994 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1995 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1996 ndr->depth--;
1999 static enum ndr_err_code ndr_push_nbt_db_change(struct ndr_push *ndr, int ndr_flags, const struct nbt_db_change *r)
2001 if (ndr_flags & NDR_SCALARS) {
2002 NDR_CHECK(ndr_push_align(ndr, 8));
2003 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->db_index));
2004 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->serial));
2005 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timestamp));
2007 if (ndr_flags & NDR_BUFFERS) {
2009 return NDR_ERR_SUCCESS;
2012 static enum ndr_err_code ndr_pull_nbt_db_change(struct ndr_pull *ndr, int ndr_flags, struct nbt_db_change *r)
2014 if (ndr_flags & NDR_SCALARS) {
2015 NDR_CHECK(ndr_pull_align(ndr, 8));
2016 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->db_index));
2017 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->serial));
2018 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timestamp));
2020 if (ndr_flags & NDR_BUFFERS) {
2022 return NDR_ERR_SUCCESS;
2025 _PUBLIC_ void ndr_print_nbt_db_change(struct ndr_print *ndr, const char *name, const struct nbt_db_change *r)
2027 ndr_print_struct(ndr, name, "nbt_db_change");
2028 ndr->depth++;
2029 ndr_print_netr_SamDatabaseID(ndr, "db_index", r->db_index);
2030 ndr_print_hyper(ndr, "serial", r->serial);
2031 ndr_print_NTTIME(ndr, "timestamp", r->timestamp);
2032 ndr->depth--;
2035 static enum ndr_err_code ndr_push_nbt_netlogon_announce_uas(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_announce_uas *r)
2037 uint32_t cntr_dbchange_0;
2038 if (ndr_flags & NDR_SCALARS) {
2039 NDR_CHECK(ndr_push_align(ndr, 8));
2040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_lo));
2041 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pulse));
2043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->random));
2045 uint32_t _flags_save_string = ndr->flags;
2046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2047 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2048 ndr->flags = _flags_save_string;
2051 uint32_t _flags_save_string = ndr->flags;
2052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2053 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
2054 ndr->flags = _flags_save_string;
2057 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2059 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2060 ndr->flags = _flags_save_DATA_BLOB;
2063 uint32_t _flags_save_string = ndr->flags;
2064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
2066 ndr->flags = _flags_save_string;
2069 uint32_t _flags_save_string = ndr->flags;
2070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2071 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_domain));
2072 ndr->flags = _flags_save_string;
2074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->db_count));
2075 for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
2076 NDR_CHECK(ndr_push_nbt_db_change(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid(&r->sid, ndr->flags)));
2080 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2082 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad2));
2083 ndr->flags = _flags_save_DATA_BLOB;
2085 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
2086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version));
2087 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2088 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2090 if (ndr_flags & NDR_BUFFERS) {
2091 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->sid));
2093 return NDR_ERR_SUCCESS;
2096 static enum ndr_err_code ndr_pull_nbt_netlogon_announce_uas(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_announce_uas *r)
2098 uint32_t cntr_dbchange_0;
2099 TALLOC_CTX *_mem_save_dbchange_0;
2100 if (ndr_flags & NDR_SCALARS) {
2101 NDR_CHECK(ndr_pull_align(ndr, 8));
2102 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_lo));
2103 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pulse));
2105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->random));
2107 uint32_t _flags_save_string = ndr->flags;
2108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2109 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2110 ndr->flags = _flags_save_string;
2113 uint32_t _flags_save_string = ndr->flags;
2114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2115 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
2116 ndr->flags = _flags_save_string;
2119 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2121 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2122 ndr->flags = _flags_save_DATA_BLOB;
2125 uint32_t _flags_save_string = ndr->flags;
2126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2127 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
2128 ndr->flags = _flags_save_string;
2131 uint32_t _flags_save_string = ndr->flags;
2132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2133 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_domain));
2134 ndr->flags = _flags_save_string;
2136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->db_count));
2137 NDR_PULL_ALLOC_N(ndr, r->dbchange, r->db_count);
2138 _mem_save_dbchange_0 = NDR_PULL_GET_MEM_CTX(ndr);
2139 NDR_PULL_SET_MEM_CTX(ndr, r->dbchange, 0);
2140 for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
2141 NDR_CHECK(ndr_pull_nbt_db_change(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dbchange_0, 0);
2144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));
2146 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2148 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad2));
2149 ndr->flags = _flags_save_DATA_BLOB;
2151 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
2152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
2153 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2154 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2156 if (ndr_flags & NDR_BUFFERS) {
2157 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->sid));
2159 return NDR_ERR_SUCCESS;
2162 _PUBLIC_ void ndr_print_nbt_netlogon_announce_uas(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_announce_uas *r)
2164 uint32_t cntr_dbchange_0;
2165 ndr_print_struct(ndr, name, "nbt_netlogon_announce_uas");
2166 ndr->depth++;
2167 ndr_print_uint32(ndr, "serial_lo", r->serial_lo);
2168 ndr_print_time_t(ndr, "timestamp", r->timestamp);
2169 ndr_print_uint32(ndr, "pulse", r->pulse);
2170 ndr_print_uint32(ndr, "random", r->random);
2171 ndr_print_string(ndr, "pdc_name", r->pdc_name);
2172 ndr_print_string(ndr, "domain", r->domain);
2173 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2174 ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
2175 ndr_print_string(ndr, "unicode_domain", r->unicode_domain);
2176 ndr_print_uint32(ndr, "db_count", r->db_count);
2177 ndr->print(ndr, "%s: ARRAY(%d)", "dbchange", r->db_count);
2178 ndr->depth++;
2179 for (cntr_dbchange_0=0;cntr_dbchange_0<r->db_count;cntr_dbchange_0++) {
2180 char *idx_0=NULL;
2181 if (asprintf(&idx_0, "[%d]", cntr_dbchange_0) != -1) {
2182 ndr_print_nbt_db_change(ndr, "dbchange", &r->dbchange[cntr_dbchange_0]);
2183 free(idx_0);
2186 ndr->depth--;
2187 ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid(&r->sid, ndr->flags):r->sid_size);
2188 ndr_print_DATA_BLOB(ndr, "_pad2", r->_pad2);
2189 ndr_print_dom_sid(ndr, "sid", &r->sid);
2190 ndr_print_uint32(ndr, "nt_version", r->nt_version);
2191 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2192 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2193 ndr->depth--;
2196 static enum ndr_err_code ndr_push_nbt_netlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_netlogon_request *r)
2198 if (ndr_flags & NDR_SCALARS) {
2199 int level = ndr_push_get_switch_value(ndr, r);
2200 switch (level) {
2201 case NETLOGON_QUERY_FOR_PDC: {
2202 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2203 break; }
2205 case NETLOGON_QUERY_FOR_PDC2: {
2206 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc2(ndr, NDR_SCALARS, &r->pdc2));
2207 break; }
2209 case NETLOGON_ANNOUNCE_UAS: {
2210 NDR_CHECK(ndr_push_nbt_netlogon_announce_uas(ndr, NDR_SCALARS, &r->uas));
2211 break; }
2213 case NETLOGON_RESPONSE_FROM_PDC: {
2214 NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc(ndr, NDR_SCALARS, &r->response));
2215 break; }
2217 case NETLOGON_RESPONSE_FROM_PDC2: {
2218 NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
2219 break; }
2221 case NETLOGON_RESPONSE_FROM_PDC_USER: {
2222 NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
2223 break; }
2225 default:
2226 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2229 if (ndr_flags & NDR_BUFFERS) {
2230 int level = ndr_push_get_switch_value(ndr, r);
2231 switch (level) {
2232 case NETLOGON_QUERY_FOR_PDC:
2233 break;
2235 case NETLOGON_QUERY_FOR_PDC2:
2236 break;
2238 case NETLOGON_ANNOUNCE_UAS:
2239 NDR_CHECK(ndr_push_nbt_netlogon_announce_uas(ndr, NDR_BUFFERS, &r->uas));
2240 break;
2242 case NETLOGON_RESPONSE_FROM_PDC:
2243 break;
2245 case NETLOGON_RESPONSE_FROM_PDC2:
2246 break;
2248 case NETLOGON_RESPONSE_FROM_PDC_USER:
2249 break;
2251 default:
2252 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2255 return NDR_ERR_SUCCESS;
2258 static enum ndr_err_code ndr_pull_nbt_netlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_netlogon_request *r)
2260 int level;
2261 level = ndr_pull_get_switch_value(ndr, r);
2262 if (ndr_flags & NDR_SCALARS) {
2263 switch (level) {
2264 case NETLOGON_QUERY_FOR_PDC: {
2265 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2266 break; }
2268 case NETLOGON_QUERY_FOR_PDC2: {
2269 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc2(ndr, NDR_SCALARS, &r->pdc2));
2270 break; }
2272 case NETLOGON_ANNOUNCE_UAS: {
2273 NDR_CHECK(ndr_pull_nbt_netlogon_announce_uas(ndr, NDR_SCALARS, &r->uas));
2274 break; }
2276 case NETLOGON_RESPONSE_FROM_PDC: {
2277 NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc(ndr, NDR_SCALARS, &r->response));
2278 break; }
2280 case NETLOGON_RESPONSE_FROM_PDC2: {
2281 NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
2282 break; }
2284 case NETLOGON_RESPONSE_FROM_PDC_USER: {
2285 NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->response2));
2286 break; }
2288 default:
2289 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2292 if (ndr_flags & NDR_BUFFERS) {
2293 switch (level) {
2294 case NETLOGON_QUERY_FOR_PDC:
2295 break;
2297 case NETLOGON_QUERY_FOR_PDC2:
2298 break;
2300 case NETLOGON_ANNOUNCE_UAS:
2301 NDR_CHECK(ndr_pull_nbt_netlogon_announce_uas(ndr, NDR_BUFFERS, &r->uas));
2302 break;
2304 case NETLOGON_RESPONSE_FROM_PDC:
2305 break;
2307 case NETLOGON_RESPONSE_FROM_PDC2:
2308 break;
2310 case NETLOGON_RESPONSE_FROM_PDC_USER:
2311 break;
2313 default:
2314 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2317 return NDR_ERR_SUCCESS;
2320 _PUBLIC_ void ndr_print_nbt_netlogon_request(struct ndr_print *ndr, const char *name, const union nbt_netlogon_request *r)
2322 int level;
2323 level = ndr_print_get_switch_value(ndr, r);
2324 ndr_print_union(ndr, name, level, "nbt_netlogon_request");
2325 switch (level) {
2326 case NETLOGON_QUERY_FOR_PDC:
2327 ndr_print_nbt_netlogon_query_for_pdc(ndr, "pdc", &r->pdc);
2328 break;
2330 case NETLOGON_QUERY_FOR_PDC2:
2331 ndr_print_nbt_netlogon_query_for_pdc2(ndr, "pdc2", &r->pdc2);
2332 break;
2334 case NETLOGON_ANNOUNCE_UAS:
2335 ndr_print_nbt_netlogon_announce_uas(ndr, "uas", &r->uas);
2336 break;
2338 case NETLOGON_RESPONSE_FROM_PDC:
2339 ndr_print_nbt_netlogon_response_from_pdc(ndr, "response", &r->response);
2340 break;
2342 case NETLOGON_RESPONSE_FROM_PDC2:
2343 ndr_print_nbt_netlogon_response_from_pdc2(ndr, "response2", &r->response2);
2344 break;
2346 case NETLOGON_RESPONSE_FROM_PDC_USER:
2347 ndr_print_nbt_netlogon_response_from_pdc2(ndr, "response2", &r->response2);
2348 break;
2350 default:
2351 ndr_print_bad_level(ndr, name, level);
2355 _PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_packet *r)
2358 uint32_t _flags_save_STRUCT = ndr->flags;
2359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2360 if (ndr_flags & NDR_SCALARS) {
2361 NDR_CHECK(ndr_push_align(ndr, 8));
2362 NDR_CHECK(ndr_push_nbt_netlogon_command(ndr, NDR_SCALARS, r->command));
2363 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->req, r->command));
2364 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2366 if (ndr_flags & NDR_BUFFERS) {
2367 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2369 ndr->flags = _flags_save_STRUCT;
2371 return NDR_ERR_SUCCESS;
2374 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_packet *r)
2377 uint32_t _flags_save_STRUCT = ndr->flags;
2378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2379 if (ndr_flags & NDR_SCALARS) {
2380 NDR_CHECK(ndr_pull_align(ndr, 8));
2381 NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr, NDR_SCALARS, &r->command));
2382 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->req, r->command));
2383 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2385 if (ndr_flags & NDR_BUFFERS) {
2386 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2388 ndr->flags = _flags_save_STRUCT;
2390 return NDR_ERR_SUCCESS;
2393 _PUBLIC_ void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r)
2395 ndr_print_struct(ndr, name, "nbt_netlogon_packet");
2397 uint32_t _flags_save_STRUCT = ndr->flags;
2398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2399 ndr->depth++;
2400 ndr_print_nbt_netlogon_command(ndr, "command", r->command);
2401 ndr_print_set_switch_value(ndr, &r->req, r->command);
2402 ndr_print_nbt_netlogon_request(ndr, "req", &r->req);
2403 ndr->depth--;
2404 ndr->flags = _flags_save_STRUCT;
2408 static enum ndr_err_code ndr_push_nbt_cldap_netlogon_1(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_1 *r)
2410 if (ndr_flags & NDR_SCALARS) {
2411 NDR_CHECK(ndr_push_align(ndr, 4));
2412 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->type));
2414 uint32_t _flags_save_string = ndr->flags;
2415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2416 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2417 ndr->flags = _flags_save_string;
2420 uint32_t _flags_save_string = ndr->flags;
2421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2422 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2423 ndr->flags = _flags_save_string;
2426 uint32_t _flags_save_string = ndr->flags;
2427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2428 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
2429 ndr->flags = _flags_save_string;
2431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
2432 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2433 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2435 if (ndr_flags & NDR_BUFFERS) {
2437 return NDR_ERR_SUCCESS;
2440 static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_1(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_1 *r)
2442 if (ndr_flags & NDR_SCALARS) {
2443 NDR_CHECK(ndr_pull_align(ndr, 4));
2444 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->type));
2446 uint32_t _flags_save_string = ndr->flags;
2447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2448 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2449 ndr->flags = _flags_save_string;
2452 uint32_t _flags_save_string = ndr->flags;
2453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2454 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2455 ndr->flags = _flags_save_string;
2458 uint32_t _flags_save_string = ndr->flags;
2459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2460 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
2461 ndr->flags = _flags_save_string;
2463 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
2464 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2465 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2467 if (ndr_flags & NDR_BUFFERS) {
2469 return NDR_ERR_SUCCESS;
2472 _PUBLIC_ void ndr_print_nbt_cldap_netlogon_1(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_1 *r)
2474 ndr_print_struct(ndr, name, "nbt_cldap_netlogon_1");
2475 ndr->depth++;
2476 ndr_print_uint16(ndr, "type", r->type);
2477 ndr_print_string(ndr, "pdc_name", r->pdc_name);
2478 ndr_print_string(ndr, "user_name", r->user_name);
2479 ndr_print_string(ndr, "domain_name", r->domain_name);
2480 ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->nt_version);
2481 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2482 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2483 ndr->depth--;
2486 static enum ndr_err_code ndr_push_nbt_cldap_netlogon_3(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_3 *r)
2488 if (ndr_flags & NDR_SCALARS) {
2489 NDR_CHECK(ndr_push_align(ndr, 4));
2490 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->type));
2492 uint32_t _flags_save_string = ndr->flags;
2493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2494 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2495 ndr->flags = _flags_save_string;
2498 uint32_t _flags_save_string = ndr->flags;
2499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2500 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2501 ndr->flags = _flags_save_string;
2504 uint32_t _flags_save_string = ndr->flags;
2505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2506 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
2507 ndr->flags = _flags_save_string;
2509 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2510 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->unknown_uuid));
2511 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
2512 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
2513 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
2514 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
2515 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
2516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 3));
2517 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2518 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2520 if (ndr_flags & NDR_BUFFERS) {
2522 return NDR_ERR_SUCCESS;
2525 static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_3(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_3 *r)
2527 if (ndr_flags & NDR_SCALARS) {
2528 NDR_CHECK(ndr_pull_align(ndr, 4));
2529 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->type));
2531 uint32_t _flags_save_string = ndr->flags;
2532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2533 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2534 ndr->flags = _flags_save_string;
2537 uint32_t _flags_save_string = ndr->flags;
2538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2539 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2540 ndr->flags = _flags_save_string;
2543 uint32_t _flags_save_string = ndr->flags;
2544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2545 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
2546 ndr->flags = _flags_save_string;
2548 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2549 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->unknown_uuid));
2550 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
2551 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
2552 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
2553 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
2554 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
2555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
2556 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2557 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2559 if (ndr_flags & NDR_BUFFERS) {
2561 return NDR_ERR_SUCCESS;
2564 _PUBLIC_ void ndr_print_nbt_cldap_netlogon_3(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_3 *r)
2566 ndr_print_struct(ndr, name, "nbt_cldap_netlogon_3");
2567 ndr->depth++;
2568 ndr_print_uint16(ndr, "type", r->type);
2569 ndr_print_string(ndr, "pdc_name", r->pdc_name);
2570 ndr_print_string(ndr, "user_name", r->user_name);
2571 ndr_print_string(ndr, "domain_name", r->domain_name);
2572 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
2573 ndr_print_GUID(ndr, "unknown_uuid", &r->unknown_uuid);
2574 ndr_print_nbt_string(ndr, "forest", r->forest);
2575 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
2576 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
2577 ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
2578 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
2579 ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?3:r->nt_version);
2580 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2581 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2582 ndr->depth--;
2585 static enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_5 *r)
2587 if (ndr_flags & NDR_SCALARS) {
2588 NDR_CHECK(ndr_push_align(ndr, 4));
2589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
2590 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
2591 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2592 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
2593 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
2594 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
2595 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
2596 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
2597 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));
2598 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));
2599 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site));
2600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 5));
2601 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2602 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2604 if (ndr_flags & NDR_BUFFERS) {
2606 return NDR_ERR_SUCCESS;
2609 static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_5 *r)
2611 if (ndr_flags & NDR_SCALARS) {
2612 NDR_CHECK(ndr_pull_align(ndr, 4));
2613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
2614 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
2615 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2616 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
2617 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
2618 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
2619 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
2620 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
2621 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));
2622 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));
2623 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site));
2624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
2625 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2626 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2628 if (ndr_flags & NDR_BUFFERS) {
2630 return NDR_ERR_SUCCESS;
2633 _PUBLIC_ void ndr_print_nbt_cldap_netlogon_5(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_5 *r)
2635 ndr_print_struct(ndr, name, "nbt_cldap_netlogon_5");
2636 ndr->depth++;
2637 ndr_print_uint32(ndr, "type", r->type);
2638 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
2639 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
2640 ndr_print_nbt_string(ndr, "forest", r->forest);
2641 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
2642 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
2643 ndr_print_nbt_string(ndr, "domain", r->domain);
2644 ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
2645 ndr_print_nbt_string(ndr, "user_name", r->user_name);
2646 ndr_print_nbt_string(ndr, "server_site", r->server_site);
2647 ndr_print_nbt_string(ndr, "client_site", r->client_site);
2648 ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?5:r->nt_version);
2649 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2650 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2651 ndr->depth--;
2654 static enum ndr_err_code ndr_push_nbt_cldap_netlogon_13(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_13 *r)
2656 uint32_t cntr_unknown3_0;
2657 if (ndr_flags & NDR_SCALARS) {
2658 NDR_CHECK(ndr_push_align(ndr, 4));
2659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
2660 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
2661 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2662 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
2663 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
2664 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
2665 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
2666 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
2667 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));
2668 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));
2669 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site));
2670 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->unknown));
2671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2673 uint32_t _flags_save_ipv4address = ndr->flags;
2674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
2675 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
2676 ndr->flags = _flags_save_ipv4address;
2678 for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) {
2679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3[cntr_unknown3_0]));
2681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 13));
2682 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2683 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2685 if (ndr_flags & NDR_BUFFERS) {
2687 return NDR_ERR_SUCCESS;
2690 static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_13(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_13 *r)
2692 uint32_t cntr_unknown3_0;
2693 if (ndr_flags & NDR_SCALARS) {
2694 NDR_CHECK(ndr_pull_align(ndr, 4));
2695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
2696 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
2697 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2698 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
2699 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
2700 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
2701 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
2702 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
2703 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));
2704 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));
2705 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site));
2706 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unknown));
2707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2709 uint32_t _flags_save_ipv4address = ndr->flags;
2710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
2711 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
2712 ndr->flags = _flags_save_ipv4address;
2714 for (cntr_unknown3_0 = 0; cntr_unknown3_0 < 2; cntr_unknown3_0++) {
2715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3[cntr_unknown3_0]));
2717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
2718 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2719 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2721 if (ndr_flags & NDR_BUFFERS) {
2723 return NDR_ERR_SUCCESS;
2726 _PUBLIC_ void ndr_print_nbt_cldap_netlogon_13(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_13 *r)
2728 uint32_t cntr_unknown3_0;
2729 ndr_print_struct(ndr, name, "nbt_cldap_netlogon_13");
2730 ndr->depth++;
2731 ndr_print_uint32(ndr, "type", r->type);
2732 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
2733 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
2734 ndr_print_nbt_string(ndr, "forest", r->forest);
2735 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
2736 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
2737 ndr_print_nbt_string(ndr, "domain", r->domain);
2738 ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
2739 ndr_print_nbt_string(ndr, "user_name", r->user_name);
2740 ndr_print_nbt_string(ndr, "server_site", r->server_site);
2741 ndr_print_nbt_string(ndr, "client_site", r->client_site);
2742 ndr_print_uint8(ndr, "unknown", r->unknown);
2743 ndr_print_uint32(ndr, "unknown2", r->unknown2);
2744 ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
2745 ndr->print(ndr, "%s: ARRAY(%d)", "unknown3", 2);
2746 ndr->depth++;
2747 for (cntr_unknown3_0=0;cntr_unknown3_0<2;cntr_unknown3_0++) {
2748 char *idx_0=NULL;
2749 if (asprintf(&idx_0, "[%d]", cntr_unknown3_0) != -1) {
2750 ndr_print_uint32(ndr, "unknown3", r->unknown3[cntr_unknown3_0]);
2751 free(idx_0);
2754 ndr->depth--;
2755 ndr_print_uint32(ndr, "nt_version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?13:r->nt_version);
2756 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2757 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2758 ndr->depth--;
2761 _PUBLIC_ enum ndr_err_code ndr_push_nbt_cldap_netlogon(struct ndr_push *ndr, int ndr_flags, const union nbt_cldap_netlogon *r)
2764 uint32_t _flags_save_UNION = ndr->flags;
2765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2766 if (ndr_flags & NDR_SCALARS) {
2767 int level = ndr_push_get_switch_value(ndr, r);
2768 switch (level) {
2769 case 0: {
2770 NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
2771 break; }
2773 case 1: {
2774 NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
2775 break; }
2777 case 2: {
2778 NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
2779 break; }
2781 case 3: {
2782 NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
2783 break; }
2785 case 4: {
2786 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2787 break; }
2789 case 5: {
2790 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2791 break; }
2793 case 6: {
2794 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2795 break; }
2797 case 7: {
2798 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2799 break; }
2801 default: {
2802 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
2803 break; }
2807 if (ndr_flags & NDR_BUFFERS) {
2808 int level = ndr_push_get_switch_value(ndr, r);
2809 switch (level) {
2810 case 0:
2811 break;
2813 case 1:
2814 break;
2816 case 2:
2817 break;
2819 case 3:
2820 break;
2822 case 4:
2823 break;
2825 case 5:
2826 break;
2828 case 6:
2829 break;
2831 case 7:
2832 break;
2834 default:
2835 break;
2839 ndr->flags = _flags_save_UNION;
2841 return NDR_ERR_SUCCESS;
2844 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_cldap_netlogon(struct ndr_pull *ndr, int ndr_flags, union nbt_cldap_netlogon *r)
2846 int level;
2848 uint32_t _flags_save_UNION = ndr->flags;
2849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2850 level = ndr_pull_get_switch_value(ndr, r);
2851 if (ndr_flags & NDR_SCALARS) {
2852 switch (level) {
2853 case 0: {
2854 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
2855 break; }
2857 case 1: {
2858 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr, NDR_SCALARS, &r->logon1));
2859 break; }
2861 case 2: {
2862 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
2863 break; }
2865 case 3: {
2866 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr, NDR_SCALARS, &r->logon3));
2867 break; }
2869 case 4: {
2870 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2871 break; }
2873 case 5: {
2874 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2875 break; }
2877 case 6: {
2878 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2879 break; }
2881 case 7: {
2882 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr, NDR_SCALARS, &r->logon5));
2883 break; }
2885 default: {
2886 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr, NDR_SCALARS, &r->logon13));
2887 break; }
2891 if (ndr_flags & NDR_BUFFERS) {
2892 switch (level) {
2893 case 0:
2894 break;
2896 case 1:
2897 break;
2899 case 2:
2900 break;
2902 case 3:
2903 break;
2905 case 4:
2906 break;
2908 case 5:
2909 break;
2911 case 6:
2912 break;
2914 case 7:
2915 break;
2917 default:
2918 break;
2922 ndr->flags = _flags_save_UNION;
2924 return NDR_ERR_SUCCESS;
2927 _PUBLIC_ void ndr_print_nbt_cldap_netlogon(struct ndr_print *ndr, const char *name, const union nbt_cldap_netlogon *r)
2929 int level;
2931 uint32_t _flags_save_UNION = ndr->flags;
2932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2933 level = ndr_print_get_switch_value(ndr, r);
2934 ndr_print_union(ndr, name, level, "nbt_cldap_netlogon");
2935 switch (level) {
2936 case 0:
2937 ndr_print_nbt_cldap_netlogon_1(ndr, "logon1", &r->logon1);
2938 break;
2940 case 1:
2941 ndr_print_nbt_cldap_netlogon_1(ndr, "logon1", &r->logon1);
2942 break;
2944 case 2:
2945 ndr_print_nbt_cldap_netlogon_3(ndr, "logon3", &r->logon3);
2946 break;
2948 case 3:
2949 ndr_print_nbt_cldap_netlogon_3(ndr, "logon3", &r->logon3);
2950 break;
2952 case 4:
2953 ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
2954 break;
2956 case 5:
2957 ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
2958 break;
2960 case 6:
2961 ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
2962 break;
2964 case 7:
2965 ndr_print_nbt_cldap_netlogon_5(ndr, "logon5", &r->logon5);
2966 break;
2968 default:
2969 ndr_print_nbt_cldap_netlogon_13(ndr, "logon13", &r->logon13);
2970 break;
2973 ndr->flags = _flags_save_UNION;
2977 static enum ndr_err_code ndr_push_nbt_ntlogon_command(struct ndr_push *ndr, int ndr_flags, enum nbt_ntlogon_command r)
2979 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
2980 return NDR_ERR_SUCCESS;
2983 static enum ndr_err_code ndr_pull_nbt_ntlogon_command(struct ndr_pull *ndr, int ndr_flags, enum nbt_ntlogon_command *r)
2985 uint16_t v;
2986 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
2987 *r = v;
2988 return NDR_ERR_SUCCESS;
2991 _PUBLIC_ void ndr_print_nbt_ntlogon_command(struct ndr_print *ndr, const char *name, enum nbt_ntlogon_command r)
2993 const char *val = NULL;
2995 switch (r) {
2996 case NTLOGON_SAM_LOGON: val = "NTLOGON_SAM_LOGON"; break;
2997 case NTLOGON_SAM_LOGON_REPLY: val = "NTLOGON_SAM_LOGON_REPLY"; break;
2998 case NTLOGON_SAM_LOGON_REPLY15: val = "NTLOGON_SAM_LOGON_REPLY15"; break;
3000 ndr_print_enum(ndr, name, "ENUM", val, r);
3003 static enum ndr_err_code ndr_push_nbt_ntlogon_sam_logon(struct ndr_push *ndr, int ndr_flags, const struct nbt_ntlogon_sam_logon *r)
3005 if (ndr_flags & NDR_SCALARS) {
3006 NDR_CHECK(ndr_push_align(ndr, 4));
3007 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->request_count));
3009 uint32_t _flags_save_string = ndr->flags;
3010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3011 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
3012 ndr->flags = _flags_save_string;
3015 uint32_t _flags_save_string = ndr->flags;
3016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3017 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3018 ndr->flags = _flags_save_string;
3021 uint32_t _flags_save_string = ndr->flags;
3022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3023 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
3024 ndr->flags = _flags_save_string;
3026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->acct_control));
3027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid(&r->sid, ndr->flags)));
3029 uint32_t _flags_save_DATA_BLOB = ndr->flags;
3030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3031 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
3032 ndr->flags = _flags_save_DATA_BLOB;
3034 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
3035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version));
3036 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
3037 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
3039 if (ndr_flags & NDR_BUFFERS) {
3040 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->sid));
3042 return NDR_ERR_SUCCESS;
3045 static enum ndr_err_code ndr_pull_nbt_ntlogon_sam_logon(struct ndr_pull *ndr, int ndr_flags, struct nbt_ntlogon_sam_logon *r)
3047 if (ndr_flags & NDR_SCALARS) {
3048 NDR_CHECK(ndr_pull_align(ndr, 4));
3049 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->request_count));
3051 uint32_t _flags_save_string = ndr->flags;
3052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3053 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
3054 ndr->flags = _flags_save_string;
3057 uint32_t _flags_save_string = ndr->flags;
3058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3059 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3060 ndr->flags = _flags_save_string;
3063 uint32_t _flags_save_string = ndr->flags;
3064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3065 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
3066 ndr->flags = _flags_save_string;
3068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->acct_control));
3069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));
3071 uint32_t _flags_save_DATA_BLOB = ndr->flags;
3072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3073 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
3074 ndr->flags = _flags_save_DATA_BLOB;
3076 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
3077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
3078 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
3079 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
3081 if (ndr_flags & NDR_BUFFERS) {
3082 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->sid));
3084 return NDR_ERR_SUCCESS;
3087 _PUBLIC_ void ndr_print_nbt_ntlogon_sam_logon(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_sam_logon *r)
3089 ndr_print_struct(ndr, name, "nbt_ntlogon_sam_logon");
3090 ndr->depth++;
3091 ndr_print_uint16(ndr, "request_count", r->request_count);
3092 ndr_print_string(ndr, "computer_name", r->computer_name);
3093 ndr_print_string(ndr, "user_name", r->user_name);
3094 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
3095 ndr_print_uint32(ndr, "acct_control", r->acct_control);
3096 ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid(&r->sid, ndr->flags):r->sid_size);
3097 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
3098 ndr_print_dom_sid(ndr, "sid", &r->sid);
3099 ndr_print_uint32(ndr, "nt_version", r->nt_version);
3100 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
3101 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
3102 ndr->depth--;
3105 static enum ndr_err_code ndr_push_nbt_ntlogon_sam_logon_reply(struct ndr_push *ndr, int ndr_flags, const struct nbt_ntlogon_sam_logon_reply *r)
3107 if (ndr_flags & NDR_SCALARS) {
3108 NDR_CHECK(ndr_push_align(ndr, 4));
3110 uint32_t _flags_save_string = ndr->flags;
3111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server));
3113 ndr->flags = _flags_save_string;
3116 uint32_t _flags_save_string = ndr->flags;
3117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3118 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3119 ndr->flags = _flags_save_string;
3122 uint32_t _flags_save_string = ndr->flags;
3123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3124 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
3125 ndr->flags = _flags_save_string;
3127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_version));
3128 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
3129 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
3131 if (ndr_flags & NDR_BUFFERS) {
3133 return NDR_ERR_SUCCESS;
3136 static enum ndr_err_code ndr_pull_nbt_ntlogon_sam_logon_reply(struct ndr_pull *ndr, int ndr_flags, struct nbt_ntlogon_sam_logon_reply *r)
3138 if (ndr_flags & NDR_SCALARS) {
3139 NDR_CHECK(ndr_pull_align(ndr, 4));
3141 uint32_t _flags_save_string = ndr->flags;
3142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3143 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server));
3144 ndr->flags = _flags_save_string;
3147 uint32_t _flags_save_string = ndr->flags;
3148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3149 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3150 ndr->flags = _flags_save_string;
3153 uint32_t _flags_save_string = ndr->flags;
3154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3155 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
3156 ndr->flags = _flags_save_string;
3158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_version));
3159 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
3160 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
3162 if (ndr_flags & NDR_BUFFERS) {
3164 return NDR_ERR_SUCCESS;
3167 _PUBLIC_ void ndr_print_nbt_ntlogon_sam_logon_reply(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_sam_logon_reply *r)
3169 ndr_print_struct(ndr, name, "nbt_ntlogon_sam_logon_reply");
3170 ndr->depth++;
3171 ndr_print_string(ndr, "server", r->server);
3172 ndr_print_string(ndr, "user_name", r->user_name);
3173 ndr_print_string(ndr, "domain", r->domain);
3174 ndr_print_uint32(ndr, "nt_version", r->nt_version);
3175 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
3176 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
3177 ndr->depth--;
3180 static enum ndr_err_code ndr_push_nbt_ntlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_ntlogon_request *r)
3182 if (ndr_flags & NDR_SCALARS) {
3183 int level = ndr_push_get_switch_value(ndr, r);
3184 switch (level) {
3185 case NTLOGON_SAM_LOGON: {
3186 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon(ndr, NDR_SCALARS, &r->logon));
3187 break; }
3189 case NTLOGON_SAM_LOGON_REPLY: {
3190 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
3191 break; }
3193 case NTLOGON_SAM_LOGON_REPLY15: {
3194 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
3195 break; }
3197 default:
3198 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3201 if (ndr_flags & NDR_BUFFERS) {
3202 int level = ndr_push_get_switch_value(ndr, r);
3203 switch (level) {
3204 case NTLOGON_SAM_LOGON:
3205 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon(ndr, NDR_BUFFERS, &r->logon));
3206 break;
3208 case NTLOGON_SAM_LOGON_REPLY:
3209 break;
3211 case NTLOGON_SAM_LOGON_REPLY15:
3212 break;
3214 default:
3215 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3218 return NDR_ERR_SUCCESS;
3221 static enum ndr_err_code ndr_pull_nbt_ntlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_ntlogon_request *r)
3223 int level;
3224 level = ndr_pull_get_switch_value(ndr, r);
3225 if (ndr_flags & NDR_SCALARS) {
3226 switch (level) {
3227 case NTLOGON_SAM_LOGON: {
3228 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon(ndr, NDR_SCALARS, &r->logon));
3229 break; }
3231 case NTLOGON_SAM_LOGON_REPLY: {
3232 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
3233 break; }
3235 case NTLOGON_SAM_LOGON_REPLY15: {
3236 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
3237 break; }
3239 default:
3240 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3243 if (ndr_flags & NDR_BUFFERS) {
3244 switch (level) {
3245 case NTLOGON_SAM_LOGON:
3246 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon(ndr, NDR_BUFFERS, &r->logon));
3247 break;
3249 case NTLOGON_SAM_LOGON_REPLY:
3250 break;
3252 case NTLOGON_SAM_LOGON_REPLY15:
3253 break;
3255 default:
3256 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3259 return NDR_ERR_SUCCESS;
3262 _PUBLIC_ void ndr_print_nbt_ntlogon_request(struct ndr_print *ndr, const char *name, const union nbt_ntlogon_request *r)
3264 int level;
3265 level = ndr_print_get_switch_value(ndr, r);
3266 ndr_print_union(ndr, name, level, "nbt_ntlogon_request");
3267 switch (level) {
3268 case NTLOGON_SAM_LOGON:
3269 ndr_print_nbt_ntlogon_sam_logon(ndr, "logon", &r->logon);
3270 break;
3272 case NTLOGON_SAM_LOGON_REPLY:
3273 ndr_print_nbt_ntlogon_sam_logon_reply(ndr, "reply", &r->reply);
3274 break;
3276 case NTLOGON_SAM_LOGON_REPLY15:
3277 ndr_print_nbt_ntlogon_sam_logon_reply(ndr, "reply", &r->reply);
3278 break;
3280 default:
3281 ndr_print_bad_level(ndr, name, level);
3285 _PUBLIC_ enum ndr_err_code ndr_push_nbt_ntlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_ntlogon_packet *r)
3288 uint32_t _flags_save_STRUCT = ndr->flags;
3289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3290 if (ndr_flags & NDR_SCALARS) {
3291 NDR_CHECK(ndr_push_align(ndr, 4));
3292 NDR_CHECK(ndr_push_nbt_ntlogon_command(ndr, NDR_SCALARS, r->command));
3293 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->req, r->command));
3294 NDR_CHECK(ndr_push_nbt_ntlogon_request(ndr, NDR_SCALARS, &r->req));
3296 if (ndr_flags & NDR_BUFFERS) {
3297 NDR_CHECK(ndr_push_nbt_ntlogon_request(ndr, NDR_BUFFERS, &r->req));
3299 ndr->flags = _flags_save_STRUCT;
3301 return NDR_ERR_SUCCESS;
3304 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_ntlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_ntlogon_packet *r)
3307 uint32_t _flags_save_STRUCT = ndr->flags;
3308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3309 if (ndr_flags & NDR_SCALARS) {
3310 NDR_CHECK(ndr_pull_align(ndr, 4));
3311 NDR_CHECK(ndr_pull_nbt_ntlogon_command(ndr, NDR_SCALARS, &r->command));
3312 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->req, r->command));
3313 NDR_CHECK(ndr_pull_nbt_ntlogon_request(ndr, NDR_SCALARS, &r->req));
3315 if (ndr_flags & NDR_BUFFERS) {
3316 NDR_CHECK(ndr_pull_nbt_ntlogon_request(ndr, NDR_BUFFERS, &r->req));
3318 ndr->flags = _flags_save_STRUCT;
3320 return NDR_ERR_SUCCESS;
3323 _PUBLIC_ void ndr_print_nbt_ntlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_ntlogon_packet *r)
3325 ndr_print_struct(ndr, name, "nbt_ntlogon_packet");
3327 uint32_t _flags_save_STRUCT = ndr->flags;
3328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3329 ndr->depth++;
3330 ndr_print_nbt_ntlogon_command(ndr, "command", r->command);
3331 ndr_print_set_switch_value(ndr, &r->req, r->command);
3332 ndr_print_nbt_ntlogon_request(ndr, "req", &r->req);
3333 ndr->depth--;
3334 ndr->flags = _flags_save_STRUCT;
3338 static enum ndr_err_code ndr_push_nbt_browse_opcode(struct ndr_push *ndr, int ndr_flags, enum nbt_browse_opcode r)
3340 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
3341 return NDR_ERR_SUCCESS;
3344 static enum ndr_err_code ndr_pull_nbt_browse_opcode(struct ndr_pull *ndr, int ndr_flags, enum nbt_browse_opcode *r)
3346 uint8_t v;
3347 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
3348 *r = v;
3349 return NDR_ERR_SUCCESS;
3352 _PUBLIC_ void ndr_print_nbt_browse_opcode(struct ndr_print *ndr, const char *name, enum nbt_browse_opcode r)
3354 const char *val = NULL;
3356 switch (r) {
3357 case HostAnnouncement: val = "HostAnnouncement"; break;
3358 case AnnouncementRequest: val = "AnnouncementRequest"; break;
3359 case Election: val = "Election"; break;
3360 case GetBackupListReq: val = "GetBackupListReq"; break;
3361 case GetBackupListResp: val = "GetBackupListResp"; break;
3362 case BecomeBackup: val = "BecomeBackup"; break;
3363 case DomainAnnouncement: val = "DomainAnnouncement"; break;
3364 case MasterAnnouncement: val = "MasterAnnouncement"; break;
3365 case ResetBrowserState: val = "ResetBrowserState"; break;
3366 case LocalMasterAnnouncement: val = "LocalMasterAnnouncement"; break;
3368 ndr_print_enum(ndr, name, "ENUM", val, r);
3371 static enum ndr_err_code ndr_push_nbt_browse_host_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_host_announcement *r)
3373 if (ndr_flags & NDR_SCALARS) {
3374 NDR_CHECK(ndr_push_align(ndr, 4));
3375 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
3376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
3377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3378 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
3379 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
3380 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
3381 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
3382 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
3383 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
3385 uint32_t _flags_save_string = ndr->flags;
3386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3387 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
3388 ndr->flags = _flags_save_string;
3391 if (ndr_flags & NDR_BUFFERS) {
3393 return NDR_ERR_SUCCESS;
3396 static enum ndr_err_code ndr_pull_nbt_browse_host_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_host_announcement *r)
3398 if (ndr_flags & NDR_SCALARS) {
3399 NDR_CHECK(ndr_pull_align(ndr, 4));
3400 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
3401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
3402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3403 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
3404 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
3405 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
3406 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
3407 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
3408 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
3410 uint32_t _flags_save_string = ndr->flags;
3411 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
3413 ndr->flags = _flags_save_string;
3416 if (ndr_flags & NDR_BUFFERS) {
3418 return NDR_ERR_SUCCESS;
3421 _PUBLIC_ void ndr_print_nbt_browse_host_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_host_announcement *r)
3423 ndr_print_struct(ndr, name, "nbt_browse_host_announcement");
3424 ndr->depth++;
3425 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3426 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3427 ndr_print_string(ndr, "ServerName", r->ServerName);
3428 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3429 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3430 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3431 ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
3432 ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
3433 ndr_print_uint16(ndr, "Signature", r->Signature);
3434 ndr_print_string(ndr, "Comment", r->Comment);
3435 ndr->depth--;
3438 static enum ndr_err_code ndr_push_nbt_browse_announcement_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_announcement_request *r)
3440 if (ndr_flags & NDR_SCALARS) {
3441 NDR_CHECK(ndr_push_align(ndr, 4));
3442 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Unused));
3444 uint32_t _flags_save_string = ndr->flags;
3445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3446 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ResponseName));
3447 ndr->flags = _flags_save_string;
3450 if (ndr_flags & NDR_BUFFERS) {
3452 return NDR_ERR_SUCCESS;
3455 static enum ndr_err_code ndr_pull_nbt_browse_announcement_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_announcement_request *r)
3457 if (ndr_flags & NDR_SCALARS) {
3458 NDR_CHECK(ndr_pull_align(ndr, 4));
3459 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Unused));
3461 uint32_t _flags_save_string = ndr->flags;
3462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3463 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ResponseName));
3464 ndr->flags = _flags_save_string;
3467 if (ndr_flags & NDR_BUFFERS) {
3469 return NDR_ERR_SUCCESS;
3472 _PUBLIC_ void ndr_print_nbt_browse_announcement_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_announcement_request *r)
3474 ndr_print_struct(ndr, name, "nbt_browse_announcement_request");
3475 ndr->depth++;
3476 ndr_print_uint8(ndr, "Unused", r->Unused);
3477 ndr_print_string(ndr, "ResponseName", r->ResponseName);
3478 ndr->depth--;
3481 static enum ndr_err_code ndr_push_nbt_browse_election_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_election_request *r)
3483 if (ndr_flags & NDR_SCALARS) {
3484 NDR_CHECK(ndr_push_align(ndr, 4));
3485 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Version));
3486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Criteria));
3487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->UpTime));
3488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved));
3490 uint32_t _flags_save_string = ndr->flags;
3491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3492 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ServerName));
3493 ndr->flags = _flags_save_string;
3496 if (ndr_flags & NDR_BUFFERS) {
3498 return NDR_ERR_SUCCESS;
3501 static enum ndr_err_code ndr_pull_nbt_browse_election_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_election_request *r)
3503 if (ndr_flags & NDR_SCALARS) {
3504 NDR_CHECK(ndr_pull_align(ndr, 4));
3505 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Version));
3506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Criteria));
3507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->UpTime));
3508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved));
3510 uint32_t _flags_save_string = ndr->flags;
3511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3512 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
3513 ndr->flags = _flags_save_string;
3516 if (ndr_flags & NDR_BUFFERS) {
3518 return NDR_ERR_SUCCESS;
3521 _PUBLIC_ void ndr_print_nbt_browse_election_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_election_request *r)
3523 ndr_print_struct(ndr, name, "nbt_browse_election_request");
3524 ndr->depth++;
3525 ndr_print_uint8(ndr, "Version", r->Version);
3526 ndr_print_uint32(ndr, "Criteria", r->Criteria);
3527 ndr_print_uint32(ndr, "UpTime", r->UpTime);
3528 ndr_print_uint32(ndr, "Reserved", r->Reserved);
3529 ndr_print_string(ndr, "ServerName", r->ServerName);
3530 ndr->depth--;
3533 static enum ndr_err_code ndr_push_nbt_browse_backup_list_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_backup_list_request *r)
3535 if (ndr_flags & NDR_SCALARS) {
3536 NDR_CHECK(ndr_push_align(ndr, 4));
3537 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ReqCount));
3538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
3540 if (ndr_flags & NDR_BUFFERS) {
3542 return NDR_ERR_SUCCESS;
3545 static enum ndr_err_code ndr_pull_nbt_browse_backup_list_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_backup_list_request *r)
3547 if (ndr_flags & NDR_SCALARS) {
3548 NDR_CHECK(ndr_pull_align(ndr, 4));
3549 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ReqCount));
3550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
3552 if (ndr_flags & NDR_BUFFERS) {
3554 return NDR_ERR_SUCCESS;
3557 _PUBLIC_ void ndr_print_nbt_browse_backup_list_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_request *r)
3559 ndr_print_struct(ndr, name, "nbt_browse_backup_list_request");
3560 ndr->depth++;
3561 ndr_print_uint8(ndr, "ReqCount", r->ReqCount);
3562 ndr_print_uint32(ndr, "Token", r->Token);
3563 ndr->depth--;
3566 static enum ndr_err_code ndr_push_nbt_browse_backup_list_response(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_backup_list_response *r)
3568 uint32_t cntr_BackupServerList_0;
3569 if (ndr_flags & NDR_SCALARS) {
3570 NDR_CHECK(ndr_push_align(ndr, 4));
3571 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BackupCount));
3572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
3573 for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < r->BackupCount; cntr_BackupServerList_0++) {
3574 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
3577 if (ndr_flags & NDR_BUFFERS) {
3579 return NDR_ERR_SUCCESS;
3582 static enum ndr_err_code ndr_pull_nbt_browse_backup_list_response(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_backup_list_response *r)
3584 uint32_t cntr_BackupServerList_0;
3585 TALLOC_CTX *_mem_save_BackupServerList_0;
3586 if (ndr_flags & NDR_SCALARS) {
3587 NDR_CHECK(ndr_pull_align(ndr, 4));
3588 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BackupCount));
3589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
3590 NDR_PULL_ALLOC_N(ndr, r->BackupServerList, r->BackupCount);
3591 _mem_save_BackupServerList_0 = NDR_PULL_GET_MEM_CTX(ndr);
3592 NDR_PULL_SET_MEM_CTX(ndr, r->BackupServerList, 0);
3593 for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < r->BackupCount; cntr_BackupServerList_0++) {
3594 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
3596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_BackupServerList_0, 0);
3598 if (ndr_flags & NDR_BUFFERS) {
3600 return NDR_ERR_SUCCESS;
3603 _PUBLIC_ void ndr_print_nbt_browse_backup_list_response(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_response *r)
3605 uint32_t cntr_BackupServerList_0;
3606 ndr_print_struct(ndr, name, "nbt_browse_backup_list_response");
3607 ndr->depth++;
3608 ndr_print_uint8(ndr, "BackupCount", r->BackupCount);
3609 ndr_print_uint32(ndr, "Token", r->Token);
3610 ndr->print(ndr, "%s: ARRAY(%d)", "BackupServerList", r->BackupCount);
3611 ndr->depth++;
3612 for (cntr_BackupServerList_0=0;cntr_BackupServerList_0<r->BackupCount;cntr_BackupServerList_0++) {
3613 char *idx_0=NULL;
3614 if (asprintf(&idx_0, "[%d]", cntr_BackupServerList_0) != -1) {
3615 ndr_print_nbt_name(ndr, "BackupServerList", &r->BackupServerList[cntr_BackupServerList_0]);
3616 free(idx_0);
3619 ndr->depth--;
3620 ndr->depth--;
3623 static enum ndr_err_code ndr_push_nbt_browse_become_backup(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_become_backup *r)
3625 if (ndr_flags & NDR_SCALARS) {
3626 NDR_CHECK(ndr_push_align(ndr, 4));
3628 uint32_t _flags_save_string = ndr->flags;
3629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3630 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->BrowserName));
3631 ndr->flags = _flags_save_string;
3634 if (ndr_flags & NDR_BUFFERS) {
3636 return NDR_ERR_SUCCESS;
3639 static enum ndr_err_code ndr_pull_nbt_browse_become_backup(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_become_backup *r)
3641 if (ndr_flags & NDR_SCALARS) {
3642 NDR_CHECK(ndr_pull_align(ndr, 4));
3644 uint32_t _flags_save_string = ndr->flags;
3645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3646 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->BrowserName));
3647 ndr->flags = _flags_save_string;
3650 if (ndr_flags & NDR_BUFFERS) {
3652 return NDR_ERR_SUCCESS;
3655 _PUBLIC_ void ndr_print_nbt_browse_become_backup(struct ndr_print *ndr, const char *name, const struct nbt_browse_become_backup *r)
3657 ndr_print_struct(ndr, name, "nbt_browse_become_backup");
3658 ndr->depth++;
3659 ndr_print_string(ndr, "BrowserName", r->BrowserName);
3660 ndr->depth--;
3663 static enum ndr_err_code ndr_push_nbt_browse_domain_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_domain_announcement *r)
3665 if (ndr_flags & NDR_SCALARS) {
3666 NDR_CHECK(ndr_push_align(ndr, 4));
3667 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
3668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
3669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3670 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
3671 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
3672 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
3673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MysteriousField));
3675 uint32_t _flags_save_string = ndr->flags;
3676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
3678 ndr->flags = _flags_save_string;
3681 if (ndr_flags & NDR_BUFFERS) {
3683 return NDR_ERR_SUCCESS;
3686 static enum ndr_err_code ndr_pull_nbt_browse_domain_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_domain_announcement *r)
3688 if (ndr_flags & NDR_SCALARS) {
3689 NDR_CHECK(ndr_pull_align(ndr, 4));
3690 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
3691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
3692 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3693 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
3694 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
3695 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
3696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MysteriousField));
3698 uint32_t _flags_save_string = ndr->flags;
3699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3700 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
3701 ndr->flags = _flags_save_string;
3704 if (ndr_flags & NDR_BUFFERS) {
3706 return NDR_ERR_SUCCESS;
3709 _PUBLIC_ void ndr_print_nbt_browse_domain_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_domain_announcement *r)
3711 ndr_print_struct(ndr, name, "nbt_browse_domain_announcement");
3712 ndr->depth++;
3713 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3714 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3715 ndr_print_string(ndr, "ServerName", r->ServerName);
3716 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3717 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3718 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3719 ndr_print_uint32(ndr, "MysteriousField", r->MysteriousField);
3720 ndr_print_string(ndr, "Comment", r->Comment);
3721 ndr->depth--;
3724 static enum ndr_err_code ndr_push_nbt_browse_master_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_master_announcement *r)
3726 if (ndr_flags & NDR_SCALARS) {
3727 NDR_CHECK(ndr_push_align(ndr, 4));
3729 uint32_t _flags_save_string = ndr->flags;
3730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3731 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ServerName));
3732 ndr->flags = _flags_save_string;
3735 if (ndr_flags & NDR_BUFFERS) {
3737 return NDR_ERR_SUCCESS;
3740 static enum ndr_err_code ndr_pull_nbt_browse_master_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_master_announcement *r)
3742 if (ndr_flags & NDR_SCALARS) {
3743 NDR_CHECK(ndr_pull_align(ndr, 4));
3745 uint32_t _flags_save_string = ndr->flags;
3746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3747 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
3748 ndr->flags = _flags_save_string;
3751 if (ndr_flags & NDR_BUFFERS) {
3753 return NDR_ERR_SUCCESS;
3756 _PUBLIC_ void ndr_print_nbt_browse_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_master_announcement *r)
3758 ndr_print_struct(ndr, name, "nbt_browse_master_announcement");
3759 ndr->depth++;
3760 ndr_print_string(ndr, "ServerName", r->ServerName);
3761 ndr->depth--;
3764 static enum ndr_err_code ndr_push_nbt_browse_reset_state(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_reset_state *r)
3766 if (ndr_flags & NDR_SCALARS) {
3767 NDR_CHECK(ndr_push_align(ndr, 1));
3768 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Command));
3770 if (ndr_flags & NDR_BUFFERS) {
3772 return NDR_ERR_SUCCESS;
3775 static enum ndr_err_code ndr_pull_nbt_browse_reset_state(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_reset_state *r)
3777 if (ndr_flags & NDR_SCALARS) {
3778 NDR_CHECK(ndr_pull_align(ndr, 1));
3779 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Command));
3781 if (ndr_flags & NDR_BUFFERS) {
3783 return NDR_ERR_SUCCESS;
3786 _PUBLIC_ void ndr_print_nbt_browse_reset_state(struct ndr_print *ndr, const char *name, const struct nbt_browse_reset_state *r)
3788 ndr_print_struct(ndr, name, "nbt_browse_reset_state");
3789 ndr->depth++;
3790 ndr_print_uint8(ndr, "Command", r->Command);
3791 ndr->depth--;
3794 static enum ndr_err_code ndr_push_nbt_browse_local_master_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_local_master_announcement *r)
3796 if (ndr_flags & NDR_SCALARS) {
3797 NDR_CHECK(ndr_push_align(ndr, 4));
3798 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
3799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
3800 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3801 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
3802 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
3803 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
3804 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
3805 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
3806 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
3808 uint32_t _flags_save_string = ndr->flags;
3809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3810 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
3811 ndr->flags = _flags_save_string;
3814 if (ndr_flags & NDR_BUFFERS) {
3816 return NDR_ERR_SUCCESS;
3819 static enum ndr_err_code ndr_pull_nbt_browse_local_master_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_local_master_announcement *r)
3821 if (ndr_flags & NDR_SCALARS) {
3822 NDR_CHECK(ndr_pull_align(ndr, 4));
3823 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
3824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
3825 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3826 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
3827 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
3828 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
3829 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
3830 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
3831 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
3833 uint32_t _flags_save_string = ndr->flags;
3834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3835 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
3836 ndr->flags = _flags_save_string;
3839 if (ndr_flags & NDR_BUFFERS) {
3841 return NDR_ERR_SUCCESS;
3844 _PUBLIC_ void ndr_print_nbt_browse_local_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_local_master_announcement *r)
3846 ndr_print_struct(ndr, name, "nbt_browse_local_master_announcement");
3847 ndr->depth++;
3848 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3849 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3850 ndr_print_string(ndr, "ServerName", r->ServerName);
3851 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3852 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3853 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3854 ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
3855 ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
3856 ndr_print_uint16(ndr, "Signature", r->Signature);
3857 ndr_print_string(ndr, "Comment", r->Comment);
3858 ndr->depth--;
3861 static enum ndr_err_code ndr_push_nbt_browse_payload(struct ndr_push *ndr, int ndr_flags, const union nbt_browse_payload *r)
3863 if (ndr_flags & NDR_SCALARS) {
3864 int level = ndr_push_get_switch_value(ndr, r);
3865 switch (level) {
3866 case HostAnnouncement: {
3867 NDR_CHECK(ndr_push_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3868 break; }
3870 case AnnouncementRequest: {
3871 NDR_CHECK(ndr_push_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3872 break; }
3874 case Election: {
3875 NDR_CHECK(ndr_push_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3876 break; }
3878 case GetBackupListReq: {
3879 NDR_CHECK(ndr_push_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3880 break; }
3882 case GetBackupListResp: {
3883 NDR_CHECK(ndr_push_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3884 break; }
3886 case BecomeBackup: {
3887 NDR_CHECK(ndr_push_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3888 break; }
3890 case DomainAnnouncement: {
3891 NDR_CHECK(ndr_push_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3892 break; }
3894 case MasterAnnouncement: {
3895 NDR_CHECK(ndr_push_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3896 break; }
3898 case ResetBrowserState: {
3899 NDR_CHECK(ndr_push_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3900 break; }
3902 case LocalMasterAnnouncement: {
3903 NDR_CHECK(ndr_push_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3904 break; }
3906 default:
3907 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3910 if (ndr_flags & NDR_BUFFERS) {
3911 int level = ndr_push_get_switch_value(ndr, r);
3912 switch (level) {
3913 case HostAnnouncement:
3914 break;
3916 case AnnouncementRequest:
3917 break;
3919 case Election:
3920 break;
3922 case GetBackupListReq:
3923 break;
3925 case GetBackupListResp:
3926 break;
3928 case BecomeBackup:
3929 break;
3931 case DomainAnnouncement:
3932 break;
3934 case MasterAnnouncement:
3935 break;
3937 case ResetBrowserState:
3938 break;
3940 case LocalMasterAnnouncement:
3941 break;
3943 default:
3944 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3947 return NDR_ERR_SUCCESS;
3950 static enum ndr_err_code ndr_pull_nbt_browse_payload(struct ndr_pull *ndr, int ndr_flags, union nbt_browse_payload *r)
3952 int level;
3953 level = ndr_pull_get_switch_value(ndr, r);
3954 if (ndr_flags & NDR_SCALARS) {
3955 switch (level) {
3956 case HostAnnouncement: {
3957 NDR_CHECK(ndr_pull_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3958 break; }
3960 case AnnouncementRequest: {
3961 NDR_CHECK(ndr_pull_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3962 break; }
3964 case Election: {
3965 NDR_CHECK(ndr_pull_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3966 break; }
3968 case GetBackupListReq: {
3969 NDR_CHECK(ndr_pull_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3970 break; }
3972 case GetBackupListResp: {
3973 NDR_CHECK(ndr_pull_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3974 break; }
3976 case BecomeBackup: {
3977 NDR_CHECK(ndr_pull_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3978 break; }
3980 case DomainAnnouncement: {
3981 NDR_CHECK(ndr_pull_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3982 break; }
3984 case MasterAnnouncement: {
3985 NDR_CHECK(ndr_pull_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3986 break; }
3988 case ResetBrowserState: {
3989 NDR_CHECK(ndr_pull_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3990 break; }
3992 case LocalMasterAnnouncement: {
3993 NDR_CHECK(ndr_pull_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3994 break; }
3996 default:
3997 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4000 if (ndr_flags & NDR_BUFFERS) {
4001 switch (level) {
4002 case HostAnnouncement:
4003 break;
4005 case AnnouncementRequest:
4006 break;
4008 case Election:
4009 break;
4011 case GetBackupListReq:
4012 break;
4014 case GetBackupListResp:
4015 break;
4017 case BecomeBackup:
4018 break;
4020 case DomainAnnouncement:
4021 break;
4023 case MasterAnnouncement:
4024 break;
4026 case ResetBrowserState:
4027 break;
4029 case LocalMasterAnnouncement:
4030 break;
4032 default:
4033 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4036 return NDR_ERR_SUCCESS;
4039 _PUBLIC_ void ndr_print_nbt_browse_payload(struct ndr_print *ndr, const char *name, const union nbt_browse_payload *r)
4041 int level;
4042 level = ndr_print_get_switch_value(ndr, r);
4043 ndr_print_union(ndr, name, level, "nbt_browse_payload");
4044 switch (level) {
4045 case HostAnnouncement:
4046 ndr_print_nbt_browse_host_announcement(ndr, "host_annoucement", &r->host_annoucement);
4047 break;
4049 case AnnouncementRequest:
4050 ndr_print_nbt_browse_announcement_request(ndr, "announcement_request", &r->announcement_request);
4051 break;
4053 case Election:
4054 ndr_print_nbt_browse_election_request(ndr, "election_request", &r->election_request);
4055 break;
4057 case GetBackupListReq:
4058 ndr_print_nbt_browse_backup_list_request(ndr, "backup_list_request", &r->backup_list_request);
4059 break;
4061 case GetBackupListResp:
4062 ndr_print_nbt_browse_backup_list_response(ndr, "backup_list_response", &r->backup_list_response);
4063 break;
4065 case BecomeBackup:
4066 ndr_print_nbt_browse_become_backup(ndr, "become_backup", &r->become_backup);
4067 break;
4069 case DomainAnnouncement:
4070 ndr_print_nbt_browse_domain_announcement(ndr, "domain_announcement", &r->domain_announcement);
4071 break;
4073 case MasterAnnouncement:
4074 ndr_print_nbt_browse_master_announcement(ndr, "master_announcement", &r->master_announcement);
4075 break;
4077 case ResetBrowserState:
4078 ndr_print_nbt_browse_reset_state(ndr, "reset_browser_state", &r->reset_browser_state);
4079 break;
4081 case LocalMasterAnnouncement:
4082 ndr_print_nbt_browse_local_master_announcement(ndr, "local_master_announcement", &r->local_master_announcement);
4083 break;
4085 default:
4086 ndr_print_bad_level(ndr, name, level);
4090 _PUBLIC_ enum ndr_err_code ndr_push_nbt_browse_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_packet *r)
4093 uint32_t _flags_save_STRUCT = ndr->flags;
4094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
4095 if (ndr_flags & NDR_SCALARS) {
4096 NDR_CHECK(ndr_push_align(ndr, 4));
4097 NDR_CHECK(ndr_push_nbt_browse_opcode(ndr, NDR_SCALARS, r->opcode));
4098 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->payload, r->opcode));
4099 NDR_CHECK(ndr_push_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
4101 if (ndr_flags & NDR_BUFFERS) {
4103 ndr->flags = _flags_save_STRUCT;
4105 return NDR_ERR_SUCCESS;
4108 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_browse_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_packet *r)
4111 uint32_t _flags_save_STRUCT = ndr->flags;
4112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
4113 if (ndr_flags & NDR_SCALARS) {
4114 NDR_CHECK(ndr_pull_align(ndr, 4));
4115 NDR_CHECK(ndr_pull_nbt_browse_opcode(ndr, NDR_SCALARS, &r->opcode));
4116 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->payload, r->opcode));
4117 NDR_CHECK(ndr_pull_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
4119 if (ndr_flags & NDR_BUFFERS) {
4121 ndr->flags = _flags_save_STRUCT;
4123 return NDR_ERR_SUCCESS;
4126 _PUBLIC_ void ndr_print_nbt_browse_packet(struct ndr_print *ndr, const char *name, const struct nbt_browse_packet *r)
4128 ndr_print_struct(ndr, name, "nbt_browse_packet");
4130 uint32_t _flags_save_STRUCT = ndr->flags;
4131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
4132 ndr->depth++;
4133 ndr_print_nbt_browse_opcode(ndr, "opcode", r->opcode);
4134 ndr_print_set_switch_value(ndr, &r->payload, r->opcode);
4135 ndr_print_nbt_browse_payload(ndr, "payload", &r->payload);
4136 ndr->depth--;
4137 ndr->flags = _flags_save_STRUCT;