Second part of fix for bug #8673 - NT ACL issue.
[Samba.git] / librpc / gen_ndr / ndr_nbt.c
blobbffb25aaffbb8bab6d4764d9d1f7b8133a1b4e3f
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 #include "librpc/gen_ndr/ndr_samr.h"
10 static enum ndr_err_code ndr_push_nbt_operation(struct ndr_push *ndr, int ndr_flags, uint16_t r)
12 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13 return NDR_ERR_SUCCESS;
16 static enum ndr_err_code ndr_pull_nbt_operation(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
18 uint16_t v;
19 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
20 *r = v;
21 return NDR_ERR_SUCCESS;
24 _PUBLIC_ void ndr_print_nbt_operation(struct ndr_print *ndr, const char *name, uint16_t r)
26 ndr_print_uint16(ndr, name, r);
27 ndr->depth++;
28 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_RCODE", NBT_RCODE, r);
29 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_BROADCAST", NBT_FLAG_BROADCAST, r);
30 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_RECURSION_AVAIL", NBT_FLAG_RECURSION_AVAIL, r);
31 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_RECURSION_DESIRED", NBT_FLAG_RECURSION_DESIRED, r);
32 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_TRUNCATION", NBT_FLAG_TRUNCATION, r);
33 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_AUTHORITIVE", NBT_FLAG_AUTHORITIVE, r);
34 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_OPCODE", NBT_OPCODE, r);
35 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_FLAG_REPLY", NBT_FLAG_REPLY, r);
36 ndr->depth--;
39 static enum ndr_err_code ndr_push_nbt_name_type(struct ndr_push *ndr, int ndr_flags, enum nbt_name_type r)
41 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
42 return NDR_ERR_SUCCESS;
45 static enum ndr_err_code ndr_pull_nbt_name_type(struct ndr_pull *ndr, int ndr_flags, enum nbt_name_type *r)
47 uint8_t v;
48 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
49 *r = v;
50 return NDR_ERR_SUCCESS;
53 _PUBLIC_ void ndr_print_nbt_name_type(struct ndr_print *ndr, const char *name, enum nbt_name_type r)
55 const char *val = NULL;
57 switch (r) {
58 case NBT_NAME_CLIENT: val = "NBT_NAME_CLIENT"; break;
59 case NBT_NAME_MS: val = "NBT_NAME_MS"; break;
60 case NBT_NAME_USER: val = "NBT_NAME_USER"; break;
61 case NBT_NAME_SERVER: val = "NBT_NAME_SERVER"; break;
62 case NBT_NAME_PDC: val = "NBT_NAME_PDC"; break;
63 case NBT_NAME_LOGON: val = "NBT_NAME_LOGON"; break;
64 case NBT_NAME_MASTER: val = "NBT_NAME_MASTER"; break;
65 case NBT_NAME_BROWSER: val = "NBT_NAME_BROWSER"; break;
67 ndr_print_enum(ndr, name, "ENUM", val, r);
70 _PUBLIC_ void ndr_print_nbt_name(struct ndr_print *ndr, const char *name, const struct nbt_name *r)
72 ndr_print_struct(ndr, name, "nbt_name");
73 ndr->depth++;
74 ndr_print_string(ndr, "name", r->name);
75 ndr_print_string(ndr, "scope", r->scope);
76 ndr_print_nbt_name_type(ndr, "type", r->type);
77 ndr->depth--;
80 _PUBLIC_ enum ndr_err_code ndr_push_nbt_qclass(struct ndr_push *ndr, int ndr_flags, enum nbt_qclass r)
82 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
83 return NDR_ERR_SUCCESS;
86 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_qclass(struct ndr_pull *ndr, int ndr_flags, enum nbt_qclass *r)
88 uint16_t v;
89 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
90 *r = v;
91 return NDR_ERR_SUCCESS;
94 _PUBLIC_ void ndr_print_nbt_qclass(struct ndr_print *ndr, const char *name, enum nbt_qclass r)
96 const char *val = NULL;
98 switch (r) {
99 case NBT_QCLASS_IP: val = "NBT_QCLASS_IP"; break;
101 ndr_print_enum(ndr, name, "ENUM", val, r);
104 _PUBLIC_ enum ndr_err_code ndr_push_nbt_qtype(struct ndr_push *ndr, int ndr_flags, enum nbt_qtype r)
106 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
107 return NDR_ERR_SUCCESS;
110 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_qtype(struct ndr_pull *ndr, int ndr_flags, enum nbt_qtype *r)
112 uint16_t v;
113 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
114 *r = v;
115 return NDR_ERR_SUCCESS;
118 _PUBLIC_ void ndr_print_nbt_qtype(struct ndr_print *ndr, const char *name, enum nbt_qtype r)
120 const char *val = NULL;
122 switch (r) {
123 case NBT_QTYPE_ADDRESS: val = "NBT_QTYPE_ADDRESS"; break;
124 case NBT_QTYPE_NAMESERVICE: val = "NBT_QTYPE_NAMESERVICE"; break;
125 case NBT_QTYPE_NULL: val = "NBT_QTYPE_NULL"; break;
126 case NBT_QTYPE_NETBIOS: val = "NBT_QTYPE_NETBIOS"; break;
127 case NBT_QTYPE_STATUS: val = "NBT_QTYPE_STATUS"; break;
129 ndr_print_enum(ndr, name, "ENUM", val, r);
132 static enum ndr_err_code ndr_push_nbt_name_question(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_question *r)
134 if (ndr_flags & NDR_SCALARS) {
135 NDR_CHECK(ndr_push_align(ndr, 4));
136 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->name));
137 NDR_CHECK(ndr_push_nbt_qtype(ndr, NDR_SCALARS, r->question_type));
138 NDR_CHECK(ndr_push_nbt_qclass(ndr, NDR_SCALARS, r->question_class));
139 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
141 if (ndr_flags & NDR_BUFFERS) {
143 return NDR_ERR_SUCCESS;
146 static enum ndr_err_code ndr_pull_nbt_name_question(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_question *r)
148 if (ndr_flags & NDR_SCALARS) {
149 NDR_CHECK(ndr_pull_align(ndr, 4));
150 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->name));
151 NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->question_type));
152 NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->question_class));
153 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
155 if (ndr_flags & NDR_BUFFERS) {
157 return NDR_ERR_SUCCESS;
160 _PUBLIC_ void ndr_print_nbt_name_question(struct ndr_print *ndr, const char *name, const struct nbt_name_question *r)
162 ndr_print_struct(ndr, name, "nbt_name_question");
163 ndr->depth++;
164 ndr_print_nbt_name(ndr, "name", &r->name);
165 ndr_print_nbt_qtype(ndr, "question_type", r->question_type);
166 ndr_print_nbt_qclass(ndr, "question_class", r->question_class);
167 ndr->depth--;
170 static enum ndr_err_code ndr_push_nb_flags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
172 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
173 return NDR_ERR_SUCCESS;
176 static enum ndr_err_code ndr_pull_nb_flags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
178 uint16_t v;
179 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
180 *r = v;
181 return NDR_ERR_SUCCESS;
184 _PUBLIC_ void ndr_print_nb_flags(struct ndr_print *ndr, const char *name, uint16_t r)
186 ndr_print_uint16(ndr, name, r);
187 ndr->depth++;
188 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_PERMANENT", NBT_NM_PERMANENT, r);
189 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_ACTIVE", NBT_NM_ACTIVE, r);
190 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_CONFLICT", NBT_NM_CONFLICT, r);
191 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_DEREGISTER", NBT_NM_DEREGISTER, r);
192 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_OWNER_TYPE", NBT_NM_OWNER_TYPE, r);
193 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NBT_NM_GROUP", NBT_NM_GROUP, r);
194 ndr->depth--;
197 static enum ndr_err_code ndr_push_nbt_rdata_address(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_address *r)
199 if (ndr_flags & NDR_SCALARS) {
200 NDR_CHECK(ndr_push_align(ndr, 4));
201 NDR_CHECK(ndr_push_nb_flags(ndr, NDR_SCALARS, r->nb_flags));
202 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->ipaddr));
203 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
205 if (ndr_flags & NDR_BUFFERS) {
207 return NDR_ERR_SUCCESS;
210 static enum ndr_err_code ndr_pull_nbt_rdata_address(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_address *r)
212 if (ndr_flags & NDR_SCALARS) {
213 NDR_CHECK(ndr_pull_align(ndr, 4));
214 NDR_CHECK(ndr_pull_nb_flags(ndr, NDR_SCALARS, &r->nb_flags));
215 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->ipaddr));
216 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
218 if (ndr_flags & NDR_BUFFERS) {
220 return NDR_ERR_SUCCESS;
223 _PUBLIC_ void ndr_print_nbt_rdata_address(struct ndr_print *ndr, const char *name, const struct nbt_rdata_address *r)
225 ndr_print_struct(ndr, name, "nbt_rdata_address");
226 ndr->depth++;
227 ndr_print_nb_flags(ndr, "nb_flags", r->nb_flags);
228 ndr_print_ipv4address(ndr, "ipaddr", r->ipaddr);
229 ndr->depth--;
232 static enum ndr_err_code ndr_push_nbt_rdata_netbios(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_netbios *r)
234 uint32_t cntr_addresses_0;
235 if (ndr_flags & NDR_SCALARS) {
236 NDR_CHECK(ndr_push_align(ndr, 4));
237 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
238 for (cntr_addresses_0 = 0; cntr_addresses_0 < r->length / 6; cntr_addresses_0++) {
239 NDR_CHECK(ndr_push_nbt_rdata_address(ndr, NDR_SCALARS, &r->addresses[cntr_addresses_0]));
241 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
243 if (ndr_flags & NDR_BUFFERS) {
245 return NDR_ERR_SUCCESS;
248 static enum ndr_err_code ndr_pull_nbt_rdata_netbios(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_netbios *r)
250 uint32_t cntr_addresses_0;
251 TALLOC_CTX *_mem_save_addresses_0;
252 if (ndr_flags & NDR_SCALARS) {
253 NDR_CHECK(ndr_pull_align(ndr, 4));
254 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
255 NDR_PULL_ALLOC_N(ndr, r->addresses, r->length / 6);
256 _mem_save_addresses_0 = NDR_PULL_GET_MEM_CTX(ndr);
257 NDR_PULL_SET_MEM_CTX(ndr, r->addresses, 0);
258 for (cntr_addresses_0 = 0; cntr_addresses_0 < r->length / 6; cntr_addresses_0++) {
259 NDR_CHECK(ndr_pull_nbt_rdata_address(ndr, NDR_SCALARS, &r->addresses[cntr_addresses_0]));
261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_0, 0);
262 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
264 if (ndr_flags & NDR_BUFFERS) {
266 return NDR_ERR_SUCCESS;
269 _PUBLIC_ void ndr_print_nbt_rdata_netbios(struct ndr_print *ndr, const char *name, const struct nbt_rdata_netbios *r)
271 uint32_t cntr_addresses_0;
272 ndr_print_struct(ndr, name, "nbt_rdata_netbios");
273 ndr->depth++;
274 ndr_print_uint16(ndr, "length", r->length);
275 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->length / 6);
276 ndr->depth++;
277 for (cntr_addresses_0=0;cntr_addresses_0<r->length / 6;cntr_addresses_0++) {
278 char *idx_0=NULL;
279 if (asprintf(&idx_0, "[%d]", cntr_addresses_0) != -1) {
280 ndr_print_nbt_rdata_address(ndr, "addresses", &r->addresses[cntr_addresses_0]);
281 free(idx_0);
284 ndr->depth--;
285 ndr->depth--;
288 static enum ndr_err_code ndr_push_nbt_statistics(struct ndr_push *ndr, int ndr_flags, const struct nbt_statistics *r)
290 if (ndr_flags & NDR_SCALARS) {
291 NDR_CHECK(ndr_push_align(ndr, 4));
292 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->unit_id, 6));
293 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->jumpers));
294 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->test_result));
295 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version_number));
296 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->period_of_statistics));
297 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_crcs));
298 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_alignment_errors));
299 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_collisions));
300 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_send_aborts));
301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_sends));
302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_receives));
303 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_retransmits));
304 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_no_resource_conditions));
305 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_free_command_blocks));
306 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_number_command_blocks));
307 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_number_command_blocks));
308 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_pending_sessions));
309 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_number_pending_sessions));
310 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_sessions_possible));
311 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->session_data_packet_size));
312 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
314 if (ndr_flags & NDR_BUFFERS) {
316 return NDR_ERR_SUCCESS;
319 static enum ndr_err_code ndr_pull_nbt_statistics(struct ndr_pull *ndr, int ndr_flags, struct nbt_statistics *r)
321 if (ndr_flags & NDR_SCALARS) {
322 NDR_CHECK(ndr_pull_align(ndr, 4));
323 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->unit_id, 6));
324 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->jumpers));
325 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->test_result));
326 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version_number));
327 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->period_of_statistics));
328 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_crcs));
329 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_alignment_errors));
330 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_collisions));
331 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_send_aborts));
332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_sends));
333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_receives));
334 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_retransmits));
335 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_no_resource_conditions));
336 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_free_command_blocks));
337 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_number_command_blocks));
338 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_number_command_blocks));
339 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_pending_sessions));
340 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_number_pending_sessions));
341 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_sessions_possible));
342 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->session_data_packet_size));
343 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
345 if (ndr_flags & NDR_BUFFERS) {
347 return NDR_ERR_SUCCESS;
350 _PUBLIC_ void ndr_print_nbt_statistics(struct ndr_print *ndr, const char *name, const struct nbt_statistics *r)
352 ndr_print_struct(ndr, name, "nbt_statistics");
353 ndr->depth++;
354 ndr_print_array_uint8(ndr, "unit_id", r->unit_id, 6);
355 ndr_print_uint8(ndr, "jumpers", r->jumpers);
356 ndr_print_uint8(ndr, "test_result", r->test_result);
357 ndr_print_uint16(ndr, "version_number", r->version_number);
358 ndr_print_uint16(ndr, "period_of_statistics", r->period_of_statistics);
359 ndr_print_uint16(ndr, "number_of_crcs", r->number_of_crcs);
360 ndr_print_uint16(ndr, "number_alignment_errors", r->number_alignment_errors);
361 ndr_print_uint16(ndr, "number_of_collisions", r->number_of_collisions);
362 ndr_print_uint16(ndr, "number_send_aborts", r->number_send_aborts);
363 ndr_print_uint32(ndr, "number_good_sends", r->number_good_sends);
364 ndr_print_uint32(ndr, "number_good_receives", r->number_good_receives);
365 ndr_print_uint16(ndr, "number_retransmits", r->number_retransmits);
366 ndr_print_uint16(ndr, "number_no_resource_conditions", r->number_no_resource_conditions);
367 ndr_print_uint16(ndr, "number_free_command_blocks", r->number_free_command_blocks);
368 ndr_print_uint16(ndr, "total_number_command_blocks", r->total_number_command_blocks);
369 ndr_print_uint16(ndr, "max_total_number_command_blocks", r->max_total_number_command_blocks);
370 ndr_print_uint16(ndr, "number_pending_sessions", r->number_pending_sessions);
371 ndr_print_uint16(ndr, "max_number_pending_sessions", r->max_number_pending_sessions);
372 ndr_print_uint16(ndr, "max_total_sessions_possible", r->max_total_sessions_possible);
373 ndr_print_uint16(ndr, "session_data_packet_size", r->session_data_packet_size);
374 ndr->depth--;
377 static enum ndr_err_code ndr_push_nbt_status_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_status_name *r)
379 if (ndr_flags & NDR_SCALARS) {
380 NDR_CHECK(ndr_push_align(ndr, 2));
381 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, 15, sizeof(uint8_t), CH_DOS));
382 NDR_CHECK(ndr_push_nbt_name_type(ndr, NDR_SCALARS, r->type));
383 NDR_CHECK(ndr_push_nb_flags(ndr, NDR_SCALARS, r->nb_flags));
384 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
386 if (ndr_flags & NDR_BUFFERS) {
388 return NDR_ERR_SUCCESS;
391 static enum ndr_err_code ndr_pull_nbt_status_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_status_name *r)
393 if (ndr_flags & NDR_SCALARS) {
394 NDR_CHECK(ndr_pull_align(ndr, 2));
395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, 15, sizeof(uint8_t), CH_DOS));
396 NDR_CHECK(ndr_pull_nbt_name_type(ndr, NDR_SCALARS, &r->type));
397 NDR_CHECK(ndr_pull_nb_flags(ndr, NDR_SCALARS, &r->nb_flags));
398 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
400 if (ndr_flags & NDR_BUFFERS) {
402 return NDR_ERR_SUCCESS;
405 _PUBLIC_ void ndr_print_nbt_status_name(struct ndr_print *ndr, const char *name, const struct nbt_status_name *r)
407 ndr_print_struct(ndr, name, "nbt_status_name");
408 ndr->depth++;
409 ndr_print_string(ndr, "name", r->name);
410 ndr_print_nbt_name_type(ndr, "type", r->type);
411 ndr_print_nb_flags(ndr, "nb_flags", r->nb_flags);
412 ndr->depth--;
415 static enum ndr_err_code ndr_push_nbt_rdata_status(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_status *r)
417 uint32_t cntr_names_0;
418 if (ndr_flags & NDR_SCALARS) {
419 NDR_CHECK(ndr_push_align(ndr, 4));
420 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_names * 18 + 47));
421 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_names));
422 for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
423 NDR_CHECK(ndr_push_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
425 NDR_CHECK(ndr_push_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
426 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
428 if (ndr_flags & NDR_BUFFERS) {
430 return NDR_ERR_SUCCESS;
433 static enum ndr_err_code ndr_pull_nbt_rdata_status(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_status *r)
435 uint32_t cntr_names_0;
436 TALLOC_CTX *_mem_save_names_0;
437 if (ndr_flags & NDR_SCALARS) {
438 NDR_CHECK(ndr_pull_align(ndr, 4));
439 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
440 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_names));
441 NDR_PULL_ALLOC_N(ndr, r->names, r->num_names);
442 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
443 NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
444 for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
445 NDR_CHECK(ndr_pull_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
448 NDR_CHECK(ndr_pull_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
449 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
451 if (ndr_flags & NDR_BUFFERS) {
453 return NDR_ERR_SUCCESS;
456 _PUBLIC_ void ndr_print_nbt_rdata_status(struct ndr_print *ndr, const char *name, const struct nbt_rdata_status *r)
458 uint32_t cntr_names_0;
459 ndr_print_struct(ndr, name, "nbt_rdata_status");
460 ndr->depth++;
461 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->num_names * 18 + 47:r->length);
462 ndr_print_uint8(ndr, "num_names", r->num_names);
463 ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->num_names);
464 ndr->depth++;
465 for (cntr_names_0=0;cntr_names_0<r->num_names;cntr_names_0++) {
466 char *idx_0=NULL;
467 if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
468 ndr_print_nbt_status_name(ndr, "names", &r->names[cntr_names_0]);
469 free(idx_0);
472 ndr->depth--;
473 ndr_print_nbt_statistics(ndr, "statistics", &r->statistics);
474 ndr->depth--;
477 static enum ndr_err_code ndr_push_nbt_rdata_data(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_data *r)
479 if (ndr_flags & NDR_SCALARS) {
480 NDR_CHECK(ndr_push_align(ndr, 2));
481 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
482 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
483 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
485 if (ndr_flags & NDR_BUFFERS) {
487 return NDR_ERR_SUCCESS;
490 static enum ndr_err_code ndr_pull_nbt_rdata_data(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_data *r)
492 if (ndr_flags & NDR_SCALARS) {
493 NDR_CHECK(ndr_pull_align(ndr, 2));
494 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
495 NDR_PULL_ALLOC_N(ndr, r->data, r->length);
496 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
497 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
499 if (ndr_flags & NDR_BUFFERS) {
501 return NDR_ERR_SUCCESS;
504 _PUBLIC_ void ndr_print_nbt_rdata_data(struct ndr_print *ndr, const char *name, const struct nbt_rdata_data *r)
506 ndr_print_struct(ndr, name, "nbt_rdata_data");
507 ndr->depth++;
508 ndr_print_uint16(ndr, "length", r->length);
509 ndr_print_array_uint8(ndr, "data", r->data, r->length);
510 ndr->depth--;
513 _PUBLIC_ enum ndr_err_code ndr_push_nbt_rdata(struct ndr_push *ndr, int ndr_flags, const union nbt_rdata *r)
515 if (ndr_flags & NDR_SCALARS) {
516 int level = ndr_push_get_switch_value(ndr, r);
517 NDR_CHECK(ndr_push_union_align(ndr, 4));
518 switch (level) {
519 case NBT_QTYPE_NETBIOS: {
520 NDR_CHECK(ndr_push_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
521 break; }
523 case NBT_QTYPE_STATUS: {
524 NDR_CHECK(ndr_push_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
525 break; }
527 default: {
528 NDR_CHECK(ndr_push_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
529 break; }
533 if (ndr_flags & NDR_BUFFERS) {
534 int level = ndr_push_get_switch_value(ndr, r);
535 switch (level) {
536 case NBT_QTYPE_NETBIOS:
537 break;
539 case NBT_QTYPE_STATUS:
540 break;
542 default:
543 break;
547 return NDR_ERR_SUCCESS;
550 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_rdata(struct ndr_pull *ndr, int ndr_flags, union nbt_rdata *r)
552 int level;
553 level = ndr_pull_get_switch_value(ndr, r);
554 if (ndr_flags & NDR_SCALARS) {
555 NDR_CHECK(ndr_pull_union_align(ndr, 4));
556 switch (level) {
557 case NBT_QTYPE_NETBIOS: {
558 NDR_CHECK(ndr_pull_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
559 break; }
561 case NBT_QTYPE_STATUS: {
562 NDR_CHECK(ndr_pull_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
563 break; }
565 default: {
566 NDR_CHECK(ndr_pull_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
567 break; }
571 if (ndr_flags & NDR_BUFFERS) {
572 switch (level) {
573 case NBT_QTYPE_NETBIOS:
574 break;
576 case NBT_QTYPE_STATUS:
577 break;
579 default:
580 break;
584 return NDR_ERR_SUCCESS;
587 _PUBLIC_ void ndr_print_nbt_rdata(struct ndr_print *ndr, const char *name, const union nbt_rdata *r)
589 int level;
590 level = ndr_print_get_switch_value(ndr, r);
591 ndr_print_union(ndr, name, level, "nbt_rdata");
592 switch (level) {
593 case NBT_QTYPE_NETBIOS:
594 ndr_print_nbt_rdata_netbios(ndr, "netbios", &r->netbios);
595 break;
597 case NBT_QTYPE_STATUS:
598 ndr_print_nbt_rdata_status(ndr, "status", &r->status);
599 break;
601 default:
602 ndr_print_nbt_rdata_data(ndr, "data", &r->data);
603 break;
608 static enum ndr_err_code ndr_pull_nbt_res_rec(struct ndr_pull *ndr, int ndr_flags, struct nbt_res_rec *r)
611 uint32_t _flags_save_STRUCT = ndr->flags;
612 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
613 if (ndr_flags & NDR_SCALARS) {
614 NDR_CHECK(ndr_pull_align(ndr, 4));
615 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->name));
616 NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->rr_type));
617 NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->rr_class));
618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
619 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rdata, r->rr_type));
620 NDR_CHECK(ndr_pull_nbt_rdata(ndr, NDR_SCALARS, &r->rdata));
621 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
623 if (ndr_flags & NDR_BUFFERS) {
625 ndr->flags = _flags_save_STRUCT;
627 return NDR_ERR_SUCCESS;
630 _PUBLIC_ void ndr_print_nbt_res_rec(struct ndr_print *ndr, const char *name, const struct nbt_res_rec *r)
632 ndr_print_struct(ndr, name, "nbt_res_rec");
634 uint32_t _flags_save_STRUCT = ndr->flags;
635 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
636 ndr->depth++;
637 ndr_print_nbt_name(ndr, "name", &r->name);
638 ndr_print_nbt_qtype(ndr, "rr_type", r->rr_type);
639 ndr_print_nbt_qclass(ndr, "rr_class", r->rr_class);
640 ndr_print_uint32(ndr, "ttl", r->ttl);
641 ndr_print_set_switch_value(ndr, &r->rdata, r->rr_type);
642 ndr_print_nbt_rdata(ndr, "rdata", &r->rdata);
643 ndr->depth--;
644 ndr->flags = _flags_save_STRUCT;
648 _PUBLIC_ enum ndr_err_code ndr_push_nbt_name_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_packet *r)
650 uint32_t cntr_questions_0;
651 uint32_t cntr_answers_0;
652 uint32_t cntr_nsrecs_0;
653 uint32_t cntr_additional_0;
655 uint32_t _flags_save_STRUCT = ndr->flags;
656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
657 if (ndr_flags & NDR_SCALARS) {
658 NDR_CHECK(ndr_push_align(ndr, 4));
659 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->name_trn_id));
660 NDR_CHECK(ndr_push_nbt_operation(ndr, NDR_SCALARS, r->operation));
661 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->qdcount));
662 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ancount));
663 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nscount));
664 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->arcount));
665 for (cntr_questions_0 = 0; cntr_questions_0 < r->qdcount; cntr_questions_0++) {
666 NDR_CHECK(ndr_push_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
668 for (cntr_answers_0 = 0; cntr_answers_0 < r->ancount; cntr_answers_0++) {
669 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
671 for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < r->nscount; cntr_nsrecs_0++) {
672 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
674 for (cntr_additional_0 = 0; cntr_additional_0 < r->arcount; cntr_additional_0++) {
675 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
678 uint32_t _flags_save_DATA_BLOB = ndr->flags;
679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
680 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->padding));
681 ndr->flags = _flags_save_DATA_BLOB;
683 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
685 if (ndr_flags & NDR_BUFFERS) {
687 ndr->flags = _flags_save_STRUCT;
689 return NDR_ERR_SUCCESS;
692 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_name_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_packet *r)
694 uint32_t cntr_questions_0;
695 TALLOC_CTX *_mem_save_questions_0;
696 uint32_t cntr_answers_0;
697 TALLOC_CTX *_mem_save_answers_0;
698 uint32_t cntr_nsrecs_0;
699 TALLOC_CTX *_mem_save_nsrecs_0;
700 uint32_t cntr_additional_0;
701 TALLOC_CTX *_mem_save_additional_0;
703 uint32_t _flags_save_STRUCT = ndr->flags;
704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
705 if (ndr_flags & NDR_SCALARS) {
706 NDR_CHECK(ndr_pull_align(ndr, 4));
707 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_trn_id));
708 NDR_CHECK(ndr_pull_nbt_operation(ndr, NDR_SCALARS, &r->operation));
709 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->qdcount));
710 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ancount));
711 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nscount));
712 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->arcount));
713 NDR_PULL_ALLOC_N(ndr, r->questions, r->qdcount);
714 _mem_save_questions_0 = NDR_PULL_GET_MEM_CTX(ndr);
715 NDR_PULL_SET_MEM_CTX(ndr, r->questions, 0);
716 for (cntr_questions_0 = 0; cntr_questions_0 < r->qdcount; cntr_questions_0++) {
717 NDR_CHECK(ndr_pull_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_questions_0, 0);
720 NDR_PULL_ALLOC_N(ndr, r->answers, r->ancount);
721 _mem_save_answers_0 = NDR_PULL_GET_MEM_CTX(ndr);
722 NDR_PULL_SET_MEM_CTX(ndr, r->answers, 0);
723 for (cntr_answers_0 = 0; cntr_answers_0 < r->ancount; cntr_answers_0++) {
724 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_answers_0, 0);
727 NDR_PULL_ALLOC_N(ndr, r->nsrecs, r->nscount);
728 _mem_save_nsrecs_0 = NDR_PULL_GET_MEM_CTX(ndr);
729 NDR_PULL_SET_MEM_CTX(ndr, r->nsrecs, 0);
730 for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < r->nscount; cntr_nsrecs_0++) {
731 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nsrecs_0, 0);
734 NDR_PULL_ALLOC_N(ndr, r->additional, r->arcount);
735 _mem_save_additional_0 = NDR_PULL_GET_MEM_CTX(ndr);
736 NDR_PULL_SET_MEM_CTX(ndr, r->additional, 0);
737 for (cntr_additional_0 = 0; cntr_additional_0 < r->arcount; cntr_additional_0++) {
738 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_additional_0, 0);
742 uint32_t _flags_save_DATA_BLOB = ndr->flags;
743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
744 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->padding));
745 ndr->flags = _flags_save_DATA_BLOB;
747 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
749 if (ndr_flags & NDR_BUFFERS) {
751 ndr->flags = _flags_save_STRUCT;
753 return NDR_ERR_SUCCESS;
756 _PUBLIC_ void ndr_print_nbt_name_packet(struct ndr_print *ndr, const char *name, const struct nbt_name_packet *r)
758 uint32_t cntr_questions_0;
759 uint32_t cntr_answers_0;
760 uint32_t cntr_nsrecs_0;
761 uint32_t cntr_additional_0;
762 ndr_print_struct(ndr, name, "nbt_name_packet");
764 uint32_t _flags_save_STRUCT = ndr->flags;
765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
766 ndr->depth++;
767 ndr_print_uint16(ndr, "name_trn_id", r->name_trn_id);
768 ndr_print_nbt_operation(ndr, "operation", r->operation);
769 ndr_print_uint16(ndr, "qdcount", r->qdcount);
770 ndr_print_uint16(ndr, "ancount", r->ancount);
771 ndr_print_uint16(ndr, "nscount", r->nscount);
772 ndr_print_uint16(ndr, "arcount", r->arcount);
773 ndr->print(ndr, "%s: ARRAY(%d)", "questions", (int)r->qdcount);
774 ndr->depth++;
775 for (cntr_questions_0=0;cntr_questions_0<r->qdcount;cntr_questions_0++) {
776 char *idx_0=NULL;
777 if (asprintf(&idx_0, "[%d]", cntr_questions_0) != -1) {
778 ndr_print_nbt_name_question(ndr, "questions", &r->questions[cntr_questions_0]);
779 free(idx_0);
782 ndr->depth--;
783 ndr->print(ndr, "%s: ARRAY(%d)", "answers", (int)r->ancount);
784 ndr->depth++;
785 for (cntr_answers_0=0;cntr_answers_0<r->ancount;cntr_answers_0++) {
786 char *idx_0=NULL;
787 if (asprintf(&idx_0, "[%d]", cntr_answers_0) != -1) {
788 ndr_print_nbt_res_rec(ndr, "answers", &r->answers[cntr_answers_0]);
789 free(idx_0);
792 ndr->depth--;
793 ndr->print(ndr, "%s: ARRAY(%d)", "nsrecs", (int)r->nscount);
794 ndr->depth++;
795 for (cntr_nsrecs_0=0;cntr_nsrecs_0<r->nscount;cntr_nsrecs_0++) {
796 char *idx_0=NULL;
797 if (asprintf(&idx_0, "[%d]", cntr_nsrecs_0) != -1) {
798 ndr_print_nbt_res_rec(ndr, "nsrecs", &r->nsrecs[cntr_nsrecs_0]);
799 free(idx_0);
802 ndr->depth--;
803 ndr->print(ndr, "%s: ARRAY(%d)", "additional", (int)r->arcount);
804 ndr->depth++;
805 for (cntr_additional_0=0;cntr_additional_0<r->arcount;cntr_additional_0++) {
806 char *idx_0=NULL;
807 if (asprintf(&idx_0, "[%d]", cntr_additional_0) != -1) {
808 ndr_print_nbt_res_rec(ndr, "additional", &r->additional[cntr_additional_0]);
809 free(idx_0);
812 ndr->depth--;
813 ndr_print_DATA_BLOB(ndr, "padding", r->padding);
814 ndr->depth--;
815 ndr->flags = _flags_save_STRUCT;
819 static enum ndr_err_code ndr_push_dgram_msg_type(struct ndr_push *ndr, int ndr_flags, enum dgram_msg_type r)
821 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
822 return NDR_ERR_SUCCESS;
825 static enum ndr_err_code ndr_pull_dgram_msg_type(struct ndr_pull *ndr, int ndr_flags, enum dgram_msg_type *r)
827 uint8_t v;
828 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
829 *r = v;
830 return NDR_ERR_SUCCESS;
833 _PUBLIC_ void ndr_print_dgram_msg_type(struct ndr_print *ndr, const char *name, enum dgram_msg_type r)
835 const char *val = NULL;
837 switch (r) {
838 case DGRAM_DIRECT_UNIQUE: val = "DGRAM_DIRECT_UNIQUE"; break;
839 case DGRAM_DIRECT_GROUP: val = "DGRAM_DIRECT_GROUP"; break;
840 case DGRAM_BCAST: val = "DGRAM_BCAST"; break;
841 case DGRAM_ERROR: val = "DGRAM_ERROR"; break;
842 case DGRAM_QUERY: val = "DGRAM_QUERY"; break;
843 case DGRAM_QUERY_POSITIVE: val = "DGRAM_QUERY_POSITIVE"; break;
844 case DGRAM_QUERY_NEGATIVE: val = "DGRAM_QUERY_NEGATIVE"; break;
846 ndr_print_enum(ndr, name, "ENUM", val, r);
849 static enum ndr_err_code ndr_push_dgram_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
851 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
852 return NDR_ERR_SUCCESS;
855 static enum ndr_err_code ndr_pull_dgram_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
857 uint8_t v;
858 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
859 *r = v;
860 return NDR_ERR_SUCCESS;
863 _PUBLIC_ void ndr_print_dgram_flags(struct ndr_print *ndr, const char *name, uint8_t r)
865 ndr_print_uint8(ndr, name, r);
866 ndr->depth++;
867 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_MORE", DGRAM_FLAG_MORE, r);
868 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_FIRST", DGRAM_FLAG_FIRST, r);
869 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_NODE_TYPE", DGRAM_FLAG_NODE_TYPE, r);
870 ndr->depth--;
873 static enum ndr_err_code ndr_push_smb_command(struct ndr_push *ndr, int ndr_flags, enum smb_command r)
875 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
876 return NDR_ERR_SUCCESS;
879 static enum ndr_err_code ndr_pull_smb_command(struct ndr_pull *ndr, int ndr_flags, enum smb_command *r)
881 uint8_t v;
882 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
883 *r = v;
884 return NDR_ERR_SUCCESS;
887 _PUBLIC_ void ndr_print_smb_command(struct ndr_print *ndr, const char *name, enum smb_command r)
889 const char *val = NULL;
891 switch (r) {
892 case SMB_TRANSACTION: val = "SMB_TRANSACTION"; break;
894 ndr_print_enum(ndr, name, "ENUM", val, r);
897 static enum ndr_err_code ndr_push_smb_trans_body(struct ndr_push *ndr, int ndr_flags, const struct smb_trans_body *r)
899 if (ndr_flags & NDR_SCALARS) {
900 NDR_CHECK(ndr_push_align(ndr, 4));
901 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 17));
902 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_param_count));
903 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_data_count));
904 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_param_count));
905 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_data_count));
906 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->max_setup_count));
907 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
908 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->trans_flags));
909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timeout));
910 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
911 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_count));
912 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_offset));
913 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_count));
914 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_offset));
915 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 3));
916 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad2));
917 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opcode));
918 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->priority));
919 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->_class));
920 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->mailslot_name) + 1 + r->data.length));
922 uint32_t _flags_save_string = ndr->flags;
923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
924 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
925 ndr->flags = _flags_save_string;
928 uint32_t _flags_save_DATA_BLOB = ndr->flags;
929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
930 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
931 ndr->flags = _flags_save_DATA_BLOB;
933 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
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;
982 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
984 if (ndr_flags & NDR_BUFFERS) {
986 return NDR_ERR_SUCCESS;
989 _PUBLIC_ void ndr_print_smb_trans_body(struct ndr_print *ndr, const char *name, const struct smb_trans_body *r)
991 ndr_print_struct(ndr, name, "smb_trans_body");
992 ndr->depth++;
993 ndr_print_uint8(ndr, "wct", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?17:r->wct);
994 ndr_print_uint16(ndr, "total_param_count", r->total_param_count);
995 ndr_print_uint16(ndr, "total_data_count", r->total_data_count);
996 ndr_print_uint16(ndr, "max_param_count", r->max_param_count);
997 ndr_print_uint16(ndr, "max_data_count", r->max_data_count);
998 ndr_print_uint8(ndr, "max_setup_count", r->max_setup_count);
999 ndr_print_uint8(ndr, "pad", r->pad);
1000 ndr_print_uint16(ndr, "trans_flags", r->trans_flags);
1001 ndr_print_uint32(ndr, "timeout", r->timeout);
1002 ndr_print_uint16(ndr, "reserved", r->reserved);
1003 ndr_print_uint16(ndr, "param_count", r->param_count);
1004 ndr_print_uint16(ndr, "param_offset", r->param_offset);
1005 ndr_print_uint16(ndr, "data_count", r->data_count);
1006 ndr_print_uint16(ndr, "data_offset", r->data_offset);
1007 ndr_print_uint8(ndr, "setup_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?3:r->setup_count);
1008 ndr_print_uint8(ndr, "pad2", r->pad2);
1009 ndr_print_uint16(ndr, "opcode", r->opcode);
1010 ndr_print_uint16(ndr, "priority", r->priority);
1011 ndr_print_uint16(ndr, "_class", r->_class);
1012 ndr_print_uint16(ndr, "byte_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->mailslot_name) + 1 + r->data.length:r->byte_count);
1013 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1014 ndr_print_DATA_BLOB(ndr, "data", r->data);
1015 ndr->depth--;
1018 static enum ndr_err_code ndr_push_smb_body(struct ndr_push *ndr, int ndr_flags, const union smb_body *r)
1020 if (ndr_flags & NDR_SCALARS) {
1021 int level = ndr_push_get_switch_value(ndr, r);
1022 NDR_CHECK(ndr_push_union_align(ndr, 4));
1023 switch (level) {
1024 case SMB_TRANSACTION: {
1025 NDR_CHECK(ndr_push_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1026 break; }
1028 default:
1029 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1032 if (ndr_flags & NDR_BUFFERS) {
1033 int level = ndr_push_get_switch_value(ndr, r);
1034 switch (level) {
1035 case SMB_TRANSACTION:
1036 break;
1038 default:
1039 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1042 return NDR_ERR_SUCCESS;
1045 static enum ndr_err_code ndr_pull_smb_body(struct ndr_pull *ndr, int ndr_flags, union smb_body *r)
1047 int level;
1048 level = ndr_pull_get_switch_value(ndr, r);
1049 if (ndr_flags & NDR_SCALARS) {
1050 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1051 switch (level) {
1052 case SMB_TRANSACTION: {
1053 NDR_CHECK(ndr_pull_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1054 break; }
1056 default:
1057 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1060 if (ndr_flags & NDR_BUFFERS) {
1061 switch (level) {
1062 case SMB_TRANSACTION:
1063 break;
1065 default:
1066 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1069 return NDR_ERR_SUCCESS;
1072 _PUBLIC_ void ndr_print_smb_body(struct ndr_print *ndr, const char *name, const union smb_body *r)
1074 int level;
1075 level = ndr_print_get_switch_value(ndr, r);
1076 ndr_print_union(ndr, name, level, "smb_body");
1077 switch (level) {
1078 case SMB_TRANSACTION:
1079 ndr_print_smb_trans_body(ndr, "trans", &r->trans);
1080 break;
1082 default:
1083 ndr_print_bad_level(ndr, name, level);
1087 _PUBLIC_ enum ndr_err_code ndr_push_dgram_smb_packet(struct ndr_push *ndr, int ndr_flags, const struct dgram_smb_packet *r)
1090 uint32_t _flags_save_STRUCT = ndr->flags;
1091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1092 if (ndr_flags & NDR_SCALARS) {
1093 NDR_CHECK(ndr_push_align(ndr, 4));
1094 NDR_CHECK(ndr_push_smb_command(ndr, NDR_SCALARS, r->smb_command));
1095 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->err_class));
1096 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
1097 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->err_code));
1098 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->flags));
1099 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->flags2));
1100 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid_high));
1101 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->signature, 8));
1102 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
1103 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->tid));
1104 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid));
1105 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vuid));
1106 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->mid));
1107 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->smb_command));
1108 NDR_CHECK(ndr_push_smb_body(ndr, NDR_SCALARS, &r->body));
1109 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1111 if (ndr_flags & NDR_BUFFERS) {
1113 ndr->flags = _flags_save_STRUCT;
1115 return NDR_ERR_SUCCESS;
1118 _PUBLIC_ enum ndr_err_code ndr_pull_dgram_smb_packet(struct ndr_pull *ndr, int ndr_flags, struct dgram_smb_packet *r)
1121 uint32_t _flags_save_STRUCT = ndr->flags;
1122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1123 if (ndr_flags & NDR_SCALARS) {
1124 NDR_CHECK(ndr_pull_align(ndr, 4));
1125 NDR_CHECK(ndr_pull_smb_command(ndr, NDR_SCALARS, &r->smb_command));
1126 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->err_class));
1127 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad));
1128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->err_code));
1129 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->flags));
1130 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->flags2));
1131 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid_high));
1132 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->signature, 8));
1133 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved));
1134 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->tid));
1135 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid));
1136 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vuid));
1137 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->mid));
1138 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->smb_command));
1139 NDR_CHECK(ndr_pull_smb_body(ndr, NDR_SCALARS, &r->body));
1140 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1142 if (ndr_flags & NDR_BUFFERS) {
1144 ndr->flags = _flags_save_STRUCT;
1146 return NDR_ERR_SUCCESS;
1149 _PUBLIC_ void ndr_print_dgram_smb_packet(struct ndr_print *ndr, const char *name, const struct dgram_smb_packet *r)
1151 ndr_print_struct(ndr, name, "dgram_smb_packet");
1153 uint32_t _flags_save_STRUCT = ndr->flags;
1154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1155 ndr->depth++;
1156 ndr_print_smb_command(ndr, "smb_command", r->smb_command);
1157 ndr_print_uint8(ndr, "err_class", r->err_class);
1158 ndr_print_uint8(ndr, "pad", r->pad);
1159 ndr_print_uint16(ndr, "err_code", r->err_code);
1160 ndr_print_uint8(ndr, "flags", r->flags);
1161 ndr_print_uint16(ndr, "flags2", r->flags2);
1162 ndr_print_uint16(ndr, "pid_high", r->pid_high);
1163 ndr_print_array_uint8(ndr, "signature", r->signature, 8);
1164 ndr_print_uint16(ndr, "reserved", r->reserved);
1165 ndr_print_uint16(ndr, "tid", r->tid);
1166 ndr_print_uint16(ndr, "pid", r->pid);
1167 ndr_print_uint16(ndr, "vuid", r->vuid);
1168 ndr_print_uint16(ndr, "mid", r->mid);
1169 ndr_print_set_switch_value(ndr, &r->body, r->smb_command);
1170 ndr_print_smb_body(ndr, "body", &r->body);
1171 ndr->depth--;
1172 ndr->flags = _flags_save_STRUCT;
1176 static enum ndr_err_code ndr_push_dgram_message_body(struct ndr_push *ndr, int ndr_flags, const union dgram_message_body *r)
1178 if (ndr_flags & NDR_SCALARS) {
1179 int level = ndr_push_get_switch_value(ndr, r);
1180 NDR_CHECK(ndr_push_union_align(ndr, 4));
1181 switch (level) {
1182 case DGRAM_SMB: {
1183 NDR_CHECK(ndr_push_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1184 break; }
1186 default:
1187 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1190 if (ndr_flags & NDR_BUFFERS) {
1191 int level = ndr_push_get_switch_value(ndr, r);
1192 switch (level) {
1193 case DGRAM_SMB:
1194 break;
1196 default:
1197 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1200 return NDR_ERR_SUCCESS;
1203 static enum ndr_err_code ndr_pull_dgram_message_body(struct ndr_pull *ndr, int ndr_flags, union dgram_message_body *r)
1205 int level;
1206 level = ndr_pull_get_switch_value(ndr, r);
1207 if (ndr_flags & NDR_SCALARS) {
1208 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1209 switch (level) {
1210 case DGRAM_SMB: {
1211 NDR_CHECK(ndr_pull_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1212 break; }
1214 default:
1215 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1218 if (ndr_flags & NDR_BUFFERS) {
1219 switch (level) {
1220 case DGRAM_SMB:
1221 break;
1223 default:
1224 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1227 return NDR_ERR_SUCCESS;
1230 _PUBLIC_ void ndr_print_dgram_message_body(struct ndr_print *ndr, const char *name, const union dgram_message_body *r)
1232 int level;
1233 level = ndr_print_get_switch_value(ndr, r);
1234 ndr_print_union(ndr, name, level, "dgram_message_body");
1235 switch (level) {
1236 case DGRAM_SMB:
1237 ndr_print_dgram_smb_packet(ndr, "smb", &r->smb);
1238 break;
1240 default:
1241 ndr_print_bad_level(ndr, name, level);
1245 static enum ndr_err_code ndr_push_dgram_message(struct ndr_push *ndr, int ndr_flags, const struct dgram_message *r)
1247 if (ndr_flags & NDR_SCALARS) {
1248 NDR_CHECK(ndr_push_align(ndr, 4));
1249 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1250 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->offset));
1251 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1252 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dgram_body_type));
1254 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->dgram_body_type));
1255 NDR_CHECK(ndr_push_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1256 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1258 if (ndr_flags & NDR_BUFFERS) {
1260 return NDR_ERR_SUCCESS;
1263 static enum ndr_err_code ndr_pull_dgram_message(struct ndr_pull *ndr, int ndr_flags, struct dgram_message *r)
1265 if (ndr_flags & NDR_SCALARS) {
1266 NDR_CHECK(ndr_pull_align(ndr, 4));
1267 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1268 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->offset));
1269 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1270 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dgram_body_type));
1272 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->dgram_body_type));
1273 NDR_CHECK(ndr_pull_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1274 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1276 if (ndr_flags & NDR_BUFFERS) {
1278 return NDR_ERR_SUCCESS;
1281 _PUBLIC_ void ndr_print_dgram_message(struct ndr_print *ndr, const char *name, const struct dgram_message *r)
1283 ndr_print_struct(ndr, name, "dgram_message");
1284 ndr->depth++;
1285 ndr_print_uint16(ndr, "length", r->length);
1286 ndr_print_uint16(ndr, "offset", r->offset);
1287 ndr_print_nbt_name(ndr, "source_name", &r->source_name);
1288 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1289 ndr_print_uint32(ndr, "dgram_body_type", r->dgram_body_type);
1290 ndr_print_set_switch_value(ndr, &r->body, r->dgram_body_type);
1291 ndr_print_dgram_message_body(ndr, "body", &r->body);
1292 ndr->depth--;
1295 static enum ndr_err_code ndr_push_dgram_err_code(struct ndr_push *ndr, int ndr_flags, enum dgram_err_code r)
1297 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
1298 return NDR_ERR_SUCCESS;
1301 static enum ndr_err_code ndr_pull_dgram_err_code(struct ndr_pull *ndr, int ndr_flags, enum dgram_err_code *r)
1303 uint8_t v;
1304 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
1305 *r = v;
1306 return NDR_ERR_SUCCESS;
1309 _PUBLIC_ void ndr_print_dgram_err_code(struct ndr_print *ndr, const char *name, enum dgram_err_code r)
1311 const char *val = NULL;
1313 switch (r) {
1314 case DGRAM_ERROR_NAME_NOT_PRESENT: val = "DGRAM_ERROR_NAME_NOT_PRESENT"; break;
1315 case DGRAM_ERROR_INVALID_SOURCE: val = "DGRAM_ERROR_INVALID_SOURCE"; break;
1316 case DGRAM_ERROR_INVALID_DEST: val = "DGRAM_ERROR_INVALID_DEST"; break;
1318 ndr_print_enum(ndr, name, "ENUM", val, r);
1321 static enum ndr_err_code ndr_push_dgram_data(struct ndr_push *ndr, int ndr_flags, const union dgram_data *r)
1323 if (ndr_flags & NDR_SCALARS) {
1324 int level = ndr_push_get_switch_value(ndr, r);
1325 NDR_CHECK(ndr_push_union_align(ndr, 4));
1326 switch (level) {
1327 case DGRAM_DIRECT_UNIQUE: {
1328 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1329 break; }
1331 case DGRAM_DIRECT_GROUP: {
1332 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1333 break; }
1335 case DGRAM_BCAST: {
1336 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1337 break; }
1339 case DGRAM_ERROR: {
1340 NDR_CHECK(ndr_push_dgram_err_code(ndr, NDR_SCALARS, r->error));
1341 break; }
1343 case DGRAM_QUERY: {
1344 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1345 break; }
1347 case DGRAM_QUERY_POSITIVE: {
1348 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1349 break; }
1351 case DGRAM_QUERY_NEGATIVE: {
1352 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1353 break; }
1355 default:
1356 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1359 if (ndr_flags & NDR_BUFFERS) {
1360 int level = ndr_push_get_switch_value(ndr, r);
1361 switch (level) {
1362 case DGRAM_DIRECT_UNIQUE:
1363 break;
1365 case DGRAM_DIRECT_GROUP:
1366 break;
1368 case DGRAM_BCAST:
1369 break;
1371 case DGRAM_ERROR:
1372 break;
1374 case DGRAM_QUERY:
1375 break;
1377 case DGRAM_QUERY_POSITIVE:
1378 break;
1380 case DGRAM_QUERY_NEGATIVE:
1381 break;
1383 default:
1384 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1387 return NDR_ERR_SUCCESS;
1390 static enum ndr_err_code ndr_pull_dgram_data(struct ndr_pull *ndr, int ndr_flags, union dgram_data *r)
1392 int level;
1393 level = ndr_pull_get_switch_value(ndr, r);
1394 if (ndr_flags & NDR_SCALARS) {
1395 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1396 switch (level) {
1397 case DGRAM_DIRECT_UNIQUE: {
1398 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1399 break; }
1401 case DGRAM_DIRECT_GROUP: {
1402 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1403 break; }
1405 case DGRAM_BCAST: {
1406 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1407 break; }
1409 case DGRAM_ERROR: {
1410 NDR_CHECK(ndr_pull_dgram_err_code(ndr, NDR_SCALARS, &r->error));
1411 break; }
1413 case DGRAM_QUERY: {
1414 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1415 break; }
1417 case DGRAM_QUERY_POSITIVE: {
1418 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1419 break; }
1421 case DGRAM_QUERY_NEGATIVE: {
1422 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1423 break; }
1425 default:
1426 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1429 if (ndr_flags & NDR_BUFFERS) {
1430 switch (level) {
1431 case DGRAM_DIRECT_UNIQUE:
1432 break;
1434 case DGRAM_DIRECT_GROUP:
1435 break;
1437 case DGRAM_BCAST:
1438 break;
1440 case DGRAM_ERROR:
1441 break;
1443 case DGRAM_QUERY:
1444 break;
1446 case DGRAM_QUERY_POSITIVE:
1447 break;
1449 case DGRAM_QUERY_NEGATIVE:
1450 break;
1452 default:
1453 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1456 return NDR_ERR_SUCCESS;
1459 _PUBLIC_ void ndr_print_dgram_data(struct ndr_print *ndr, const char *name, const union dgram_data *r)
1461 int level;
1462 level = ndr_print_get_switch_value(ndr, r);
1463 ndr_print_union(ndr, name, level, "dgram_data");
1464 switch (level) {
1465 case DGRAM_DIRECT_UNIQUE:
1466 ndr_print_dgram_message(ndr, "msg", &r->msg);
1467 break;
1469 case DGRAM_DIRECT_GROUP:
1470 ndr_print_dgram_message(ndr, "msg", &r->msg);
1471 break;
1473 case DGRAM_BCAST:
1474 ndr_print_dgram_message(ndr, "msg", &r->msg);
1475 break;
1477 case DGRAM_ERROR:
1478 ndr_print_dgram_err_code(ndr, "error", r->error);
1479 break;
1481 case DGRAM_QUERY:
1482 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1483 break;
1485 case DGRAM_QUERY_POSITIVE:
1486 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1487 break;
1489 case DGRAM_QUERY_NEGATIVE:
1490 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1491 break;
1493 default:
1494 ndr_print_bad_level(ndr, name, level);
1498 _PUBLIC_ enum ndr_err_code ndr_push_nbt_dgram_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_dgram_packet *r)
1501 uint32_t _flags_save_STRUCT = ndr->flags;
1502 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1503 if (ndr_flags & NDR_SCALARS) {
1504 NDR_CHECK(ndr_push_align(ndr, 4));
1505 NDR_CHECK(ndr_push_dgram_msg_type(ndr, NDR_SCALARS, r->msg_type));
1506 NDR_CHECK(ndr_push_dgram_flags(ndr, NDR_SCALARS, r->flags));
1507 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->dgram_id));
1508 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->src_addr));
1509 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->src_port));
1510 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->msg_type));
1511 NDR_CHECK(ndr_push_dgram_data(ndr, NDR_SCALARS, &r->data));
1512 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1514 if (ndr_flags & NDR_BUFFERS) {
1516 ndr->flags = _flags_save_STRUCT;
1518 return NDR_ERR_SUCCESS;
1521 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_dgram_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_dgram_packet *r)
1524 uint32_t _flags_save_STRUCT = ndr->flags;
1525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1526 if (ndr_flags & NDR_SCALARS) {
1527 NDR_CHECK(ndr_pull_align(ndr, 4));
1528 NDR_CHECK(ndr_pull_dgram_msg_type(ndr, NDR_SCALARS, &r->msg_type));
1529 NDR_CHECK(ndr_pull_dgram_flags(ndr, NDR_SCALARS, &r->flags));
1530 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dgram_id));
1531 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->src_addr));
1532 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->src_port));
1533 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->msg_type));
1534 NDR_CHECK(ndr_pull_dgram_data(ndr, NDR_SCALARS, &r->data));
1535 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1537 if (ndr_flags & NDR_BUFFERS) {
1539 ndr->flags = _flags_save_STRUCT;
1541 return NDR_ERR_SUCCESS;
1544 _PUBLIC_ void ndr_print_nbt_dgram_packet(struct ndr_print *ndr, const char *name, const struct nbt_dgram_packet *r)
1546 ndr_print_struct(ndr, name, "nbt_dgram_packet");
1548 uint32_t _flags_save_STRUCT = ndr->flags;
1549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1550 ndr->depth++;
1551 ndr_print_dgram_msg_type(ndr, "msg_type", r->msg_type);
1552 ndr_print_dgram_flags(ndr, "flags", r->flags);
1553 ndr_print_uint16(ndr, "dgram_id", r->dgram_id);
1554 ndr_print_ipv4address(ndr, "src_addr", r->src_addr);
1555 ndr_print_uint16(ndr, "src_port", r->src_port);
1556 ndr_print_set_switch_value(ndr, &r->data, r->msg_type);
1557 ndr_print_dgram_data(ndr, "data", &r->data);
1558 ndr->depth--;
1559 ndr->flags = _flags_save_STRUCT;
1563 _PUBLIC_ enum ndr_err_code ndr_push_nbt_sockaddr(struct ndr_push *ndr, int ndr_flags, const struct nbt_sockaddr *r)
1565 if (ndr_flags & NDR_SCALARS) {
1566 NDR_CHECK(ndr_push_align(ndr, 4));
1567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sockaddr_family));
1569 uint32_t _flags_save_ipv4address = ndr->flags;
1570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1571 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
1572 ndr->flags = _flags_save_ipv4address;
1575 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1577 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
1578 ndr->flags = _flags_save_DATA_BLOB;
1580 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1582 if (ndr_flags & NDR_BUFFERS) {
1584 return NDR_ERR_SUCCESS;
1587 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_sockaddr(struct ndr_pull *ndr, int ndr_flags, struct nbt_sockaddr *r)
1589 if (ndr_flags & NDR_SCALARS) {
1590 NDR_CHECK(ndr_pull_align(ndr, 4));
1591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sockaddr_family));
1593 uint32_t _flags_save_ipv4address = ndr->flags;
1594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1595 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
1596 ndr->flags = _flags_save_ipv4address;
1599 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1601 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
1602 ndr->flags = _flags_save_DATA_BLOB;
1604 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1606 if (ndr_flags & NDR_BUFFERS) {
1608 return NDR_ERR_SUCCESS;
1611 _PUBLIC_ void ndr_print_nbt_sockaddr(struct ndr_print *ndr, const char *name, const struct nbt_sockaddr *r)
1613 ndr_print_struct(ndr, name, "nbt_sockaddr");
1614 ndr->depth++;
1615 ndr_print_uint32(ndr, "sockaddr_family", r->sockaddr_family);
1616 ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
1617 ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
1618 ndr->depth--;
1621 _PUBLIC_ size_t ndr_size_nbt_sockaddr(const struct nbt_sockaddr *r, struct smb_iconv_convenience *ic, int flags)
1623 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_nbt_sockaddr, ic);
1626 _PUBLIC_ enum ndr_err_code ndr_push_nbt_server_type(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1629 return NDR_ERR_SUCCESS;
1632 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_server_type(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1634 uint32_t v;
1635 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1636 *r = v;
1637 return NDR_ERR_SUCCESS;
1640 _PUBLIC_ void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r)
1642 ndr_print_uint32(ndr, name, r);
1643 ndr->depth++;
1644 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC, r);
1645 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC, r);
1646 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP, r);
1647 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS, r);
1648 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC, r);
1649 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV, r);
1650 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_CLOSEST", NBT_SERVER_CLOSEST, r);
1651 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_WRITABLE", NBT_SERVER_WRITABLE, r);
1652 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GOOD_TIMESERV", NBT_SERVER_GOOD_TIMESERV, r);
1653 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_NDNC", NBT_SERVER_NDNC, r);
1654 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_SELECT_SECRET_DOMAIN_6", NBT_SERVER_SELECT_SECRET_DOMAIN_6, r);
1655 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_FULL_SECRET_DOMAIN_6", NBT_SERVER_FULL_SECRET_DOMAIN_6, r);
1656 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DNS_FOREST", NBT_SERVER_DNS_FOREST, r);
1657 ndr->depth--;
1660 _PUBLIC_ enum ndr_err_code ndr_push_netlogon_nt_version_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1663 return NDR_ERR_SUCCESS;
1666 _PUBLIC_ enum ndr_err_code ndr_pull_netlogon_nt_version_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1668 uint32_t v;
1669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1670 *r = v;
1671 return NDR_ERR_SUCCESS;
1674 _PUBLIC_ void ndr_print_netlogon_nt_version_flags(struct ndr_print *ndr, const char *name, uint32_t r)
1676 ndr_print_uint32(ndr, name, r);
1677 ndr->depth++;
1678 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_1", NETLOGON_NT_VERSION_1, r);
1679 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5", NETLOGON_NT_VERSION_5, r);
1680 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX", NETLOGON_NT_VERSION_5EX, r);
1681 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX_WITH_IP", NETLOGON_NT_VERSION_5EX_WITH_IP, r);
1682 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE", NETLOGON_NT_VERSION_WITH_CLOSEST_SITE, r);
1683 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_AVIOD_NT4EMUL", NETLOGON_NT_VERSION_AVIOD_NT4EMUL, r);
1684 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_PDC", NETLOGON_NT_VERSION_PDC, r);
1685 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_IP", NETLOGON_NT_VERSION_IP, r);
1686 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_LOCAL", NETLOGON_NT_VERSION_LOCAL, r);
1687 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_GC", NETLOGON_NT_VERSION_GC, r);
1688 ndr->depth--;
1691 _PUBLIC_ enum ndr_err_code ndr_push_netlogon_command(struct ndr_push *ndr, int ndr_flags, enum netlogon_command r)
1693 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1694 return NDR_ERR_SUCCESS;
1697 _PUBLIC_ enum ndr_err_code ndr_pull_netlogon_command(struct ndr_pull *ndr, int ndr_flags, enum netlogon_command *r)
1699 uint16_t v;
1700 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1701 *r = v;
1702 return NDR_ERR_SUCCESS;
1705 _PUBLIC_ void ndr_print_netlogon_command(struct ndr_print *ndr, const char *name, enum netlogon_command r)
1707 const char *val = NULL;
1709 switch (r) {
1710 case LOGON_PRIMARY_QUERY: val = "LOGON_PRIMARY_QUERY"; break;
1711 case NETLOGON_ANNOUNCE_UAS: val = "NETLOGON_ANNOUNCE_UAS"; break;
1712 case NETLOGON_RESPONSE_FROM_PDC: val = "NETLOGON_RESPONSE_FROM_PDC"; break;
1713 case LOGON_SAM_LOGON_REQUEST: val = "LOGON_SAM_LOGON_REQUEST"; break;
1714 case LOGON_SAM_LOGON_RESPONSE: val = "LOGON_SAM_LOGON_RESPONSE"; break;
1715 case LOGON_SAM_LOGON_PAUSE_RESPONSE: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE"; break;
1716 case LOGON_SAM_LOGON_USER_UNKNOWN: val = "LOGON_SAM_LOGON_USER_UNKNOWN"; break;
1717 case LOGON_SAM_LOGON_RESPONSE_EX: val = "LOGON_SAM_LOGON_RESPONSE_EX"; break;
1718 case LOGON_SAM_LOGON_PAUSE_RESPONSE_EX: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE_EX"; break;
1719 case LOGON_SAM_LOGON_USER_UNKNOWN_EX: val = "LOGON_SAM_LOGON_USER_UNKNOWN_EX"; break;
1721 ndr_print_enum(ndr, name, "ENUM", val, r);
1724 _PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_REQUEST(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_REQUEST *r)
1726 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_REQUEST");
1727 ndr->depth++;
1728 ndr_print_uint16(ndr, "request_count", r->request_count);
1729 ndr_print_string(ndr, "computer_name", r->computer_name);
1730 ndr_print_string(ndr, "user_name", r->user_name);
1731 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1732 ndr_print_samr_AcctFlags(ndr, "acct_control", r->acct_control);
1733 ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);
1734 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
1735 ndr_print_dom_sid0(ndr, "sid", &r->sid);
1736 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1737 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1738 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1739 ndr->depth--;
1742 _PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
1745 uint32_t _flags_save_STRUCT = ndr->flags;
1746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1747 if (ndr_flags & NDR_SCALARS) {
1748 NDR_CHECK(ndr_push_align(ndr, 4));
1749 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1751 uint32_t _flags_save_string = ndr->flags;
1752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1753 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server));
1754 ndr->flags = _flags_save_string;
1757 uint32_t _flags_save_string = ndr->flags;
1758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
1760 ndr->flags = _flags_save_string;
1763 uint32_t _flags_save_string = ndr->flags;
1764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1765 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
1766 ndr->flags = _flags_save_string;
1768 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1769 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1770 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1771 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1773 if (ndr_flags & NDR_BUFFERS) {
1775 ndr->flags = _flags_save_STRUCT;
1777 return NDR_ERR_SUCCESS;
1780 _PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
1783 uint32_t _flags_save_STRUCT = ndr->flags;
1784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1785 if (ndr_flags & NDR_SCALARS) {
1786 NDR_CHECK(ndr_pull_align(ndr, 4));
1787 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
1789 uint32_t _flags_save_string = ndr->flags;
1790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1791 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server));
1792 ndr->flags = _flags_save_string;
1795 uint32_t _flags_save_string = ndr->flags;
1796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1797 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
1798 ndr->flags = _flags_save_string;
1801 uint32_t _flags_save_string = ndr->flags;
1802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1803 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
1804 ndr->flags = _flags_save_string;
1806 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
1807 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1808 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1809 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1811 if (ndr_flags & NDR_BUFFERS) {
1813 ndr->flags = _flags_save_STRUCT;
1815 return NDR_ERR_SUCCESS;
1818 _PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
1820 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_NT40");
1822 uint32_t _flags_save_STRUCT = ndr->flags;
1823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1824 ndr->depth++;
1825 ndr_print_netlogon_command(ndr, "command", r->command);
1826 ndr_print_string(ndr, "server", r->server);
1827 ndr_print_string(ndr, "user_name", r->user_name);
1828 ndr_print_string(ndr, "domain", r->domain);
1829 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1830 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1831 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1832 ndr->depth--;
1833 ndr->flags = _flags_save_STRUCT;
1837 _PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE *r)
1840 uint32_t _flags_save_STRUCT = ndr->flags;
1841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1842 if (ndr_flags & NDR_SCALARS) {
1843 NDR_CHECK(ndr_push_align(ndr, 4));
1844 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1846 uint32_t _flags_save_string = ndr->flags;
1847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
1849 ndr->flags = _flags_save_string;
1852 uint32_t _flags_save_string = ndr->flags;
1853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1854 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
1855 ndr->flags = _flags_save_string;
1858 uint32_t _flags_save_string = ndr->flags;
1859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1860 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
1861 ndr->flags = _flags_save_string;
1863 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1864 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
1865 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
1866 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
1867 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
1868 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
1869 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
1870 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1871 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1872 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1873 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1875 if (ndr_flags & NDR_BUFFERS) {
1877 ndr->flags = _flags_save_STRUCT;
1879 return NDR_ERR_SUCCESS;
1882 _PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE *r)
1885 uint32_t _flags_save_STRUCT = ndr->flags;
1886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1887 if (ndr_flags & NDR_SCALARS) {
1888 NDR_CHECK(ndr_pull_align(ndr, 4));
1889 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
1891 uint32_t _flags_save_string = ndr->flags;
1892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1893 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
1894 ndr->flags = _flags_save_string;
1897 uint32_t _flags_save_string = ndr->flags;
1898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1899 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
1900 ndr->flags = _flags_save_string;
1903 uint32_t _flags_save_string = ndr->flags;
1904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
1906 ndr->flags = _flags_save_string;
1908 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1909 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
1910 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
1911 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
1912 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
1913 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
1914 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
1915 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
1916 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1917 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1918 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1920 if (ndr_flags & NDR_BUFFERS) {
1922 ndr->flags = _flags_save_STRUCT;
1924 return NDR_ERR_SUCCESS;
1927 _PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE *r)
1929 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE");
1931 uint32_t _flags_save_STRUCT = ndr->flags;
1932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1933 ndr->depth++;
1934 ndr_print_netlogon_command(ndr, "command", r->command);
1935 ndr_print_string(ndr, "pdc_name", r->pdc_name);
1936 ndr_print_string(ndr, "user_name", r->user_name);
1937 ndr_print_string(ndr, "domain_name", r->domain_name);
1938 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
1939 ndr_print_GUID(ndr, "zero_uuid", &r->zero_uuid);
1940 ndr_print_nbt_string(ndr, "forest", r->forest);
1941 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
1942 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
1943 ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
1944 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
1945 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1946 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1947 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1948 ndr->depth--;
1949 ndr->flags = _flags_save_STRUCT;
1953 _PUBLIC_ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
1956 uint32_t _flags_save_STRUCT = ndr->flags;
1957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1958 if (ndr_flags & NDR_SCALARS) {
1959 NDR_CHECK(ndr_push_align(ndr, 4));
1960 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1961 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
1962 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
1963 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1964 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
1965 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
1966 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
1967 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
1968 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
1969 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));
1970 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));
1971 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site));
1972 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1974 struct ndr_push *_ndr_sockaddr;
1975 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1976 NDR_CHECK(ndr_push_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
1977 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1979 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->next_closest_site));
1980 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1981 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1982 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1983 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1985 if (ndr_flags & NDR_BUFFERS) {
1987 ndr->flags = _flags_save_STRUCT;
1989 return NDR_ERR_SUCCESS;
1992 _PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
1995 uint32_t _flags_save_STRUCT = ndr->flags;
1996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1997 if (ndr_flags & NDR_SCALARS) {
1998 NDR_CHECK(ndr_pull_align(ndr, 4));
1999 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2000 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
2001 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
2002 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2003 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
2004 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
2005 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
2006 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
2007 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
2008 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));
2009 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));
2010 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site));
2011 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->sockaddr_size));
2013 struct ndr_pull *_ndr_sockaddr;
2014 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sockaddr, 0, r->sockaddr_size));
2015 NDR_CHECK(ndr_pull_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
2016 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sockaddr, 0, r->sockaddr_size));
2018 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->next_closest_site));
2019 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2020 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2021 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2022 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2024 if (ndr_flags & NDR_BUFFERS) {
2026 ndr->flags = _flags_save_STRUCT;
2028 return NDR_ERR_SUCCESS;
2031 _PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
2033 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_EX");
2035 uint32_t _flags_save_STRUCT = ndr->flags;
2036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2037 ndr->depth++;
2038 ndr_print_netlogon_command(ndr, "command", r->command);
2039 ndr_print_uint16(ndr, "sbz", r->sbz);
2040 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
2041 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
2042 ndr_print_nbt_string(ndr, "forest", r->forest);
2043 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
2044 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
2045 ndr_print_nbt_string(ndr, "domain", r->domain);
2046 ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
2047 ndr_print_nbt_string(ndr, "user_name", r->user_name);
2048 ndr_print_nbt_string(ndr, "server_site", r->server_site);
2049 ndr_print_nbt_string(ndr, "client_site", r->client_site);
2050 ndr_print_uint8(ndr, "sockaddr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags):r->sockaddr_size);
2051 ndr_print_nbt_sockaddr(ndr, "sockaddr", &r->sockaddr);
2052 ndr_print_nbt_string(ndr, "next_closest_site", r->next_closest_site);
2053 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2054 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2055 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2056 ndr->depth--;
2057 ndr->flags = _flags_save_STRUCT;
2061 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)
2063 if (ndr_flags & NDR_SCALARS) {
2064 NDR_CHECK(ndr_push_align(ndr, 4));
2066 uint32_t _flags_save_string = ndr->flags;
2067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2068 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
2069 ndr->flags = _flags_save_string;
2072 uint32_t _flags_save_string = ndr->flags;
2073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
2075 ndr->flags = _flags_save_string;
2078 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2080 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2081 ndr->flags = _flags_save_DATA_BLOB;
2084 uint32_t _flags_save_string = ndr->flags;
2085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2086 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_name));
2087 ndr->flags = _flags_save_string;
2089 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
2090 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2091 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2092 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2094 if (ndr_flags & NDR_BUFFERS) {
2096 return NDR_ERR_SUCCESS;
2099 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)
2101 if (ndr_flags & NDR_SCALARS) {
2102 NDR_CHECK(ndr_pull_align(ndr, 4));
2104 uint32_t _flags_save_string = ndr->flags;
2105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2106 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
2107 ndr->flags = _flags_save_string;
2110 uint32_t _flags_save_string = ndr->flags;
2111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2112 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
2113 ndr->flags = _flags_save_string;
2116 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2118 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2119 ndr->flags = _flags_save_DATA_BLOB;
2122 uint32_t _flags_save_string = ndr->flags;
2123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2124 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_name));
2125 ndr->flags = _flags_save_string;
2127 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2129 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2130 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2132 if (ndr_flags & NDR_BUFFERS) {
2134 return NDR_ERR_SUCCESS;
2137 _PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc *r)
2139 ndr_print_struct(ndr, name, "nbt_netlogon_query_for_pdc");
2140 ndr->depth++;
2141 ndr_print_string(ndr, "computer_name", r->computer_name);
2142 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
2143 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2144 ndr_print_string(ndr, "unicode_name", r->unicode_name);
2145 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2146 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2147 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2148 ndr->depth--;
2151 _PUBLIC_ 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)
2154 uint32_t _flags_save_STRUCT = ndr->flags;
2155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2156 if (ndr_flags & NDR_SCALARS) {
2157 NDR_CHECK(ndr_push_align(ndr, 4));
2158 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
2160 uint32_t _flags_save_string = ndr->flags;
2161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2162 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2163 ndr->flags = _flags_save_string;
2166 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2168 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2169 ndr->flags = _flags_save_DATA_BLOB;
2172 uint32_t _flags_save_string = ndr->flags;
2173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
2175 ndr->flags = _flags_save_string;
2178 uint32_t _flags_save_string = ndr->flags;
2179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2180 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
2181 ndr->flags = _flags_save_string;
2183 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
2184 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2185 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2186 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2188 if (ndr_flags & NDR_BUFFERS) {
2190 ndr->flags = _flags_save_STRUCT;
2192 return NDR_ERR_SUCCESS;
2195 _PUBLIC_ 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)
2198 uint32_t _flags_save_STRUCT = ndr->flags;
2199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2200 if (ndr_flags & NDR_SCALARS) {
2201 NDR_CHECK(ndr_pull_align(ndr, 4));
2202 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2204 uint32_t _flags_save_string = ndr->flags;
2205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2207 ndr->flags = _flags_save_string;
2210 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2212 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2213 ndr->flags = _flags_save_DATA_BLOB;
2216 uint32_t _flags_save_string = ndr->flags;
2217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2218 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
2219 ndr->flags = _flags_save_string;
2222 uint32_t _flags_save_string = ndr->flags;
2223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2224 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
2225 ndr->flags = _flags_save_string;
2227 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2228 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2229 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2230 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2232 if (ndr_flags & NDR_BUFFERS) {
2234 ndr->flags = _flags_save_STRUCT;
2236 return NDR_ERR_SUCCESS;
2239 _PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc *r)
2241 ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc");
2243 uint32_t _flags_save_STRUCT = ndr->flags;
2244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2245 ndr->depth++;
2246 ndr_print_netlogon_command(ndr, "command", r->command);
2247 ndr_print_string(ndr, "pdc_name", r->pdc_name);
2248 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2249 ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
2250 ndr_print_string(ndr, "domain_name", r->domain_name);
2251 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2252 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2253 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2254 ndr->depth--;
2255 ndr->flags = _flags_save_STRUCT;
2259 static enum ndr_err_code ndr_push_nbt_db_change_info(struct ndr_push *ndr, int ndr_flags, const struct nbt_db_change_info *r)
2261 if (ndr_flags & NDR_SCALARS) {
2262 NDR_CHECK(ndr_push_align(ndr, 8));
2263 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->db_index));
2264 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->serial));
2265 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timestamp));
2266 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2268 if (ndr_flags & NDR_BUFFERS) {
2270 return NDR_ERR_SUCCESS;
2273 static enum ndr_err_code ndr_pull_nbt_db_change_info(struct ndr_pull *ndr, int ndr_flags, struct nbt_db_change_info *r)
2275 if (ndr_flags & NDR_SCALARS) {
2276 NDR_CHECK(ndr_pull_align(ndr, 8));
2277 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->db_index));
2278 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->serial));
2279 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timestamp));
2280 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2282 if (ndr_flags & NDR_BUFFERS) {
2284 return NDR_ERR_SUCCESS;
2287 _PUBLIC_ void ndr_print_nbt_db_change_info(struct ndr_print *ndr, const char *name, const struct nbt_db_change_info *r)
2289 ndr_print_struct(ndr, name, "nbt_db_change_info");
2290 ndr->depth++;
2291 ndr_print_netr_SamDatabaseID(ndr, "db_index", r->db_index);
2292 ndr_print_hyper(ndr, "serial", r->serial);
2293 ndr_print_NTTIME(ndr, "timestamp", r->timestamp);
2294 ndr->depth--;
2297 static enum ndr_err_code ndr_push_NETLOGON_DB_CHANGE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_DB_CHANGE *r)
2299 uint32_t cntr_dbchange_0;
2300 if (ndr_flags & NDR_SCALARS) {
2301 NDR_CHECK(ndr_push_align(ndr, 8));
2302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_lo));
2303 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pulse));
2305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->random));
2307 uint32_t _flags_save_string = ndr->flags;
2308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2309 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2310 ndr->flags = _flags_save_string;
2313 uint32_t _flags_save_string = ndr->flags;
2314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2315 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
2316 ndr->flags = _flags_save_string;
2319 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2321 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2322 ndr->flags = _flags_save_DATA_BLOB;
2325 uint32_t _flags_save_string = ndr->flags;
2326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2327 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
2328 ndr->flags = _flags_save_string;
2331 uint32_t _flags_save_string = ndr->flags;
2332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2333 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_domain));
2334 ndr->flags = _flags_save_string;
2336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->db_count));
2337 for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
2338 NDR_CHECK(ndr_push_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2342 struct ndr_push *_ndr_sid;
2343 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2344 NDR_CHECK(ndr_push_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));
2345 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->message_format_version));
2348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->message_token));
2349 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2351 if (ndr_flags & NDR_BUFFERS) {
2353 return NDR_ERR_SUCCESS;
2356 static enum ndr_err_code ndr_pull_NETLOGON_DB_CHANGE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_DB_CHANGE *r)
2358 uint32_t cntr_dbchange_0;
2359 TALLOC_CTX *_mem_save_dbchange_0;
2360 if (ndr_flags & NDR_SCALARS) {
2361 NDR_CHECK(ndr_pull_align(ndr, 8));
2362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_lo));
2363 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pulse));
2365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->random));
2367 uint32_t _flags_save_string = ndr->flags;
2368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2369 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2370 ndr->flags = _flags_save_string;
2373 uint32_t _flags_save_string = ndr->flags;
2374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2375 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
2376 ndr->flags = _flags_save_string;
2379 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2381 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2382 ndr->flags = _flags_save_DATA_BLOB;
2385 uint32_t _flags_save_string = ndr->flags;
2386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
2388 ndr->flags = _flags_save_string;
2391 uint32_t _flags_save_string = ndr->flags;
2392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2393 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_domain));
2394 ndr->flags = _flags_save_string;
2396 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->db_count));
2397 NDR_PULL_ALLOC_N(ndr, r->dbchange, r->db_count);
2398 _mem_save_dbchange_0 = NDR_PULL_GET_MEM_CTX(ndr);
2399 NDR_PULL_SET_MEM_CTX(ndr, r->dbchange, 0);
2400 for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
2401 NDR_CHECK(ndr_pull_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dbchange_0, 0);
2404 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));
2406 struct ndr_pull *_ndr_sid;
2407 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sid, 0, r->sid_size));
2408 NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));
2409 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sid, 0, r->sid_size));
2411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->message_format_version));
2412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->message_token));
2413 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2415 if (ndr_flags & NDR_BUFFERS) {
2417 return NDR_ERR_SUCCESS;
2420 _PUBLIC_ void ndr_print_NETLOGON_DB_CHANGE(struct ndr_print *ndr, const char *name, const struct NETLOGON_DB_CHANGE *r)
2422 uint32_t cntr_dbchange_0;
2423 ndr_print_struct(ndr, name, "NETLOGON_DB_CHANGE");
2424 ndr->depth++;
2425 ndr_print_uint32(ndr, "serial_lo", r->serial_lo);
2426 ndr_print_time_t(ndr, "timestamp", r->timestamp);
2427 ndr_print_uint32(ndr, "pulse", r->pulse);
2428 ndr_print_uint32(ndr, "random", r->random);
2429 ndr_print_string(ndr, "pdc_name", r->pdc_name);
2430 ndr_print_string(ndr, "domain", r->domain);
2431 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2432 ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
2433 ndr_print_string(ndr, "unicode_domain", r->unicode_domain);
2434 ndr_print_uint32(ndr, "db_count", r->db_count);
2435 ndr->print(ndr, "%s: ARRAY(%d)", "dbchange", (int)r->db_count);
2436 ndr->depth++;
2437 for (cntr_dbchange_0=0;cntr_dbchange_0<r->db_count;cntr_dbchange_0++) {
2438 char *idx_0=NULL;
2439 if (asprintf(&idx_0, "[%d]", cntr_dbchange_0) != -1) {
2440 ndr_print_nbt_db_change_info(ndr, "dbchange", &r->dbchange[cntr_dbchange_0]);
2441 free(idx_0);
2444 ndr->depth--;
2445 ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);
2446 ndr_print_dom_sid0(ndr, "sid", &r->sid);
2447 ndr_print_uint32(ndr, "message_format_version", r->message_format_version);
2448 ndr_print_uint32(ndr, "message_token", r->message_token);
2449 ndr->depth--;
2452 static enum ndr_err_code ndr_push_nbt_netlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_netlogon_request *r)
2454 if (ndr_flags & NDR_SCALARS) {
2455 int level = ndr_push_get_switch_value(ndr, r);
2456 NDR_CHECK(ndr_push_union_align(ndr, 8));
2457 switch (level) {
2458 case LOGON_SAM_LOGON_REQUEST: {
2459 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
2460 break; }
2462 case LOGON_PRIMARY_QUERY: {
2463 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2464 break; }
2466 case NETLOGON_ANNOUNCE_UAS: {
2467 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
2468 break; }
2470 default:
2471 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2474 if (ndr_flags & NDR_BUFFERS) {
2475 int level = ndr_push_get_switch_value(ndr, r);
2476 switch (level) {
2477 case LOGON_SAM_LOGON_REQUEST:
2478 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
2479 break;
2481 case LOGON_PRIMARY_QUERY:
2482 break;
2484 case NETLOGON_ANNOUNCE_UAS:
2485 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
2486 break;
2488 default:
2489 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2492 return NDR_ERR_SUCCESS;
2495 static enum ndr_err_code ndr_pull_nbt_netlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_netlogon_request *r)
2497 int level;
2498 level = ndr_pull_get_switch_value(ndr, r);
2499 if (ndr_flags & NDR_SCALARS) {
2500 NDR_CHECK(ndr_pull_union_align(ndr, 8));
2501 switch (level) {
2502 case LOGON_SAM_LOGON_REQUEST: {
2503 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
2504 break; }
2506 case LOGON_PRIMARY_QUERY: {
2507 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2508 break; }
2510 case NETLOGON_ANNOUNCE_UAS: {
2511 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
2512 break; }
2514 default:
2515 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2518 if (ndr_flags & NDR_BUFFERS) {
2519 switch (level) {
2520 case LOGON_SAM_LOGON_REQUEST:
2521 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
2522 break;
2524 case LOGON_PRIMARY_QUERY:
2525 break;
2527 case NETLOGON_ANNOUNCE_UAS:
2528 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
2529 break;
2531 default:
2532 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2535 return NDR_ERR_SUCCESS;
2538 _PUBLIC_ void ndr_print_nbt_netlogon_request(struct ndr_print *ndr, const char *name, const union nbt_netlogon_request *r)
2540 int level;
2541 level = ndr_print_get_switch_value(ndr, r);
2542 ndr_print_union(ndr, name, level, "nbt_netlogon_request");
2543 switch (level) {
2544 case LOGON_SAM_LOGON_REQUEST:
2545 ndr_print_NETLOGON_SAM_LOGON_REQUEST(ndr, "logon", &r->logon);
2546 break;
2548 case LOGON_PRIMARY_QUERY:
2549 ndr_print_nbt_netlogon_query_for_pdc(ndr, "pdc", &r->pdc);
2550 break;
2552 case NETLOGON_ANNOUNCE_UAS:
2553 ndr_print_NETLOGON_DB_CHANGE(ndr, "uas", &r->uas);
2554 break;
2556 default:
2557 ndr_print_bad_level(ndr, name, level);
2561 _PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_packet *r)
2564 uint32_t _flags_save_STRUCT = ndr->flags;
2565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2566 if (ndr_flags & NDR_SCALARS) {
2567 NDR_CHECK(ndr_push_align(ndr, 8));
2568 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
2569 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->req, r->command));
2570 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2571 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2573 if (ndr_flags & NDR_BUFFERS) {
2574 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2576 ndr->flags = _flags_save_STRUCT;
2578 return NDR_ERR_SUCCESS;
2581 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_packet *r)
2584 uint32_t _flags_save_STRUCT = ndr->flags;
2585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2586 if (ndr_flags & NDR_SCALARS) {
2587 NDR_CHECK(ndr_pull_align(ndr, 8));
2588 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2589 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->req, r->command));
2590 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2591 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2593 if (ndr_flags & NDR_BUFFERS) {
2594 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2596 ndr->flags = _flags_save_STRUCT;
2598 return NDR_ERR_SUCCESS;
2601 _PUBLIC_ void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r)
2603 ndr_print_struct(ndr, name, "nbt_netlogon_packet");
2605 uint32_t _flags_save_STRUCT = ndr->flags;
2606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2607 ndr->depth++;
2608 ndr_print_netlogon_command(ndr, "command", r->command);
2609 ndr_print_set_switch_value(ndr, &r->req, r->command);
2610 ndr_print_nbt_netlogon_request(ndr, "req", &r->req);
2611 ndr->depth--;
2612 ndr->flags = _flags_save_STRUCT;
2616 static enum ndr_err_code ndr_push_nbt_browse_opcode(struct ndr_push *ndr, int ndr_flags, enum nbt_browse_opcode r)
2618 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
2619 return NDR_ERR_SUCCESS;
2622 static enum ndr_err_code ndr_pull_nbt_browse_opcode(struct ndr_pull *ndr, int ndr_flags, enum nbt_browse_opcode *r)
2624 uint8_t v;
2625 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
2626 *r = v;
2627 return NDR_ERR_SUCCESS;
2630 _PUBLIC_ void ndr_print_nbt_browse_opcode(struct ndr_print *ndr, const char *name, enum nbt_browse_opcode r)
2632 const char *val = NULL;
2634 switch (r) {
2635 case HostAnnouncement: val = "HostAnnouncement"; break;
2636 case AnnouncementRequest: val = "AnnouncementRequest"; break;
2637 case Election: val = "Election"; break;
2638 case GetBackupListReq: val = "GetBackupListReq"; break;
2639 case GetBackupListResp: val = "GetBackupListResp"; break;
2640 case BecomeBackup: val = "BecomeBackup"; break;
2641 case DomainAnnouncement: val = "DomainAnnouncement"; break;
2642 case MasterAnnouncement: val = "MasterAnnouncement"; break;
2643 case ResetBrowserState: val = "ResetBrowserState"; break;
2644 case LocalMasterAnnouncement: val = "LocalMasterAnnouncement"; break;
2646 ndr_print_enum(ndr, name, "ENUM", val, r);
2649 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)
2651 if (ndr_flags & NDR_SCALARS) {
2652 NDR_CHECK(ndr_push_align(ndr, 4));
2653 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
2654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
2655 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2656 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
2657 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
2658 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
2659 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
2660 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
2661 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
2663 uint32_t _flags_save_string = ndr->flags;
2664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
2666 ndr->flags = _flags_save_string;
2668 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2670 if (ndr_flags & NDR_BUFFERS) {
2672 return NDR_ERR_SUCCESS;
2675 static enum ndr_err_code ndr_pull_nbt_browse_host_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_host_announcement *r)
2677 if (ndr_flags & NDR_SCALARS) {
2678 NDR_CHECK(ndr_pull_align(ndr, 4));
2679 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
2680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
2681 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2682 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
2683 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
2684 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
2685 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
2686 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
2687 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
2689 uint32_t _flags_save_string = ndr->flags;
2690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2691 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
2692 ndr->flags = _flags_save_string;
2694 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2696 if (ndr_flags & NDR_BUFFERS) {
2698 return NDR_ERR_SUCCESS;
2701 _PUBLIC_ void ndr_print_nbt_browse_host_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_host_announcement *r)
2703 ndr_print_struct(ndr, name, "nbt_browse_host_announcement");
2704 ndr->depth++;
2705 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
2706 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
2707 ndr_print_string(ndr, "ServerName", r->ServerName);
2708 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
2709 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
2710 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
2711 ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
2712 ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
2713 ndr_print_uint16(ndr, "Signature", r->Signature);
2714 ndr_print_string(ndr, "Comment", r->Comment);
2715 ndr->depth--;
2718 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)
2720 if (ndr_flags & NDR_SCALARS) {
2721 NDR_CHECK(ndr_push_align(ndr, 4));
2722 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Unused));
2724 uint32_t _flags_save_string = ndr->flags;
2725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ResponseName));
2727 ndr->flags = _flags_save_string;
2729 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2731 if (ndr_flags & NDR_BUFFERS) {
2733 return NDR_ERR_SUCCESS;
2736 static enum ndr_err_code ndr_pull_nbt_browse_announcement_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_announcement_request *r)
2738 if (ndr_flags & NDR_SCALARS) {
2739 NDR_CHECK(ndr_pull_align(ndr, 4));
2740 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Unused));
2742 uint32_t _flags_save_string = ndr->flags;
2743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2744 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ResponseName));
2745 ndr->flags = _flags_save_string;
2747 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2749 if (ndr_flags & NDR_BUFFERS) {
2751 return NDR_ERR_SUCCESS;
2754 _PUBLIC_ void ndr_print_nbt_browse_announcement_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_announcement_request *r)
2756 ndr_print_struct(ndr, name, "nbt_browse_announcement_request");
2757 ndr->depth++;
2758 ndr_print_uint8(ndr, "Unused", r->Unused);
2759 ndr_print_string(ndr, "ResponseName", r->ResponseName);
2760 ndr->depth--;
2763 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)
2765 if (ndr_flags & NDR_SCALARS) {
2766 NDR_CHECK(ndr_push_align(ndr, 4));
2767 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Version));
2768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Criteria));
2769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->UpTime));
2770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved));
2772 uint32_t _flags_save_string = ndr->flags;
2773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2774 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ServerName));
2775 ndr->flags = _flags_save_string;
2777 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2779 if (ndr_flags & NDR_BUFFERS) {
2781 return NDR_ERR_SUCCESS;
2784 static enum ndr_err_code ndr_pull_nbt_browse_election_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_election_request *r)
2786 if (ndr_flags & NDR_SCALARS) {
2787 NDR_CHECK(ndr_pull_align(ndr, 4));
2788 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Version));
2789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Criteria));
2790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->UpTime));
2791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved));
2793 uint32_t _flags_save_string = ndr->flags;
2794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2795 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
2796 ndr->flags = _flags_save_string;
2798 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2800 if (ndr_flags & NDR_BUFFERS) {
2802 return NDR_ERR_SUCCESS;
2805 _PUBLIC_ void ndr_print_nbt_browse_election_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_election_request *r)
2807 ndr_print_struct(ndr, name, "nbt_browse_election_request");
2808 ndr->depth++;
2809 ndr_print_uint8(ndr, "Version", r->Version);
2810 ndr_print_uint32(ndr, "Criteria", r->Criteria);
2811 ndr_print_uint32(ndr, "UpTime", r->UpTime);
2812 ndr_print_uint32(ndr, "Reserved", r->Reserved);
2813 ndr_print_string(ndr, "ServerName", r->ServerName);
2814 ndr->depth--;
2817 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)
2819 if (ndr_flags & NDR_SCALARS) {
2820 NDR_CHECK(ndr_push_align(ndr, 4));
2821 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ReqCount));
2822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
2823 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2825 if (ndr_flags & NDR_BUFFERS) {
2827 return NDR_ERR_SUCCESS;
2830 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)
2832 if (ndr_flags & NDR_SCALARS) {
2833 NDR_CHECK(ndr_pull_align(ndr, 4));
2834 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ReqCount));
2835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
2836 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2838 if (ndr_flags & NDR_BUFFERS) {
2840 return NDR_ERR_SUCCESS;
2843 _PUBLIC_ void ndr_print_nbt_browse_backup_list_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_request *r)
2845 ndr_print_struct(ndr, name, "nbt_browse_backup_list_request");
2846 ndr->depth++;
2847 ndr_print_uint8(ndr, "ReqCount", r->ReqCount);
2848 ndr_print_uint32(ndr, "Token", r->Token);
2849 ndr->depth--;
2852 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)
2854 uint32_t cntr_BackupServerList_0;
2855 if (ndr_flags & NDR_SCALARS) {
2856 NDR_CHECK(ndr_push_align(ndr, 4));
2857 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BackupCount));
2858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
2859 for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < r->BackupCount; cntr_BackupServerList_0++) {
2860 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
2862 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2864 if (ndr_flags & NDR_BUFFERS) {
2866 return NDR_ERR_SUCCESS;
2869 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)
2871 uint32_t cntr_BackupServerList_0;
2872 TALLOC_CTX *_mem_save_BackupServerList_0;
2873 if (ndr_flags & NDR_SCALARS) {
2874 NDR_CHECK(ndr_pull_align(ndr, 4));
2875 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BackupCount));
2876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
2877 NDR_PULL_ALLOC_N(ndr, r->BackupServerList, r->BackupCount);
2878 _mem_save_BackupServerList_0 = NDR_PULL_GET_MEM_CTX(ndr);
2879 NDR_PULL_SET_MEM_CTX(ndr, r->BackupServerList, 0);
2880 for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < r->BackupCount; cntr_BackupServerList_0++) {
2881 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
2883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_BackupServerList_0, 0);
2884 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2886 if (ndr_flags & NDR_BUFFERS) {
2888 return NDR_ERR_SUCCESS;
2891 _PUBLIC_ void ndr_print_nbt_browse_backup_list_response(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_response *r)
2893 uint32_t cntr_BackupServerList_0;
2894 ndr_print_struct(ndr, name, "nbt_browse_backup_list_response");
2895 ndr->depth++;
2896 ndr_print_uint8(ndr, "BackupCount", r->BackupCount);
2897 ndr_print_uint32(ndr, "Token", r->Token);
2898 ndr->print(ndr, "%s: ARRAY(%d)", "BackupServerList", (int)r->BackupCount);
2899 ndr->depth++;
2900 for (cntr_BackupServerList_0=0;cntr_BackupServerList_0<r->BackupCount;cntr_BackupServerList_0++) {
2901 char *idx_0=NULL;
2902 if (asprintf(&idx_0, "[%d]", cntr_BackupServerList_0) != -1) {
2903 ndr_print_nbt_name(ndr, "BackupServerList", &r->BackupServerList[cntr_BackupServerList_0]);
2904 free(idx_0);
2907 ndr->depth--;
2908 ndr->depth--;
2911 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)
2913 if (ndr_flags & NDR_SCALARS) {
2914 NDR_CHECK(ndr_push_align(ndr, 4));
2916 uint32_t _flags_save_string = ndr->flags;
2917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2918 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->BrowserName));
2919 ndr->flags = _flags_save_string;
2921 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2923 if (ndr_flags & NDR_BUFFERS) {
2925 return NDR_ERR_SUCCESS;
2928 static enum ndr_err_code ndr_pull_nbt_browse_become_backup(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_become_backup *r)
2930 if (ndr_flags & NDR_SCALARS) {
2931 NDR_CHECK(ndr_pull_align(ndr, 4));
2933 uint32_t _flags_save_string = ndr->flags;
2934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->BrowserName));
2936 ndr->flags = _flags_save_string;
2938 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2940 if (ndr_flags & NDR_BUFFERS) {
2942 return NDR_ERR_SUCCESS;
2945 _PUBLIC_ void ndr_print_nbt_browse_become_backup(struct ndr_print *ndr, const char *name, const struct nbt_browse_become_backup *r)
2947 ndr_print_struct(ndr, name, "nbt_browse_become_backup");
2948 ndr->depth++;
2949 ndr_print_string(ndr, "BrowserName", r->BrowserName);
2950 ndr->depth--;
2953 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)
2955 if (ndr_flags & NDR_SCALARS) {
2956 NDR_CHECK(ndr_push_align(ndr, 4));
2957 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
2958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
2959 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2960 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
2961 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
2962 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
2963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MysteriousField));
2965 uint32_t _flags_save_string = ndr->flags;
2966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2967 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
2968 ndr->flags = _flags_save_string;
2970 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2972 if (ndr_flags & NDR_BUFFERS) {
2974 return NDR_ERR_SUCCESS;
2977 static enum ndr_err_code ndr_pull_nbt_browse_domain_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_domain_announcement *r)
2979 if (ndr_flags & NDR_SCALARS) {
2980 NDR_CHECK(ndr_pull_align(ndr, 4));
2981 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
2982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
2983 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2984 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
2985 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
2986 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
2987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MysteriousField));
2989 uint32_t _flags_save_string = ndr->flags;
2990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2991 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
2992 ndr->flags = _flags_save_string;
2994 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2996 if (ndr_flags & NDR_BUFFERS) {
2998 return NDR_ERR_SUCCESS;
3001 _PUBLIC_ void ndr_print_nbt_browse_domain_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_domain_announcement *r)
3003 ndr_print_struct(ndr, name, "nbt_browse_domain_announcement");
3004 ndr->depth++;
3005 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3006 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3007 ndr_print_string(ndr, "ServerName", r->ServerName);
3008 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3009 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3010 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3011 ndr_print_uint32(ndr, "MysteriousField", r->MysteriousField);
3012 ndr_print_string(ndr, "Comment", r->Comment);
3013 ndr->depth--;
3016 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)
3018 if (ndr_flags & NDR_SCALARS) {
3019 NDR_CHECK(ndr_push_align(ndr, 4));
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->ServerName));
3024 ndr->flags = _flags_save_string;
3026 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3028 if (ndr_flags & NDR_BUFFERS) {
3030 return NDR_ERR_SUCCESS;
3033 static enum ndr_err_code ndr_pull_nbt_browse_master_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_master_announcement *r)
3035 if (ndr_flags & NDR_SCALARS) {
3036 NDR_CHECK(ndr_pull_align(ndr, 4));
3038 uint32_t _flags_save_string = ndr->flags;
3039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3040 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
3041 ndr->flags = _flags_save_string;
3043 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3045 if (ndr_flags & NDR_BUFFERS) {
3047 return NDR_ERR_SUCCESS;
3050 _PUBLIC_ void ndr_print_nbt_browse_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_master_announcement *r)
3052 ndr_print_struct(ndr, name, "nbt_browse_master_announcement");
3053 ndr->depth++;
3054 ndr_print_string(ndr, "ServerName", r->ServerName);
3055 ndr->depth--;
3058 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)
3060 if (ndr_flags & NDR_SCALARS) {
3061 NDR_CHECK(ndr_push_align(ndr, 1));
3062 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Command));
3063 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3065 if (ndr_flags & NDR_BUFFERS) {
3067 return NDR_ERR_SUCCESS;
3070 static enum ndr_err_code ndr_pull_nbt_browse_reset_state(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_reset_state *r)
3072 if (ndr_flags & NDR_SCALARS) {
3073 NDR_CHECK(ndr_pull_align(ndr, 1));
3074 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Command));
3075 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3077 if (ndr_flags & NDR_BUFFERS) {
3079 return NDR_ERR_SUCCESS;
3082 _PUBLIC_ void ndr_print_nbt_browse_reset_state(struct ndr_print *ndr, const char *name, const struct nbt_browse_reset_state *r)
3084 ndr_print_struct(ndr, name, "nbt_browse_reset_state");
3085 ndr->depth++;
3086 ndr_print_uint8(ndr, "Command", r->Command);
3087 ndr->depth--;
3090 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)
3092 if (ndr_flags & NDR_SCALARS) {
3093 NDR_CHECK(ndr_push_align(ndr, 4));
3094 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
3095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
3096 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3097 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
3098 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
3099 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
3100 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
3101 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
3102 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
3104 uint32_t _flags_save_string = ndr->flags;
3105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3106 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
3107 ndr->flags = _flags_save_string;
3109 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3111 if (ndr_flags & NDR_BUFFERS) {
3113 return NDR_ERR_SUCCESS;
3116 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)
3118 if (ndr_flags & NDR_SCALARS) {
3119 NDR_CHECK(ndr_pull_align(ndr, 4));
3120 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
3121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
3122 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3123 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
3124 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
3125 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
3126 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
3127 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
3128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
3130 uint32_t _flags_save_string = ndr->flags;
3131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3132 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
3133 ndr->flags = _flags_save_string;
3135 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3137 if (ndr_flags & NDR_BUFFERS) {
3139 return NDR_ERR_SUCCESS;
3142 _PUBLIC_ void ndr_print_nbt_browse_local_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_local_master_announcement *r)
3144 ndr_print_struct(ndr, name, "nbt_browse_local_master_announcement");
3145 ndr->depth++;
3146 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3147 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3148 ndr_print_string(ndr, "ServerName", r->ServerName);
3149 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3150 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3151 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3152 ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
3153 ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
3154 ndr_print_uint16(ndr, "Signature", r->Signature);
3155 ndr_print_string(ndr, "Comment", r->Comment);
3156 ndr->depth--;
3159 static enum ndr_err_code ndr_push_nbt_browse_payload(struct ndr_push *ndr, int ndr_flags, const union nbt_browse_payload *r)
3161 if (ndr_flags & NDR_SCALARS) {
3162 int level = ndr_push_get_switch_value(ndr, r);
3163 NDR_CHECK(ndr_push_union_align(ndr, 4));
3164 switch (level) {
3165 case HostAnnouncement: {
3166 NDR_CHECK(ndr_push_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3167 break; }
3169 case AnnouncementRequest: {
3170 NDR_CHECK(ndr_push_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3171 break; }
3173 case Election: {
3174 NDR_CHECK(ndr_push_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3175 break; }
3177 case GetBackupListReq: {
3178 NDR_CHECK(ndr_push_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3179 break; }
3181 case GetBackupListResp: {
3182 NDR_CHECK(ndr_push_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3183 break; }
3185 case BecomeBackup: {
3186 NDR_CHECK(ndr_push_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3187 break; }
3189 case DomainAnnouncement: {
3190 NDR_CHECK(ndr_push_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3191 break; }
3193 case MasterAnnouncement: {
3194 NDR_CHECK(ndr_push_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3195 break; }
3197 case ResetBrowserState: {
3198 NDR_CHECK(ndr_push_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3199 break; }
3201 case LocalMasterAnnouncement: {
3202 NDR_CHECK(ndr_push_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3203 break; }
3205 default:
3206 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3209 if (ndr_flags & NDR_BUFFERS) {
3210 int level = ndr_push_get_switch_value(ndr, r);
3211 switch (level) {
3212 case HostAnnouncement:
3213 break;
3215 case AnnouncementRequest:
3216 break;
3218 case Election:
3219 break;
3221 case GetBackupListReq:
3222 break;
3224 case GetBackupListResp:
3225 break;
3227 case BecomeBackup:
3228 break;
3230 case DomainAnnouncement:
3231 break;
3233 case MasterAnnouncement:
3234 break;
3236 case ResetBrowserState:
3237 break;
3239 case LocalMasterAnnouncement:
3240 break;
3242 default:
3243 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3246 return NDR_ERR_SUCCESS;
3249 static enum ndr_err_code ndr_pull_nbt_browse_payload(struct ndr_pull *ndr, int ndr_flags, union nbt_browse_payload *r)
3251 int level;
3252 level = ndr_pull_get_switch_value(ndr, r);
3253 if (ndr_flags & NDR_SCALARS) {
3254 NDR_CHECK(ndr_pull_union_align(ndr, 4));
3255 switch (level) {
3256 case HostAnnouncement: {
3257 NDR_CHECK(ndr_pull_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3258 break; }
3260 case AnnouncementRequest: {
3261 NDR_CHECK(ndr_pull_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3262 break; }
3264 case Election: {
3265 NDR_CHECK(ndr_pull_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3266 break; }
3268 case GetBackupListReq: {
3269 NDR_CHECK(ndr_pull_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3270 break; }
3272 case GetBackupListResp: {
3273 NDR_CHECK(ndr_pull_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3274 break; }
3276 case BecomeBackup: {
3277 NDR_CHECK(ndr_pull_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3278 break; }
3280 case DomainAnnouncement: {
3281 NDR_CHECK(ndr_pull_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3282 break; }
3284 case MasterAnnouncement: {
3285 NDR_CHECK(ndr_pull_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3286 break; }
3288 case ResetBrowserState: {
3289 NDR_CHECK(ndr_pull_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3290 break; }
3292 case LocalMasterAnnouncement: {
3293 NDR_CHECK(ndr_pull_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3294 break; }
3296 default:
3297 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3300 if (ndr_flags & NDR_BUFFERS) {
3301 switch (level) {
3302 case HostAnnouncement:
3303 break;
3305 case AnnouncementRequest:
3306 break;
3308 case Election:
3309 break;
3311 case GetBackupListReq:
3312 break;
3314 case GetBackupListResp:
3315 break;
3317 case BecomeBackup:
3318 break;
3320 case DomainAnnouncement:
3321 break;
3323 case MasterAnnouncement:
3324 break;
3326 case ResetBrowserState:
3327 break;
3329 case LocalMasterAnnouncement:
3330 break;
3332 default:
3333 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3336 return NDR_ERR_SUCCESS;
3339 _PUBLIC_ void ndr_print_nbt_browse_payload(struct ndr_print *ndr, const char *name, const union nbt_browse_payload *r)
3341 int level;
3342 level = ndr_print_get_switch_value(ndr, r);
3343 ndr_print_union(ndr, name, level, "nbt_browse_payload");
3344 switch (level) {
3345 case HostAnnouncement:
3346 ndr_print_nbt_browse_host_announcement(ndr, "host_annoucement", &r->host_annoucement);
3347 break;
3349 case AnnouncementRequest:
3350 ndr_print_nbt_browse_announcement_request(ndr, "announcement_request", &r->announcement_request);
3351 break;
3353 case Election:
3354 ndr_print_nbt_browse_election_request(ndr, "election_request", &r->election_request);
3355 break;
3357 case GetBackupListReq:
3358 ndr_print_nbt_browse_backup_list_request(ndr, "backup_list_request", &r->backup_list_request);
3359 break;
3361 case GetBackupListResp:
3362 ndr_print_nbt_browse_backup_list_response(ndr, "backup_list_response", &r->backup_list_response);
3363 break;
3365 case BecomeBackup:
3366 ndr_print_nbt_browse_become_backup(ndr, "become_backup", &r->become_backup);
3367 break;
3369 case DomainAnnouncement:
3370 ndr_print_nbt_browse_domain_announcement(ndr, "domain_announcement", &r->domain_announcement);
3371 break;
3373 case MasterAnnouncement:
3374 ndr_print_nbt_browse_master_announcement(ndr, "master_announcement", &r->master_announcement);
3375 break;
3377 case ResetBrowserState:
3378 ndr_print_nbt_browse_reset_state(ndr, "reset_browser_state", &r->reset_browser_state);
3379 break;
3381 case LocalMasterAnnouncement:
3382 ndr_print_nbt_browse_local_master_announcement(ndr, "local_master_announcement", &r->local_master_announcement);
3383 break;
3385 default:
3386 ndr_print_bad_level(ndr, name, level);
3390 _PUBLIC_ enum ndr_err_code ndr_push_nbt_browse_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_packet *r)
3393 uint32_t _flags_save_STRUCT = ndr->flags;
3394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3395 if (ndr_flags & NDR_SCALARS) {
3396 NDR_CHECK(ndr_push_align(ndr, 4));
3397 NDR_CHECK(ndr_push_nbt_browse_opcode(ndr, NDR_SCALARS, r->opcode));
3398 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->payload, r->opcode));
3399 NDR_CHECK(ndr_push_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
3400 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3402 if (ndr_flags & NDR_BUFFERS) {
3404 ndr->flags = _flags_save_STRUCT;
3406 return NDR_ERR_SUCCESS;
3409 _PUBLIC_ enum ndr_err_code ndr_pull_nbt_browse_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_packet *r)
3412 uint32_t _flags_save_STRUCT = ndr->flags;
3413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3414 if (ndr_flags & NDR_SCALARS) {
3415 NDR_CHECK(ndr_pull_align(ndr, 4));
3416 NDR_CHECK(ndr_pull_nbt_browse_opcode(ndr, NDR_SCALARS, &r->opcode));
3417 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->payload, r->opcode));
3418 NDR_CHECK(ndr_pull_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
3419 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3421 if (ndr_flags & NDR_BUFFERS) {
3423 ndr->flags = _flags_save_STRUCT;
3425 return NDR_ERR_SUCCESS;
3428 _PUBLIC_ void ndr_print_nbt_browse_packet(struct ndr_print *ndr, const char *name, const struct nbt_browse_packet *r)
3430 ndr_print_struct(ndr, name, "nbt_browse_packet");
3432 uint32_t _flags_save_STRUCT = ndr->flags;
3433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3434 ndr->depth++;
3435 ndr_print_nbt_browse_opcode(ndr, "opcode", r->opcode);
3436 ndr_print_set_switch_value(ndr, &r->payload, r->opcode);
3437 ndr_print_nbt_browse_payload(ndr, "payload", &r->payload);
3438 ndr->depth--;
3439 ndr->flags = _flags_save_STRUCT;