source: branches/samba-3.5.x/librpc/gen_ndr/ndr_nbt.c

Last change on this file was 734, checked in by Silvan Scherrer, 13 years ago

Samba Server 3.5: update branche to 3.5.14

File size: 130.1 KB
Line 
1/* parser auto-generated by pidl */
2
3#include "includes.h"
4#include "../librpc/gen_ndr/ndr_nbt.h"
5
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"
10static enum ndr_err_code ndr_push_nbt_operation(struct ndr_push *ndr, int ndr_flags, uint16_t r)
11{
12 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13 return NDR_ERR_SUCCESS;
14}
15
16static enum ndr_err_code ndr_pull_nbt_operation(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
17{
18 uint16_t v;
19 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
20 *r = v;
21 return NDR_ERR_SUCCESS;
22}
23
24_PUBLIC_ void ndr_print_nbt_operation(struct ndr_print *ndr, const char *name, uint16_t r)
25{
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--;
37}
38
39static enum ndr_err_code ndr_push_nbt_name_type(struct ndr_push *ndr, int ndr_flags, enum nbt_name_type r)
40{
41 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
42 return NDR_ERR_SUCCESS;
43}
44
45static enum ndr_err_code ndr_pull_nbt_name_type(struct ndr_pull *ndr, int ndr_flags, enum nbt_name_type *r)
46{
47 uint8_t v;
48 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
49 *r = v;
50 return NDR_ERR_SUCCESS;
51}
52
53_PUBLIC_ void ndr_print_nbt_name_type(struct ndr_print *ndr, const char *name, enum nbt_name_type r)
54{
55 const char *val = NULL;
56
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;
66 }
67 ndr_print_enum(ndr, name, "ENUM", val, r);
68}
69
70_PUBLIC_ void ndr_print_nbt_name(struct ndr_print *ndr, const char *name, const struct nbt_name *r)
71{
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--;
78}
79
80_PUBLIC_ enum ndr_err_code ndr_push_nbt_qclass(struct ndr_push *ndr, int ndr_flags, enum nbt_qclass r)
81{
82 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
83 return NDR_ERR_SUCCESS;
84}
85
86_PUBLIC_ enum ndr_err_code ndr_pull_nbt_qclass(struct ndr_pull *ndr, int ndr_flags, enum nbt_qclass *r)
87{
88 uint16_t v;
89 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
90 *r = v;
91 return NDR_ERR_SUCCESS;
92}
93
94_PUBLIC_ void ndr_print_nbt_qclass(struct ndr_print *ndr, const char *name, enum nbt_qclass r)
95{
96 const char *val = NULL;
97
98 switch (r) {
99 case NBT_QCLASS_IP: val = "NBT_QCLASS_IP"; break;
100 }
101 ndr_print_enum(ndr, name, "ENUM", val, r);
102}
103
104_PUBLIC_ enum ndr_err_code ndr_push_nbt_qtype(struct ndr_push *ndr, int ndr_flags, enum nbt_qtype r)
105{
106 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
107 return NDR_ERR_SUCCESS;
108}
109
110_PUBLIC_ enum ndr_err_code ndr_pull_nbt_qtype(struct ndr_pull *ndr, int ndr_flags, enum nbt_qtype *r)
111{
112 uint16_t v;
113 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
114 *r = v;
115 return NDR_ERR_SUCCESS;
116}
117
118_PUBLIC_ void ndr_print_nbt_qtype(struct ndr_print *ndr, const char *name, enum nbt_qtype r)
119{
120 const char *val = NULL;
121
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;
128 }
129 ndr_print_enum(ndr, name, "ENUM", val, r);
130}
131
132static enum ndr_err_code ndr_push_nbt_name_question(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_question *r)
133{
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));
140 }
141 if (ndr_flags & NDR_BUFFERS) {
142 }
143 return NDR_ERR_SUCCESS;
144}
145
146static enum ndr_err_code ndr_pull_nbt_name_question(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_question *r)
147{
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));
154 }
155 if (ndr_flags & NDR_BUFFERS) {
156 }
157 return NDR_ERR_SUCCESS;
158}
159
160_PUBLIC_ void ndr_print_nbt_name_question(struct ndr_print *ndr, const char *name, const struct nbt_name_question *r)
161{
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--;
168}
169
170static enum ndr_err_code ndr_push_nb_flags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
171{
172 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
173 return NDR_ERR_SUCCESS;
174}
175
176static enum ndr_err_code ndr_pull_nb_flags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
177{
178 uint16_t v;
179 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
180 *r = v;
181 return NDR_ERR_SUCCESS;
182}
183
184_PUBLIC_ void ndr_print_nb_flags(struct ndr_print *ndr, const char *name, uint16_t r)
185{
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--;
195}
196
197static enum ndr_err_code ndr_push_nbt_rdata_address(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_address *r)
198{
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));
204 }
205 if (ndr_flags & NDR_BUFFERS) {
206 }
207 return NDR_ERR_SUCCESS;
208}
209
210static enum ndr_err_code ndr_pull_nbt_rdata_address(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_address *r)
211{
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));
217 }
218 if (ndr_flags & NDR_BUFFERS) {
219 }
220 return NDR_ERR_SUCCESS;
221}
222
223_PUBLIC_ void ndr_print_nbt_rdata_address(struct ndr_print *ndr, const char *name, const struct nbt_rdata_address *r)
224{
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--;
230}
231
232static enum ndr_err_code ndr_push_nbt_rdata_netbios(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_netbios *r)
233{
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]));
240 }
241 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
242 }
243 if (ndr_flags & NDR_BUFFERS) {
244 }
245 return NDR_ERR_SUCCESS;
246}
247
248static enum ndr_err_code ndr_pull_nbt_rdata_netbios(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_netbios *r)
249{
250 uint32_t size_addresses_0 = 0;
251 uint32_t cntr_addresses_0;
252 TALLOC_CTX *_mem_save_addresses_0;
253 if (ndr_flags & NDR_SCALARS) {
254 NDR_CHECK(ndr_pull_align(ndr, 4));
255 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
256 size_addresses_0 = r->length / 6;
257 NDR_PULL_ALLOC_N(ndr, r->addresses, size_addresses_0);
258 _mem_save_addresses_0 = NDR_PULL_GET_MEM_CTX(ndr);
259 NDR_PULL_SET_MEM_CTX(ndr, r->addresses, 0);
260 for (cntr_addresses_0 = 0; cntr_addresses_0 < size_addresses_0; cntr_addresses_0++) {
261 NDR_CHECK(ndr_pull_nbt_rdata_address(ndr, NDR_SCALARS, &r->addresses[cntr_addresses_0]));
262 }
263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_0, 0);
264 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
265 }
266 if (ndr_flags & NDR_BUFFERS) {
267 }
268 return NDR_ERR_SUCCESS;
269}
270
271_PUBLIC_ void ndr_print_nbt_rdata_netbios(struct ndr_print *ndr, const char *name, const struct nbt_rdata_netbios *r)
272{
273 uint32_t cntr_addresses_0;
274 ndr_print_struct(ndr, name, "nbt_rdata_netbios");
275 ndr->depth++;
276 ndr_print_uint16(ndr, "length", r->length);
277 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->length / 6);
278 ndr->depth++;
279 for (cntr_addresses_0=0;cntr_addresses_0<r->length / 6;cntr_addresses_0++) {
280 char *idx_0=NULL;
281 if (asprintf(&idx_0, "[%d]", cntr_addresses_0) != -1) {
282 ndr_print_nbt_rdata_address(ndr, "addresses", &r->addresses[cntr_addresses_0]);
283 free(idx_0);
284 }
285 }
286 ndr->depth--;
287 ndr->depth--;
288}
289
290static enum ndr_err_code ndr_push_nbt_statistics(struct ndr_push *ndr, int ndr_flags, const struct nbt_statistics *r)
291{
292 if (ndr_flags & NDR_SCALARS) {
293 NDR_CHECK(ndr_push_align(ndr, 4));
294 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->unit_id, 6));
295 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->jumpers));
296 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->test_result));
297 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version_number));
298 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->period_of_statistics));
299 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_crcs));
300 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_alignment_errors));
301 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_of_collisions));
302 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_send_aborts));
303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_sends));
304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_good_receives));
305 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_retransmits));
306 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_no_resource_conditions));
307 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_free_command_blocks));
308 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_number_command_blocks));
309 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_number_command_blocks));
310 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->number_pending_sessions));
311 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_number_pending_sessions));
312 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_total_sessions_possible));
313 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->session_data_packet_size));
314 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
315 }
316 if (ndr_flags & NDR_BUFFERS) {
317 }
318 return NDR_ERR_SUCCESS;
319}
320
321static enum ndr_err_code ndr_pull_nbt_statistics(struct ndr_pull *ndr, int ndr_flags, struct nbt_statistics *r)
322{
323 uint32_t size_unit_id_0 = 0;
324 if (ndr_flags & NDR_SCALARS) {
325 NDR_CHECK(ndr_pull_align(ndr, 4));
326 size_unit_id_0 = 6;
327 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->unit_id, size_unit_id_0));
328 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->jumpers));
329 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->test_result));
330 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version_number));
331 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->period_of_statistics));
332 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_crcs));
333 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_alignment_errors));
334 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_of_collisions));
335 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_send_aborts));
336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_sends));
337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_good_receives));
338 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_retransmits));
339 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_no_resource_conditions));
340 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_free_command_blocks));
341 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_number_command_blocks));
342 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_number_command_blocks));
343 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->number_pending_sessions));
344 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_number_pending_sessions));
345 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_total_sessions_possible));
346 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->session_data_packet_size));
347 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
348 }
349 if (ndr_flags & NDR_BUFFERS) {
350 }
351 return NDR_ERR_SUCCESS;
352}
353
354_PUBLIC_ void ndr_print_nbt_statistics(struct ndr_print *ndr, const char *name, const struct nbt_statistics *r)
355{
356 ndr_print_struct(ndr, name, "nbt_statistics");
357 ndr->depth++;
358 ndr_print_array_uint8(ndr, "unit_id", r->unit_id, 6);
359 ndr_print_uint8(ndr, "jumpers", r->jumpers);
360 ndr_print_uint8(ndr, "test_result", r->test_result);
361 ndr_print_uint16(ndr, "version_number", r->version_number);
362 ndr_print_uint16(ndr, "period_of_statistics", r->period_of_statistics);
363 ndr_print_uint16(ndr, "number_of_crcs", r->number_of_crcs);
364 ndr_print_uint16(ndr, "number_alignment_errors", r->number_alignment_errors);
365 ndr_print_uint16(ndr, "number_of_collisions", r->number_of_collisions);
366 ndr_print_uint16(ndr, "number_send_aborts", r->number_send_aborts);
367 ndr_print_uint32(ndr, "number_good_sends", r->number_good_sends);
368 ndr_print_uint32(ndr, "number_good_receives", r->number_good_receives);
369 ndr_print_uint16(ndr, "number_retransmits", r->number_retransmits);
370 ndr_print_uint16(ndr, "number_no_resource_conditions", r->number_no_resource_conditions);
371 ndr_print_uint16(ndr, "number_free_command_blocks", r->number_free_command_blocks);
372 ndr_print_uint16(ndr, "total_number_command_blocks", r->total_number_command_blocks);
373 ndr_print_uint16(ndr, "max_total_number_command_blocks", r->max_total_number_command_blocks);
374 ndr_print_uint16(ndr, "number_pending_sessions", r->number_pending_sessions);
375 ndr_print_uint16(ndr, "max_number_pending_sessions", r->max_number_pending_sessions);
376 ndr_print_uint16(ndr, "max_total_sessions_possible", r->max_total_sessions_possible);
377 ndr_print_uint16(ndr, "session_data_packet_size", r->session_data_packet_size);
378 ndr->depth--;
379}
380
381static enum ndr_err_code ndr_push_nbt_status_name(struct ndr_push *ndr, int ndr_flags, const struct nbt_status_name *r)
382{
383 if (ndr_flags & NDR_SCALARS) {
384 NDR_CHECK(ndr_push_align(ndr, 2));
385 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, 15, sizeof(uint8_t), CH_DOS));
386 NDR_CHECK(ndr_push_nbt_name_type(ndr, NDR_SCALARS, r->type));
387 NDR_CHECK(ndr_push_nb_flags(ndr, NDR_SCALARS, r->nb_flags));
388 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
389 }
390 if (ndr_flags & NDR_BUFFERS) {
391 }
392 return NDR_ERR_SUCCESS;
393}
394
395static enum ndr_err_code ndr_pull_nbt_status_name(struct ndr_pull *ndr, int ndr_flags, struct nbt_status_name *r)
396{
397 uint32_t size_name_0 = 0;
398 if (ndr_flags & NDR_SCALARS) {
399 NDR_CHECK(ndr_pull_align(ndr, 2));
400 size_name_0 = 15;
401 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, size_name_0, sizeof(uint8_t), CH_DOS));
402 NDR_CHECK(ndr_pull_nbt_name_type(ndr, NDR_SCALARS, &r->type));
403 NDR_CHECK(ndr_pull_nb_flags(ndr, NDR_SCALARS, &r->nb_flags));
404 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
405 }
406 if (ndr_flags & NDR_BUFFERS) {
407 }
408 return NDR_ERR_SUCCESS;
409}
410
411_PUBLIC_ void ndr_print_nbt_status_name(struct ndr_print *ndr, const char *name, const struct nbt_status_name *r)
412{
413 ndr_print_struct(ndr, name, "nbt_status_name");
414 ndr->depth++;
415 ndr_print_string(ndr, "name", r->name);
416 ndr_print_nbt_name_type(ndr, "type", r->type);
417 ndr_print_nb_flags(ndr, "nb_flags", r->nb_flags);
418 ndr->depth--;
419}
420
421static enum ndr_err_code ndr_push_nbt_rdata_status(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_status *r)
422{
423 uint32_t cntr_names_0;
424 if (ndr_flags & NDR_SCALARS) {
425 NDR_CHECK(ndr_push_align(ndr, 4));
426 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->num_names * 18 + 47));
427 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->num_names));
428 for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
429 NDR_CHECK(ndr_push_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
430 }
431 NDR_CHECK(ndr_push_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
432 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
433 }
434 if (ndr_flags & NDR_BUFFERS) {
435 }
436 return NDR_ERR_SUCCESS;
437}
438
439static enum ndr_err_code ndr_pull_nbt_rdata_status(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_status *r)
440{
441 uint32_t size_names_0 = 0;
442 uint32_t cntr_names_0;
443 TALLOC_CTX *_mem_save_names_0;
444 if (ndr_flags & NDR_SCALARS) {
445 NDR_CHECK(ndr_pull_align(ndr, 4));
446 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
447 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_names));
448 size_names_0 = r->num_names;
449 NDR_PULL_ALLOC_N(ndr, r->names, size_names_0);
450 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
451 NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
452 for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) {
453 NDR_CHECK(ndr_pull_nbt_status_name(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
454 }
455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
456 NDR_CHECK(ndr_pull_nbt_statistics(ndr, NDR_SCALARS, &r->statistics));
457 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
458 }
459 if (ndr_flags & NDR_BUFFERS) {
460 }
461 return NDR_ERR_SUCCESS;
462}
463
464_PUBLIC_ void ndr_print_nbt_rdata_status(struct ndr_print *ndr, const char *name, const struct nbt_rdata_status *r)
465{
466 uint32_t cntr_names_0;
467 ndr_print_struct(ndr, name, "nbt_rdata_status");
468 ndr->depth++;
469 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->num_names * 18 + 47:r->length);
470 ndr_print_uint8(ndr, "num_names", r->num_names);
471 ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->num_names);
472 ndr->depth++;
473 for (cntr_names_0=0;cntr_names_0<r->num_names;cntr_names_0++) {
474 char *idx_0=NULL;
475 if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
476 ndr_print_nbt_status_name(ndr, "names", &r->names[cntr_names_0]);
477 free(idx_0);
478 }
479 }
480 ndr->depth--;
481 ndr_print_nbt_statistics(ndr, "statistics", &r->statistics);
482 ndr->depth--;
483}
484
485static enum ndr_err_code ndr_push_nbt_rdata_data(struct ndr_push *ndr, int ndr_flags, const struct nbt_rdata_data *r)
486{
487 if (ndr_flags & NDR_SCALARS) {
488 NDR_CHECK(ndr_push_align(ndr, 2));
489 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
490 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
491 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
492 }
493 if (ndr_flags & NDR_BUFFERS) {
494 }
495 return NDR_ERR_SUCCESS;
496}
497
498static enum ndr_err_code ndr_pull_nbt_rdata_data(struct ndr_pull *ndr, int ndr_flags, struct nbt_rdata_data *r)
499{
500 uint32_t size_data_0 = 0;
501 if (ndr_flags & NDR_SCALARS) {
502 NDR_CHECK(ndr_pull_align(ndr, 2));
503 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
504 size_data_0 = r->length;
505 NDR_PULL_ALLOC_N(ndr, r->data, size_data_0);
506 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_0));
507 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
508 }
509 if (ndr_flags & NDR_BUFFERS) {
510 }
511 return NDR_ERR_SUCCESS;
512}
513
514_PUBLIC_ void ndr_print_nbt_rdata_data(struct ndr_print *ndr, const char *name, const struct nbt_rdata_data *r)
515{
516 ndr_print_struct(ndr, name, "nbt_rdata_data");
517 ndr->depth++;
518 ndr_print_uint16(ndr, "length", r->length);
519 ndr_print_array_uint8(ndr, "data", r->data, r->length);
520 ndr->depth--;
521}
522
523_PUBLIC_ enum ndr_err_code ndr_push_nbt_rdata(struct ndr_push *ndr, int ndr_flags, const union nbt_rdata *r)
524{
525 if (ndr_flags & NDR_SCALARS) {
526 int level = ndr_push_get_switch_value(ndr, r);
527 NDR_CHECK(ndr_push_union_align(ndr, 4));
528 switch (level) {
529 case NBT_QTYPE_NETBIOS: {
530 NDR_CHECK(ndr_push_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
531 break; }
532
533 case NBT_QTYPE_STATUS: {
534 NDR_CHECK(ndr_push_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
535 break; }
536
537 default: {
538 NDR_CHECK(ndr_push_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
539 break; }
540
541 }
542 }
543 if (ndr_flags & NDR_BUFFERS) {
544 int level = ndr_push_get_switch_value(ndr, r);
545 switch (level) {
546 case NBT_QTYPE_NETBIOS:
547 break;
548
549 case NBT_QTYPE_STATUS:
550 break;
551
552 default:
553 break;
554
555 }
556 }
557 return NDR_ERR_SUCCESS;
558}
559
560_PUBLIC_ enum ndr_err_code ndr_pull_nbt_rdata(struct ndr_pull *ndr, int ndr_flags, union nbt_rdata *r)
561{
562 int level;
563 level = ndr_pull_get_switch_value(ndr, r);
564 if (ndr_flags & NDR_SCALARS) {
565 NDR_CHECK(ndr_pull_union_align(ndr, 4));
566 switch (level) {
567 case NBT_QTYPE_NETBIOS: {
568 NDR_CHECK(ndr_pull_nbt_rdata_netbios(ndr, NDR_SCALARS, &r->netbios));
569 break; }
570
571 case NBT_QTYPE_STATUS: {
572 NDR_CHECK(ndr_pull_nbt_rdata_status(ndr, NDR_SCALARS, &r->status));
573 break; }
574
575 default: {
576 NDR_CHECK(ndr_pull_nbt_rdata_data(ndr, NDR_SCALARS, &r->data));
577 break; }
578
579 }
580 }
581 if (ndr_flags & NDR_BUFFERS) {
582 switch (level) {
583 case NBT_QTYPE_NETBIOS:
584 break;
585
586 case NBT_QTYPE_STATUS:
587 break;
588
589 default:
590 break;
591
592 }
593 }
594 return NDR_ERR_SUCCESS;
595}
596
597_PUBLIC_ void ndr_print_nbt_rdata(struct ndr_print *ndr, const char *name, const union nbt_rdata *r)
598{
599 int level;
600 level = ndr_print_get_switch_value(ndr, r);
601 ndr_print_union(ndr, name, level, "nbt_rdata");
602 switch (level) {
603 case NBT_QTYPE_NETBIOS:
604 ndr_print_nbt_rdata_netbios(ndr, "netbios", &r->netbios);
605 break;
606
607 case NBT_QTYPE_STATUS:
608 ndr_print_nbt_rdata_status(ndr, "status", &r->status);
609 break;
610
611 default:
612 ndr_print_nbt_rdata_data(ndr, "data", &r->data);
613 break;
614
615 }
616}
617
618static enum ndr_err_code ndr_pull_nbt_res_rec(struct ndr_pull *ndr, int ndr_flags, struct nbt_res_rec *r)
619{
620 {
621 uint32_t _flags_save_STRUCT = ndr->flags;
622 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
623 if (ndr_flags & NDR_SCALARS) {
624 NDR_CHECK(ndr_pull_align(ndr, 4));
625 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->name));
626 NDR_CHECK(ndr_pull_nbt_qtype(ndr, NDR_SCALARS, &r->rr_type));
627 NDR_CHECK(ndr_pull_nbt_qclass(ndr, NDR_SCALARS, &r->rr_class));
628 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
629 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->rdata, r->rr_type));
630 NDR_CHECK(ndr_pull_nbt_rdata(ndr, NDR_SCALARS, &r->rdata));
631 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
632 }
633 if (ndr_flags & NDR_BUFFERS) {
634 }
635 ndr->flags = _flags_save_STRUCT;
636 }
637 return NDR_ERR_SUCCESS;
638}
639
640_PUBLIC_ void ndr_print_nbt_res_rec(struct ndr_print *ndr, const char *name, const struct nbt_res_rec *r)
641{
642 ndr_print_struct(ndr, name, "nbt_res_rec");
643 {
644 uint32_t _flags_save_STRUCT = ndr->flags;
645 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
646 ndr->depth++;
647 ndr_print_nbt_name(ndr, "name", &r->name);
648 ndr_print_nbt_qtype(ndr, "rr_type", r->rr_type);
649 ndr_print_nbt_qclass(ndr, "rr_class", r->rr_class);
650 ndr_print_uint32(ndr, "ttl", r->ttl);
651 ndr_print_set_switch_value(ndr, &r->rdata, r->rr_type);
652 ndr_print_nbt_rdata(ndr, "rdata", &r->rdata);
653 ndr->depth--;
654 ndr->flags = _flags_save_STRUCT;
655 }
656}
657
658_PUBLIC_ enum ndr_err_code ndr_push_nbt_name_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_name_packet *r)
659{
660 uint32_t cntr_questions_0;
661 uint32_t cntr_answers_0;
662 uint32_t cntr_nsrecs_0;
663 uint32_t cntr_additional_0;
664 {
665 uint32_t _flags_save_STRUCT = ndr->flags;
666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
667 if (ndr_flags & NDR_SCALARS) {
668 NDR_CHECK(ndr_push_align(ndr, 4));
669 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->name_trn_id));
670 NDR_CHECK(ndr_push_nbt_operation(ndr, NDR_SCALARS, r->operation));
671 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->qdcount));
672 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ancount));
673 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nscount));
674 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->arcount));
675 for (cntr_questions_0 = 0; cntr_questions_0 < r->qdcount; cntr_questions_0++) {
676 NDR_CHECK(ndr_push_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
677 }
678 for (cntr_answers_0 = 0; cntr_answers_0 < r->ancount; cntr_answers_0++) {
679 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
680 }
681 for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < r->nscount; cntr_nsrecs_0++) {
682 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
683 }
684 for (cntr_additional_0 = 0; cntr_additional_0 < r->arcount; cntr_additional_0++) {
685 NDR_CHECK(ndr_push_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
686 }
687 {
688 uint32_t _flags_save_DATA_BLOB = ndr->flags;
689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
690 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->padding));
691 ndr->flags = _flags_save_DATA_BLOB;
692 }
693 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
694 }
695 if (ndr_flags & NDR_BUFFERS) {
696 }
697 ndr->flags = _flags_save_STRUCT;
698 }
699 return NDR_ERR_SUCCESS;
700}
701
702_PUBLIC_ enum ndr_err_code ndr_pull_nbt_name_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_name_packet *r)
703{
704 uint32_t size_questions_0 = 0;
705 uint32_t cntr_questions_0;
706 TALLOC_CTX *_mem_save_questions_0;
707 uint32_t size_answers_0 = 0;
708 uint32_t cntr_answers_0;
709 TALLOC_CTX *_mem_save_answers_0;
710 uint32_t size_nsrecs_0 = 0;
711 uint32_t cntr_nsrecs_0;
712 TALLOC_CTX *_mem_save_nsrecs_0;
713 uint32_t size_additional_0 = 0;
714 uint32_t cntr_additional_0;
715 TALLOC_CTX *_mem_save_additional_0;
716 {
717 uint32_t _flags_save_STRUCT = ndr->flags;
718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
719 if (ndr_flags & NDR_SCALARS) {
720 NDR_CHECK(ndr_pull_align(ndr, 4));
721 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->name_trn_id));
722 NDR_CHECK(ndr_pull_nbt_operation(ndr, NDR_SCALARS, &r->operation));
723 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->qdcount));
724 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ancount));
725 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nscount));
726 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->arcount));
727 size_questions_0 = r->qdcount;
728 NDR_PULL_ALLOC_N(ndr, r->questions, size_questions_0);
729 _mem_save_questions_0 = NDR_PULL_GET_MEM_CTX(ndr);
730 NDR_PULL_SET_MEM_CTX(ndr, r->questions, 0);
731 for (cntr_questions_0 = 0; cntr_questions_0 < size_questions_0; cntr_questions_0++) {
732 NDR_CHECK(ndr_pull_nbt_name_question(ndr, NDR_SCALARS, &r->questions[cntr_questions_0]));
733 }
734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_questions_0, 0);
735 size_answers_0 = r->ancount;
736 NDR_PULL_ALLOC_N(ndr, r->answers, size_answers_0);
737 _mem_save_answers_0 = NDR_PULL_GET_MEM_CTX(ndr);
738 NDR_PULL_SET_MEM_CTX(ndr, r->answers, 0);
739 for (cntr_answers_0 = 0; cntr_answers_0 < size_answers_0; cntr_answers_0++) {
740 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->answers[cntr_answers_0]));
741 }
742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_answers_0, 0);
743 size_nsrecs_0 = r->nscount;
744 NDR_PULL_ALLOC_N(ndr, r->nsrecs, size_nsrecs_0);
745 _mem_save_nsrecs_0 = NDR_PULL_GET_MEM_CTX(ndr);
746 NDR_PULL_SET_MEM_CTX(ndr, r->nsrecs, 0);
747 for (cntr_nsrecs_0 = 0; cntr_nsrecs_0 < size_nsrecs_0; cntr_nsrecs_0++) {
748 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->nsrecs[cntr_nsrecs_0]));
749 }
750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nsrecs_0, 0);
751 size_additional_0 = r->arcount;
752 NDR_PULL_ALLOC_N(ndr, r->additional, size_additional_0);
753 _mem_save_additional_0 = NDR_PULL_GET_MEM_CTX(ndr);
754 NDR_PULL_SET_MEM_CTX(ndr, r->additional, 0);
755 for (cntr_additional_0 = 0; cntr_additional_0 < size_additional_0; cntr_additional_0++) {
756 NDR_CHECK(ndr_pull_nbt_res_rec(ndr, NDR_SCALARS, &r->additional[cntr_additional_0]));
757 }
758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_additional_0, 0);
759 {
760 uint32_t _flags_save_DATA_BLOB = ndr->flags;
761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
762 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->padding));
763 ndr->flags = _flags_save_DATA_BLOB;
764 }
765 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
766 }
767 if (ndr_flags & NDR_BUFFERS) {
768 }
769 ndr->flags = _flags_save_STRUCT;
770 }
771 return NDR_ERR_SUCCESS;
772}
773
774_PUBLIC_ void ndr_print_nbt_name_packet(struct ndr_print *ndr, const char *name, const struct nbt_name_packet *r)
775{
776 uint32_t cntr_questions_0;
777 uint32_t cntr_answers_0;
778 uint32_t cntr_nsrecs_0;
779 uint32_t cntr_additional_0;
780 ndr_print_struct(ndr, name, "nbt_name_packet");
781 {
782 uint32_t _flags_save_STRUCT = ndr->flags;
783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
784 ndr->depth++;
785 ndr_print_uint16(ndr, "name_trn_id", r->name_trn_id);
786 ndr_print_nbt_operation(ndr, "operation", r->operation);
787 ndr_print_uint16(ndr, "qdcount", r->qdcount);
788 ndr_print_uint16(ndr, "ancount", r->ancount);
789 ndr_print_uint16(ndr, "nscount", r->nscount);
790 ndr_print_uint16(ndr, "arcount", r->arcount);
791 ndr->print(ndr, "%s: ARRAY(%d)", "questions", (int)r->qdcount);
792 ndr->depth++;
793 for (cntr_questions_0=0;cntr_questions_0<r->qdcount;cntr_questions_0++) {
794 char *idx_0=NULL;
795 if (asprintf(&idx_0, "[%d]", cntr_questions_0) != -1) {
796 ndr_print_nbt_name_question(ndr, "questions", &r->questions[cntr_questions_0]);
797 free(idx_0);
798 }
799 }
800 ndr->depth--;
801 ndr->print(ndr, "%s: ARRAY(%d)", "answers", (int)r->ancount);
802 ndr->depth++;
803 for (cntr_answers_0=0;cntr_answers_0<r->ancount;cntr_answers_0++) {
804 char *idx_0=NULL;
805 if (asprintf(&idx_0, "[%d]", cntr_answers_0) != -1) {
806 ndr_print_nbt_res_rec(ndr, "answers", &r->answers[cntr_answers_0]);
807 free(idx_0);
808 }
809 }
810 ndr->depth--;
811 ndr->print(ndr, "%s: ARRAY(%d)", "nsrecs", (int)r->nscount);
812 ndr->depth++;
813 for (cntr_nsrecs_0=0;cntr_nsrecs_0<r->nscount;cntr_nsrecs_0++) {
814 char *idx_0=NULL;
815 if (asprintf(&idx_0, "[%d]", cntr_nsrecs_0) != -1) {
816 ndr_print_nbt_res_rec(ndr, "nsrecs", &r->nsrecs[cntr_nsrecs_0]);
817 free(idx_0);
818 }
819 }
820 ndr->depth--;
821 ndr->print(ndr, "%s: ARRAY(%d)", "additional", (int)r->arcount);
822 ndr->depth++;
823 for (cntr_additional_0=0;cntr_additional_0<r->arcount;cntr_additional_0++) {
824 char *idx_0=NULL;
825 if (asprintf(&idx_0, "[%d]", cntr_additional_0) != -1) {
826 ndr_print_nbt_res_rec(ndr, "additional", &r->additional[cntr_additional_0]);
827 free(idx_0);
828 }
829 }
830 ndr->depth--;
831 ndr_print_DATA_BLOB(ndr, "padding", r->padding);
832 ndr->depth--;
833 ndr->flags = _flags_save_STRUCT;
834 }
835}
836
837static enum ndr_err_code ndr_push_dgram_msg_type(struct ndr_push *ndr, int ndr_flags, enum dgram_msg_type r)
838{
839 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
840 return NDR_ERR_SUCCESS;
841}
842
843static enum ndr_err_code ndr_pull_dgram_msg_type(struct ndr_pull *ndr, int ndr_flags, enum dgram_msg_type *r)
844{
845 uint8_t v;
846 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
847 *r = v;
848 return NDR_ERR_SUCCESS;
849}
850
851_PUBLIC_ void ndr_print_dgram_msg_type(struct ndr_print *ndr, const char *name, enum dgram_msg_type r)
852{
853 const char *val = NULL;
854
855 switch (r) {
856 case DGRAM_DIRECT_UNIQUE: val = "DGRAM_DIRECT_UNIQUE"; break;
857 case DGRAM_DIRECT_GROUP: val = "DGRAM_DIRECT_GROUP"; break;
858 case DGRAM_BCAST: val = "DGRAM_BCAST"; break;
859 case DGRAM_ERROR: val = "DGRAM_ERROR"; break;
860 case DGRAM_QUERY: val = "DGRAM_QUERY"; break;
861 case DGRAM_QUERY_POSITIVE: val = "DGRAM_QUERY_POSITIVE"; break;
862 case DGRAM_QUERY_NEGATIVE: val = "DGRAM_QUERY_NEGATIVE"; break;
863 }
864 ndr_print_enum(ndr, name, "ENUM", val, r);
865}
866
867static enum ndr_err_code ndr_push_dgram_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
868{
869 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
870 return NDR_ERR_SUCCESS;
871}
872
873static enum ndr_err_code ndr_pull_dgram_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
874{
875 uint8_t v;
876 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
877 *r = v;
878 return NDR_ERR_SUCCESS;
879}
880
881_PUBLIC_ void ndr_print_dgram_flags(struct ndr_print *ndr, const char *name, uint8_t r)
882{
883 ndr_print_uint8(ndr, name, r);
884 ndr->depth++;
885 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_MORE", DGRAM_FLAG_MORE, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_FIRST", DGRAM_FLAG_FIRST, r);
887 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DGRAM_FLAG_NODE_TYPE", DGRAM_FLAG_NODE_TYPE, r);
888 ndr->depth--;
889}
890
891static enum ndr_err_code ndr_push_smb_command(struct ndr_push *ndr, int ndr_flags, enum smb_command r)
892{
893 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
894 return NDR_ERR_SUCCESS;
895}
896
897static enum ndr_err_code ndr_pull_smb_command(struct ndr_pull *ndr, int ndr_flags, enum smb_command *r)
898{
899 uint8_t v;
900 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
901 *r = v;
902 return NDR_ERR_SUCCESS;
903}
904
905_PUBLIC_ void ndr_print_smb_command(struct ndr_print *ndr, const char *name, enum smb_command r)
906{
907 const char *val = NULL;
908
909 switch (r) {
910 case SMB_TRANSACTION: val = "SMB_TRANSACTION"; break;
911 }
912 ndr_print_enum(ndr, name, "ENUM", val, r);
913}
914
915static enum ndr_err_code ndr_push_smb_trans_body(struct ndr_push *ndr, int ndr_flags, const struct smb_trans_body *r)
916{
917 if (ndr_flags & NDR_SCALARS) {
918 NDR_CHECK(ndr_push_align(ndr, 4));
919 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 17));
920 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_param_count));
921 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->total_data_count));
922 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_param_count));
923 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_data_count));
924 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->max_setup_count));
925 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
926 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->trans_flags));
927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timeout));
928 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
929 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_count));
930 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->param_offset));
931 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_count));
932 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data_offset));
933 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 3));
934 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad2));
935 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opcode));
936 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->priority));
937 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->_class));
938 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen(r->mailslot_name) + 1 + r->data.length));
939 {
940 uint32_t _flags_save_string = ndr->flags;
941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
942 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
943 ndr->flags = _flags_save_string;
944 }
945 {
946 uint32_t _flags_save_DATA_BLOB = ndr->flags;
947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
948 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
949 ndr->flags = _flags_save_DATA_BLOB;
950 }
951 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
952 }
953 if (ndr_flags & NDR_BUFFERS) {
954 }
955 return NDR_ERR_SUCCESS;
956}
957
958static enum ndr_err_code ndr_pull_smb_trans_body(struct ndr_pull *ndr, int ndr_flags, struct smb_trans_body *r)
959{
960 if (ndr_flags & NDR_SCALARS) {
961 NDR_CHECK(ndr_pull_align(ndr, 4));
962 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->wct));
963 if (r->wct < 17 || r->wct > 17) {
964 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
965 }
966 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_param_count));
967 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->total_data_count));
968 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_param_count));
969 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_data_count));
970 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->max_setup_count));
971 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad));
972 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->trans_flags));
973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timeout));
974 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved));
975 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->param_count));
976 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->param_offset));
977 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data_count));
978 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data_offset));
979 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->setup_count));
980 if (r->setup_count < 3 || r->setup_count > 3) {
981 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
982 }
983 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad2));
984 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opcode));
985 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->priority));
986 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->_class));
987 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->byte_count));
988 {
989 uint32_t _flags_save_string = ndr->flags;
990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
991 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
992 ndr->flags = _flags_save_string;
993 }
994 {
995 uint32_t _flags_save_DATA_BLOB = ndr->flags;
996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
997 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
998 ndr->flags = _flags_save_DATA_BLOB;
999 }
1000 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1001 }
1002 if (ndr_flags & NDR_BUFFERS) {
1003 }
1004 return NDR_ERR_SUCCESS;
1005}
1006
1007_PUBLIC_ void ndr_print_smb_trans_body(struct ndr_print *ndr, const char *name, const struct smb_trans_body *r)
1008{
1009 ndr_print_struct(ndr, name, "smb_trans_body");
1010 ndr->depth++;
1011 ndr_print_uint8(ndr, "wct", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?17:r->wct);
1012 ndr_print_uint16(ndr, "total_param_count", r->total_param_count);
1013 ndr_print_uint16(ndr, "total_data_count", r->total_data_count);
1014 ndr_print_uint16(ndr, "max_param_count", r->max_param_count);
1015 ndr_print_uint16(ndr, "max_data_count", r->max_data_count);
1016 ndr_print_uint8(ndr, "max_setup_count", r->max_setup_count);
1017 ndr_print_uint8(ndr, "pad", r->pad);
1018 ndr_print_uint16(ndr, "trans_flags", r->trans_flags);
1019 ndr_print_uint32(ndr, "timeout", r->timeout);
1020 ndr_print_uint16(ndr, "reserved", r->reserved);
1021 ndr_print_uint16(ndr, "param_count", r->param_count);
1022 ndr_print_uint16(ndr, "param_offset", r->param_offset);
1023 ndr_print_uint16(ndr, "data_count", r->data_count);
1024 ndr_print_uint16(ndr, "data_offset", r->data_offset);
1025 ndr_print_uint8(ndr, "setup_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?3:r->setup_count);
1026 ndr_print_uint8(ndr, "pad2", r->pad2);
1027 ndr_print_uint16(ndr, "opcode", r->opcode);
1028 ndr_print_uint16(ndr, "priority", r->priority);
1029 ndr_print_uint16(ndr, "_class", r->_class);
1030 ndr_print_uint16(ndr, "byte_count", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen(r->mailslot_name) + 1 + r->data.length:r->byte_count);
1031 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1032 ndr_print_DATA_BLOB(ndr, "data", r->data);
1033 ndr->depth--;
1034}
1035
1036static enum ndr_err_code ndr_push_smb_body(struct ndr_push *ndr, int ndr_flags, const union smb_body *r)
1037{
1038 if (ndr_flags & NDR_SCALARS) {
1039 int level = ndr_push_get_switch_value(ndr, r);
1040 NDR_CHECK(ndr_push_union_align(ndr, 4));
1041 switch (level) {
1042 case SMB_TRANSACTION: {
1043 NDR_CHECK(ndr_push_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1044 break; }
1045
1046 default:
1047 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1048 }
1049 }
1050 if (ndr_flags & NDR_BUFFERS) {
1051 int level = ndr_push_get_switch_value(ndr, r);
1052 switch (level) {
1053 case SMB_TRANSACTION:
1054 break;
1055
1056 default:
1057 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1058 }
1059 }
1060 return NDR_ERR_SUCCESS;
1061}
1062
1063static enum ndr_err_code ndr_pull_smb_body(struct ndr_pull *ndr, int ndr_flags, union smb_body *r)
1064{
1065 int level;
1066 level = ndr_pull_get_switch_value(ndr, r);
1067 if (ndr_flags & NDR_SCALARS) {
1068 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1069 switch (level) {
1070 case SMB_TRANSACTION: {
1071 NDR_CHECK(ndr_pull_smb_trans_body(ndr, NDR_SCALARS, &r->trans));
1072 break; }
1073
1074 default:
1075 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1076 }
1077 }
1078 if (ndr_flags & NDR_BUFFERS) {
1079 switch (level) {
1080 case SMB_TRANSACTION:
1081 break;
1082
1083 default:
1084 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1085 }
1086 }
1087 return NDR_ERR_SUCCESS;
1088}
1089
1090_PUBLIC_ void ndr_print_smb_body(struct ndr_print *ndr, const char *name, const union smb_body *r)
1091{
1092 int level;
1093 level = ndr_print_get_switch_value(ndr, r);
1094 ndr_print_union(ndr, name, level, "smb_body");
1095 switch (level) {
1096 case SMB_TRANSACTION:
1097 ndr_print_smb_trans_body(ndr, "trans", &r->trans);
1098 break;
1099
1100 default:
1101 ndr_print_bad_level(ndr, name, level);
1102 }
1103}
1104
1105_PUBLIC_ enum ndr_err_code ndr_push_dgram_smb_packet(struct ndr_push *ndr, int ndr_flags, const struct dgram_smb_packet *r)
1106{
1107 {
1108 uint32_t _flags_save_STRUCT = ndr->flags;
1109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1110 if (ndr_flags & NDR_SCALARS) {
1111 NDR_CHECK(ndr_push_align(ndr, 4));
1112 NDR_CHECK(ndr_push_smb_command(ndr, NDR_SCALARS, r->smb_command));
1113 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->err_class));
1114 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pad));
1115 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->err_code));
1116 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->flags));
1117 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->flags2));
1118 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid_high));
1119 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->signature, 8));
1120 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->reserved));
1121 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->tid));
1122 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->pid));
1123 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->vuid));
1124 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->mid));
1125 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->smb_command));
1126 NDR_CHECK(ndr_push_smb_body(ndr, NDR_SCALARS, &r->body));
1127 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1128 }
1129 if (ndr_flags & NDR_BUFFERS) {
1130 }
1131 ndr->flags = _flags_save_STRUCT;
1132 }
1133 return NDR_ERR_SUCCESS;
1134}
1135
1136_PUBLIC_ enum ndr_err_code ndr_pull_dgram_smb_packet(struct ndr_pull *ndr, int ndr_flags, struct dgram_smb_packet *r)
1137{
1138 uint32_t size_signature_0 = 0;
1139 {
1140 uint32_t _flags_save_STRUCT = ndr->flags;
1141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1142 if (ndr_flags & NDR_SCALARS) {
1143 NDR_CHECK(ndr_pull_align(ndr, 4));
1144 NDR_CHECK(ndr_pull_smb_command(ndr, NDR_SCALARS, &r->smb_command));
1145 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->err_class));
1146 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pad));
1147 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->err_code));
1148 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->flags));
1149 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->flags2));
1150 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid_high));
1151 size_signature_0 = 8;
1152 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->signature, size_signature_0));
1153 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->reserved));
1154 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->tid));
1155 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->pid));
1156 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->vuid));
1157 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->mid));
1158 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->smb_command));
1159 NDR_CHECK(ndr_pull_smb_body(ndr, NDR_SCALARS, &r->body));
1160 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1161 }
1162 if (ndr_flags & NDR_BUFFERS) {
1163 }
1164 ndr->flags = _flags_save_STRUCT;
1165 }
1166 return NDR_ERR_SUCCESS;
1167}
1168
1169_PUBLIC_ void ndr_print_dgram_smb_packet(struct ndr_print *ndr, const char *name, const struct dgram_smb_packet *r)
1170{
1171 ndr_print_struct(ndr, name, "dgram_smb_packet");
1172 {
1173 uint32_t _flags_save_STRUCT = ndr->flags;
1174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_LITTLE_ENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1175 ndr->depth++;
1176 ndr_print_smb_command(ndr, "smb_command", r->smb_command);
1177 ndr_print_uint8(ndr, "err_class", r->err_class);
1178 ndr_print_uint8(ndr, "pad", r->pad);
1179 ndr_print_uint16(ndr, "err_code", r->err_code);
1180 ndr_print_uint8(ndr, "flags", r->flags);
1181 ndr_print_uint16(ndr, "flags2", r->flags2);
1182 ndr_print_uint16(ndr, "pid_high", r->pid_high);
1183 ndr_print_array_uint8(ndr, "signature", r->signature, 8);
1184 ndr_print_uint16(ndr, "reserved", r->reserved);
1185 ndr_print_uint16(ndr, "tid", r->tid);
1186 ndr_print_uint16(ndr, "pid", r->pid);
1187 ndr_print_uint16(ndr, "vuid", r->vuid);
1188 ndr_print_uint16(ndr, "mid", r->mid);
1189 ndr_print_set_switch_value(ndr, &r->body, r->smb_command);
1190 ndr_print_smb_body(ndr, "body", &r->body);
1191 ndr->depth--;
1192 ndr->flags = _flags_save_STRUCT;
1193 }
1194}
1195
1196static enum ndr_err_code ndr_push_dgram_message_body(struct ndr_push *ndr, int ndr_flags, const union dgram_message_body *r)
1197{
1198 if (ndr_flags & NDR_SCALARS) {
1199 int level = ndr_push_get_switch_value(ndr, r);
1200 NDR_CHECK(ndr_push_union_align(ndr, 4));
1201 switch (level) {
1202 case DGRAM_SMB: {
1203 NDR_CHECK(ndr_push_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1204 break; }
1205
1206 default:
1207 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1208 }
1209 }
1210 if (ndr_flags & NDR_BUFFERS) {
1211 int level = ndr_push_get_switch_value(ndr, r);
1212 switch (level) {
1213 case DGRAM_SMB:
1214 break;
1215
1216 default:
1217 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1218 }
1219 }
1220 return NDR_ERR_SUCCESS;
1221}
1222
1223static enum ndr_err_code ndr_pull_dgram_message_body(struct ndr_pull *ndr, int ndr_flags, union dgram_message_body *r)
1224{
1225 int level;
1226 level = ndr_pull_get_switch_value(ndr, r);
1227 if (ndr_flags & NDR_SCALARS) {
1228 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1229 switch (level) {
1230 case DGRAM_SMB: {
1231 NDR_CHECK(ndr_pull_dgram_smb_packet(ndr, NDR_SCALARS, &r->smb));
1232 break; }
1233
1234 default:
1235 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1236 }
1237 }
1238 if (ndr_flags & NDR_BUFFERS) {
1239 switch (level) {
1240 case DGRAM_SMB:
1241 break;
1242
1243 default:
1244 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1245 }
1246 }
1247 return NDR_ERR_SUCCESS;
1248}
1249
1250_PUBLIC_ void ndr_print_dgram_message_body(struct ndr_print *ndr, const char *name, const union dgram_message_body *r)
1251{
1252 int level;
1253 level = ndr_print_get_switch_value(ndr, r);
1254 ndr_print_union(ndr, name, level, "dgram_message_body");
1255 switch (level) {
1256 case DGRAM_SMB:
1257 ndr_print_dgram_smb_packet(ndr, "smb", &r->smb);
1258 break;
1259
1260 default:
1261 ndr_print_bad_level(ndr, name, level);
1262 }
1263}
1264
1265static enum ndr_err_code ndr_push_dgram_message(struct ndr_push *ndr, int ndr_flags, const struct dgram_message *r)
1266{
1267 if (ndr_flags & NDR_SCALARS) {
1268 NDR_CHECK(ndr_push_align(ndr, 4));
1269 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1270 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->offset));
1271 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1272 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dgram_body_type));
1274 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->body, r->dgram_body_type));
1275 NDR_CHECK(ndr_push_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1276 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1277 }
1278 if (ndr_flags & NDR_BUFFERS) {
1279 }
1280 return NDR_ERR_SUCCESS;
1281}
1282
1283static enum ndr_err_code ndr_pull_dgram_message(struct ndr_pull *ndr, int ndr_flags, struct dgram_message *r)
1284{
1285 if (ndr_flags & NDR_SCALARS) {
1286 NDR_CHECK(ndr_pull_align(ndr, 4));
1287 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1288 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->offset));
1289 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->source_name));
1290 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dgram_body_type));
1292 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->body, r->dgram_body_type));
1293 NDR_CHECK(ndr_pull_dgram_message_body(ndr, NDR_SCALARS, &r->body));
1294 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1295 }
1296 if (ndr_flags & NDR_BUFFERS) {
1297 }
1298 return NDR_ERR_SUCCESS;
1299}
1300
1301_PUBLIC_ void ndr_print_dgram_message(struct ndr_print *ndr, const char *name, const struct dgram_message *r)
1302{
1303 ndr_print_struct(ndr, name, "dgram_message");
1304 ndr->depth++;
1305 ndr_print_uint16(ndr, "length", r->length);
1306 ndr_print_uint16(ndr, "offset", r->offset);
1307 ndr_print_nbt_name(ndr, "source_name", &r->source_name);
1308 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1309 ndr_print_uint32(ndr, "dgram_body_type", r->dgram_body_type);
1310 ndr_print_set_switch_value(ndr, &r->body, r->dgram_body_type);
1311 ndr_print_dgram_message_body(ndr, "body", &r->body);
1312 ndr->depth--;
1313}
1314
1315static enum ndr_err_code ndr_push_dgram_err_code(struct ndr_push *ndr, int ndr_flags, enum dgram_err_code r)
1316{
1317 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
1318 return NDR_ERR_SUCCESS;
1319}
1320
1321static enum ndr_err_code ndr_pull_dgram_err_code(struct ndr_pull *ndr, int ndr_flags, enum dgram_err_code *r)
1322{
1323 uint8_t v;
1324 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
1325 *r = v;
1326 return NDR_ERR_SUCCESS;
1327}
1328
1329_PUBLIC_ void ndr_print_dgram_err_code(struct ndr_print *ndr, const char *name, enum dgram_err_code r)
1330{
1331 const char *val = NULL;
1332
1333 switch (r) {
1334 case DGRAM_ERROR_NAME_NOT_PRESENT: val = "DGRAM_ERROR_NAME_NOT_PRESENT"; break;
1335 case DGRAM_ERROR_INVALID_SOURCE: val = "DGRAM_ERROR_INVALID_SOURCE"; break;
1336 case DGRAM_ERROR_INVALID_DEST: val = "DGRAM_ERROR_INVALID_DEST"; break;
1337 }
1338 ndr_print_enum(ndr, name, "ENUM", val, r);
1339}
1340
1341static enum ndr_err_code ndr_push_dgram_data(struct ndr_push *ndr, int ndr_flags, const union dgram_data *r)
1342{
1343 if (ndr_flags & NDR_SCALARS) {
1344 int level = ndr_push_get_switch_value(ndr, r);
1345 NDR_CHECK(ndr_push_union_align(ndr, 4));
1346 switch (level) {
1347 case DGRAM_DIRECT_UNIQUE: {
1348 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1349 break; }
1350
1351 case DGRAM_DIRECT_GROUP: {
1352 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1353 break; }
1354
1355 case DGRAM_BCAST: {
1356 NDR_CHECK(ndr_push_dgram_message(ndr, NDR_SCALARS, &r->msg));
1357 break; }
1358
1359 case DGRAM_ERROR: {
1360 NDR_CHECK(ndr_push_dgram_err_code(ndr, NDR_SCALARS, r->error));
1361 break; }
1362
1363 case DGRAM_QUERY: {
1364 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1365 break; }
1366
1367 case DGRAM_QUERY_POSITIVE: {
1368 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1369 break; }
1370
1371 case DGRAM_QUERY_NEGATIVE: {
1372 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1373 break; }
1374
1375 default:
1376 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1377 }
1378 }
1379 if (ndr_flags & NDR_BUFFERS) {
1380 int level = ndr_push_get_switch_value(ndr, r);
1381 switch (level) {
1382 case DGRAM_DIRECT_UNIQUE:
1383 break;
1384
1385 case DGRAM_DIRECT_GROUP:
1386 break;
1387
1388 case DGRAM_BCAST:
1389 break;
1390
1391 case DGRAM_ERROR:
1392 break;
1393
1394 case DGRAM_QUERY:
1395 break;
1396
1397 case DGRAM_QUERY_POSITIVE:
1398 break;
1399
1400 case DGRAM_QUERY_NEGATIVE:
1401 break;
1402
1403 default:
1404 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1405 }
1406 }
1407 return NDR_ERR_SUCCESS;
1408}
1409
1410static enum ndr_err_code ndr_pull_dgram_data(struct ndr_pull *ndr, int ndr_flags, union dgram_data *r)
1411{
1412 int level;
1413 level = ndr_pull_get_switch_value(ndr, r);
1414 if (ndr_flags & NDR_SCALARS) {
1415 NDR_CHECK(ndr_pull_union_align(ndr, 4));
1416 switch (level) {
1417 case DGRAM_DIRECT_UNIQUE: {
1418 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1419 break; }
1420
1421 case DGRAM_DIRECT_GROUP: {
1422 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1423 break; }
1424
1425 case DGRAM_BCAST: {
1426 NDR_CHECK(ndr_pull_dgram_message(ndr, NDR_SCALARS, &r->msg));
1427 break; }
1428
1429 case DGRAM_ERROR: {
1430 NDR_CHECK(ndr_pull_dgram_err_code(ndr, NDR_SCALARS, &r->error));
1431 break; }
1432
1433 case DGRAM_QUERY: {
1434 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1435 break; }
1436
1437 case DGRAM_QUERY_POSITIVE: {
1438 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1439 break; }
1440
1441 case DGRAM_QUERY_NEGATIVE: {
1442 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->dest_name));
1443 break; }
1444
1445 default:
1446 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1447 }
1448 }
1449 if (ndr_flags & NDR_BUFFERS) {
1450 switch (level) {
1451 case DGRAM_DIRECT_UNIQUE:
1452 break;
1453
1454 case DGRAM_DIRECT_GROUP:
1455 break;
1456
1457 case DGRAM_BCAST:
1458 break;
1459
1460 case DGRAM_ERROR:
1461 break;
1462
1463 case DGRAM_QUERY:
1464 break;
1465
1466 case DGRAM_QUERY_POSITIVE:
1467 break;
1468
1469 case DGRAM_QUERY_NEGATIVE:
1470 break;
1471
1472 default:
1473 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1474 }
1475 }
1476 return NDR_ERR_SUCCESS;
1477}
1478
1479_PUBLIC_ void ndr_print_dgram_data(struct ndr_print *ndr, const char *name, const union dgram_data *r)
1480{
1481 int level;
1482 level = ndr_print_get_switch_value(ndr, r);
1483 ndr_print_union(ndr, name, level, "dgram_data");
1484 switch (level) {
1485 case DGRAM_DIRECT_UNIQUE:
1486 ndr_print_dgram_message(ndr, "msg", &r->msg);
1487 break;
1488
1489 case DGRAM_DIRECT_GROUP:
1490 ndr_print_dgram_message(ndr, "msg", &r->msg);
1491 break;
1492
1493 case DGRAM_BCAST:
1494 ndr_print_dgram_message(ndr, "msg", &r->msg);
1495 break;
1496
1497 case DGRAM_ERROR:
1498 ndr_print_dgram_err_code(ndr, "error", r->error);
1499 break;
1500
1501 case DGRAM_QUERY:
1502 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1503 break;
1504
1505 case DGRAM_QUERY_POSITIVE:
1506 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1507 break;
1508
1509 case DGRAM_QUERY_NEGATIVE:
1510 ndr_print_nbt_name(ndr, "dest_name", &r->dest_name);
1511 break;
1512
1513 default:
1514 ndr_print_bad_level(ndr, name, level);
1515 }
1516}
1517
1518_PUBLIC_ enum ndr_err_code ndr_push_nbt_dgram_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_dgram_packet *r)
1519{
1520 {
1521 uint32_t _flags_save_STRUCT = ndr->flags;
1522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1523 if (ndr_flags & NDR_SCALARS) {
1524 NDR_CHECK(ndr_push_align(ndr, 4));
1525 NDR_CHECK(ndr_push_dgram_msg_type(ndr, NDR_SCALARS, r->msg_type));
1526 NDR_CHECK(ndr_push_dgram_flags(ndr, NDR_SCALARS, r->flags));
1527 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->dgram_id));
1528 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->src_addr));
1529 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->src_port));
1530 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->msg_type));
1531 NDR_CHECK(ndr_push_dgram_data(ndr, NDR_SCALARS, &r->data));
1532 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1533 }
1534 if (ndr_flags & NDR_BUFFERS) {
1535 }
1536 ndr->flags = _flags_save_STRUCT;
1537 }
1538 return NDR_ERR_SUCCESS;
1539}
1540
1541_PUBLIC_ enum ndr_err_code ndr_pull_nbt_dgram_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_dgram_packet *r)
1542{
1543 {
1544 uint32_t _flags_save_STRUCT = ndr->flags;
1545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1546 if (ndr_flags & NDR_SCALARS) {
1547 NDR_CHECK(ndr_pull_align(ndr, 4));
1548 NDR_CHECK(ndr_pull_dgram_msg_type(ndr, NDR_SCALARS, &r->msg_type));
1549 NDR_CHECK(ndr_pull_dgram_flags(ndr, NDR_SCALARS, &r->flags));
1550 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dgram_id));
1551 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->src_addr));
1552 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->src_port));
1553 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->msg_type));
1554 NDR_CHECK(ndr_pull_dgram_data(ndr, NDR_SCALARS, &r->data));
1555 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1556 }
1557 if (ndr_flags & NDR_BUFFERS) {
1558 }
1559 ndr->flags = _flags_save_STRUCT;
1560 }
1561 return NDR_ERR_SUCCESS;
1562}
1563
1564_PUBLIC_ void ndr_print_nbt_dgram_packet(struct ndr_print *ndr, const char *name, const struct nbt_dgram_packet *r)
1565{
1566 ndr_print_struct(ndr, name, "nbt_dgram_packet");
1567 {
1568 uint32_t _flags_save_STRUCT = ndr->flags;
1569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN|LIBNDR_FLAG_BIGENDIAN|LIBNDR_PRINT_ARRAY_HEX);
1570 ndr->depth++;
1571 ndr_print_dgram_msg_type(ndr, "msg_type", r->msg_type);
1572 ndr_print_dgram_flags(ndr, "flags", r->flags);
1573 ndr_print_uint16(ndr, "dgram_id", r->dgram_id);
1574 ndr_print_ipv4address(ndr, "src_addr", r->src_addr);
1575 ndr_print_uint16(ndr, "src_port", r->src_port);
1576 ndr_print_set_switch_value(ndr, &r->data, r->msg_type);
1577 ndr_print_dgram_data(ndr, "data", &r->data);
1578 ndr->depth--;
1579 ndr->flags = _flags_save_STRUCT;
1580 }
1581}
1582
1583_PUBLIC_ enum ndr_err_code ndr_push_nbt_sockaddr(struct ndr_push *ndr, int ndr_flags, const struct nbt_sockaddr *r)
1584{
1585 if (ndr_flags & NDR_SCALARS) {
1586 NDR_CHECK(ndr_push_align(ndr, 4));
1587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sockaddr_family));
1588 {
1589 uint32_t _flags_save_ipv4address = ndr->flags;
1590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1591 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
1592 ndr->flags = _flags_save_ipv4address;
1593 }
1594 {
1595 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1597 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
1598 ndr->flags = _flags_save_DATA_BLOB;
1599 }
1600 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1601 }
1602 if (ndr_flags & NDR_BUFFERS) {
1603 }
1604 return NDR_ERR_SUCCESS;
1605}
1606
1607_PUBLIC_ enum ndr_err_code ndr_pull_nbt_sockaddr(struct ndr_pull *ndr, int ndr_flags, struct nbt_sockaddr *r)
1608{
1609 if (ndr_flags & NDR_SCALARS) {
1610 NDR_CHECK(ndr_pull_align(ndr, 4));
1611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sockaddr_family));
1612 {
1613 uint32_t _flags_save_ipv4address = ndr->flags;
1614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
1615 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
1616 ndr->flags = _flags_save_ipv4address;
1617 }
1618 {
1619 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1621 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
1622 ndr->flags = _flags_save_DATA_BLOB;
1623 }
1624 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1625 }
1626 if (ndr_flags & NDR_BUFFERS) {
1627 }
1628 return NDR_ERR_SUCCESS;
1629}
1630
1631_PUBLIC_ void ndr_print_nbt_sockaddr(struct ndr_print *ndr, const char *name, const struct nbt_sockaddr *r)
1632{
1633 ndr_print_struct(ndr, name, "nbt_sockaddr");
1634 ndr->depth++;
1635 ndr_print_uint32(ndr, "sockaddr_family", r->sockaddr_family);
1636 ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
1637 ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
1638 ndr->depth--;
1639}
1640
1641_PUBLIC_ size_t ndr_size_nbt_sockaddr(const struct nbt_sockaddr *r, struct smb_iconv_convenience *ic, int flags)
1642{
1643 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_nbt_sockaddr, ic);
1644}
1645
1646_PUBLIC_ enum ndr_err_code ndr_push_nbt_server_type(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1647{
1648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1649 return NDR_ERR_SUCCESS;
1650}
1651
1652_PUBLIC_ enum ndr_err_code ndr_pull_nbt_server_type(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1653{
1654 uint32_t v;
1655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1656 *r = v;
1657 return NDR_ERR_SUCCESS;
1658}
1659
1660_PUBLIC_ void ndr_print_nbt_server_type(struct ndr_print *ndr, const char *name, uint32_t r)
1661{
1662 ndr_print_uint32(ndr, name, r);
1663 ndr->depth++;
1664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC, r);
1665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC, r);
1666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP, r);
1667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS, r);
1668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC, r);
1669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV, r);
1670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_CLOSEST", NBT_SERVER_CLOSEST, r);
1671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_WRITABLE", NBT_SERVER_WRITABLE, r);
1672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_GOOD_TIMESERV", NBT_SERVER_GOOD_TIMESERV, r);
1673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_NDNC", NBT_SERVER_NDNC, r);
1674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_SELECT_SECRET_DOMAIN_6", NBT_SERVER_SELECT_SECRET_DOMAIN_6, r);
1675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_FULL_SECRET_DOMAIN_6", NBT_SERVER_FULL_SECRET_DOMAIN_6, r);
1676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NBT_SERVER_DNS_FOREST", NBT_SERVER_DNS_FOREST, r);
1677 ndr->depth--;
1678}
1679
1680_PUBLIC_ enum ndr_err_code ndr_push_netlogon_nt_version_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1681{
1682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1683 return NDR_ERR_SUCCESS;
1684}
1685
1686_PUBLIC_ enum ndr_err_code ndr_pull_netlogon_nt_version_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1687{
1688 uint32_t v;
1689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1690 *r = v;
1691 return NDR_ERR_SUCCESS;
1692}
1693
1694_PUBLIC_ void ndr_print_netlogon_nt_version_flags(struct ndr_print *ndr, const char *name, uint32_t r)
1695{
1696 ndr_print_uint32(ndr, name, r);
1697 ndr->depth++;
1698 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_1", NETLOGON_NT_VERSION_1, r);
1699 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5", NETLOGON_NT_VERSION_5, r);
1700 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX", NETLOGON_NT_VERSION_5EX, r);
1701 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX_WITH_IP", NETLOGON_NT_VERSION_5EX_WITH_IP, r);
1702 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE", NETLOGON_NT_VERSION_WITH_CLOSEST_SITE, r);
1703 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_AVIOD_NT4EMUL", NETLOGON_NT_VERSION_AVIOD_NT4EMUL, r);
1704 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_PDC", NETLOGON_NT_VERSION_PDC, r);
1705 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_IP", NETLOGON_NT_VERSION_IP, r);
1706 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_LOCAL", NETLOGON_NT_VERSION_LOCAL, r);
1707 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NT_VERSION_GC", NETLOGON_NT_VERSION_GC, r);
1708 ndr->depth--;
1709}
1710
1711_PUBLIC_ enum ndr_err_code ndr_push_netlogon_command(struct ndr_push *ndr, int ndr_flags, enum netlogon_command r)
1712{
1713 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1714 return NDR_ERR_SUCCESS;
1715}
1716
1717_PUBLIC_ enum ndr_err_code ndr_pull_netlogon_command(struct ndr_pull *ndr, int ndr_flags, enum netlogon_command *r)
1718{
1719 uint16_t v;
1720 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1721 *r = v;
1722 return NDR_ERR_SUCCESS;
1723}
1724
1725_PUBLIC_ void ndr_print_netlogon_command(struct ndr_print *ndr, const char *name, enum netlogon_command r)
1726{
1727 const char *val = NULL;
1728
1729 switch (r) {
1730 case LOGON_PRIMARY_QUERY: val = "LOGON_PRIMARY_QUERY"; break;
1731 case NETLOGON_ANNOUNCE_UAS: val = "NETLOGON_ANNOUNCE_UAS"; break;
1732 case NETLOGON_RESPONSE_FROM_PDC: val = "NETLOGON_RESPONSE_FROM_PDC"; break;
1733 case LOGON_SAM_LOGON_REQUEST: val = "LOGON_SAM_LOGON_REQUEST"; break;
1734 case LOGON_SAM_LOGON_RESPONSE: val = "LOGON_SAM_LOGON_RESPONSE"; break;
1735 case LOGON_SAM_LOGON_PAUSE_RESPONSE: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE"; break;
1736 case LOGON_SAM_LOGON_USER_UNKNOWN: val = "LOGON_SAM_LOGON_USER_UNKNOWN"; break;
1737 case LOGON_SAM_LOGON_RESPONSE_EX: val = "LOGON_SAM_LOGON_RESPONSE_EX"; break;
1738 case LOGON_SAM_LOGON_PAUSE_RESPONSE_EX: val = "LOGON_SAM_LOGON_PAUSE_RESPONSE_EX"; break;
1739 case LOGON_SAM_LOGON_USER_UNKNOWN_EX: val = "LOGON_SAM_LOGON_USER_UNKNOWN_EX"; break;
1740 }
1741 ndr_print_enum(ndr, name, "ENUM", val, r);
1742}
1743
1744_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_REQUEST(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_REQUEST *r)
1745{
1746 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_REQUEST");
1747 ndr->depth++;
1748 ndr_print_uint16(ndr, "request_count", r->request_count);
1749 ndr_print_string(ndr, "computer_name", r->computer_name);
1750 ndr_print_string(ndr, "user_name", r->user_name);
1751 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
1752 ndr_print_samr_AcctFlags(ndr, "acct_control", r->acct_control);
1753 ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);
1754 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
1755 ndr_print_dom_sid0(ndr, "sid", &r->sid);
1756 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1757 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1758 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1759 ndr->depth--;
1760}
1761
1762_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)
1763{
1764 {
1765 uint32_t _flags_save_STRUCT = ndr->flags;
1766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1767 if (ndr_flags & NDR_SCALARS) {
1768 NDR_CHECK(ndr_push_align(ndr, 4));
1769 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1770 {
1771 uint32_t _flags_save_string = ndr->flags;
1772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server));
1774 ndr->flags = _flags_save_string;
1775 }
1776 {
1777 uint32_t _flags_save_string = ndr->flags;
1778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1779 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
1780 ndr->flags = _flags_save_string;
1781 }
1782 {
1783 uint32_t _flags_save_string = ndr->flags;
1784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1785 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
1786 ndr->flags = _flags_save_string;
1787 }
1788 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1789 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1790 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1791 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1792 }
1793 if (ndr_flags & NDR_BUFFERS) {
1794 }
1795 ndr->flags = _flags_save_STRUCT;
1796 }
1797 return NDR_ERR_SUCCESS;
1798}
1799
1800_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)
1801{
1802 {
1803 uint32_t _flags_save_STRUCT = ndr->flags;
1804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1805 if (ndr_flags & NDR_SCALARS) {
1806 NDR_CHECK(ndr_pull_align(ndr, 4));
1807 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
1808 {
1809 uint32_t _flags_save_string = ndr->flags;
1810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server));
1812 ndr->flags = _flags_save_string;
1813 }
1814 {
1815 uint32_t _flags_save_string = ndr->flags;
1816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1817 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
1818 ndr->flags = _flags_save_string;
1819 }
1820 {
1821 uint32_t _flags_save_string = ndr->flags;
1822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1823 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
1824 ndr->flags = _flags_save_string;
1825 }
1826 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
1827 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1828 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1829 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1830 }
1831 if (ndr_flags & NDR_BUFFERS) {
1832 }
1833 ndr->flags = _flags_save_STRUCT;
1834 }
1835 return NDR_ERR_SUCCESS;
1836}
1837
1838_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40 *r)
1839{
1840 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_NT40");
1841 {
1842 uint32_t _flags_save_STRUCT = ndr->flags;
1843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1844 ndr->depth++;
1845 ndr_print_netlogon_command(ndr, "command", r->command);
1846 ndr_print_string(ndr, "server", r->server);
1847 ndr_print_string(ndr, "user_name", r->user_name);
1848 ndr_print_string(ndr, "domain", r->domain);
1849 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1850 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1851 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1852 ndr->depth--;
1853 ndr->flags = _flags_save_STRUCT;
1854 }
1855}
1856
1857_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)
1858{
1859 {
1860 uint32_t _flags_save_STRUCT = ndr->flags;
1861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1862 if (ndr_flags & NDR_SCALARS) {
1863 NDR_CHECK(ndr_push_align(ndr, 4));
1864 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1865 {
1866 uint32_t _flags_save_string = ndr->flags;
1867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1868 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
1869 ndr->flags = _flags_save_string;
1870 }
1871 {
1872 uint32_t _flags_save_string = ndr->flags;
1873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1874 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
1875 ndr->flags = _flags_save_string;
1876 }
1877 {
1878 uint32_t _flags_save_string = ndr->flags;
1879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
1881 ndr->flags = _flags_save_string;
1882 }
1883 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1884 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
1885 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
1886 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
1887 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
1888 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->pdc_ip));
1889 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
1890 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
1891 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
1892 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
1893 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1894 }
1895 if (ndr_flags & NDR_BUFFERS) {
1896 }
1897 ndr->flags = _flags_save_STRUCT;
1898 }
1899 return NDR_ERR_SUCCESS;
1900}
1901
1902_PUBLIC_ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_SAM_LOGON_RESPONSE *r)
1903{
1904 {
1905 uint32_t _flags_save_STRUCT = ndr->flags;
1906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1907 if (ndr_flags & NDR_SCALARS) {
1908 NDR_CHECK(ndr_pull_align(ndr, 4));
1909 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
1910 {
1911 uint32_t _flags_save_string = ndr->flags;
1912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1913 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
1914 ndr->flags = _flags_save_string;
1915 }
1916 {
1917 uint32_t _flags_save_string = ndr->flags;
1918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1919 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
1920 ndr->flags = _flags_save_string;
1921 }
1922 {
1923 uint32_t _flags_save_string = ndr->flags;
1924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1925 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
1926 ndr->flags = _flags_save_string;
1927 }
1928 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1929 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->zero_uuid));
1930 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
1931 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
1932 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
1933 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->pdc_ip));
1934 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
1935 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
1936 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
1937 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
1938 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1939 }
1940 if (ndr_flags & NDR_BUFFERS) {
1941 }
1942 ndr->flags = _flags_save_STRUCT;
1943 }
1944 return NDR_ERR_SUCCESS;
1945}
1946
1947_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE *r)
1948{
1949 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE");
1950 {
1951 uint32_t _flags_save_STRUCT = ndr->flags;
1952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1953 ndr->depth++;
1954 ndr_print_netlogon_command(ndr, "command", r->command);
1955 ndr_print_string(ndr, "pdc_name", r->pdc_name);
1956 ndr_print_string(ndr, "user_name", r->user_name);
1957 ndr_print_string(ndr, "domain_name", r->domain_name);
1958 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
1959 ndr_print_GUID(ndr, "zero_uuid", &r->zero_uuid);
1960 ndr_print_nbt_string(ndr, "forest", r->forest);
1961 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
1962 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
1963 ndr_print_ipv4address(ndr, "pdc_ip", r->pdc_ip);
1964 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
1965 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
1966 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
1967 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
1968 ndr->depth--;
1969 ndr->flags = _flags_save_STRUCT;
1970 }
1971}
1972
1973_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)
1974{
1975 {
1976 uint32_t _flags_save_STRUCT = ndr->flags;
1977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1978 if (ndr_flags & NDR_SCALARS) {
1979 NDR_CHECK(ndr_push_align(ndr, 4));
1980 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
1981 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->sbz));
1982 NDR_CHECK(ndr_push_nbt_server_type(ndr, NDR_SCALARS, r->server_type));
1983 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
1984 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->forest));
1985 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->dns_domain));
1986 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_dns_name));
1987 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->domain));
1988 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->pdc_name));
1989 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->user_name));
1990 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->server_site));
1991 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->client_site));
1992 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1993 {
1994 struct ndr_push *_ndr_sockaddr;
1995 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1996 NDR_CHECK(ndr_push_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
1997 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sockaddr, 0, ndr_size_nbt_sockaddr(&r->sockaddr, ndr->iconv_convenience, ndr->flags)));
1998 }
1999 NDR_CHECK(ndr_push_nbt_string(ndr, NDR_SCALARS, r->next_closest_site));
2000 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
2001 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2002 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2003 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2004 }
2005 if (ndr_flags & NDR_BUFFERS) {
2006 }
2007 ndr->flags = _flags_save_STRUCT;
2008 }
2009 return NDR_ERR_SUCCESS;
2010}
2011
2012_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)
2013{
2014 {
2015 uint32_t _flags_save_STRUCT = ndr->flags;
2016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2017 if (ndr_flags & NDR_SCALARS) {
2018 NDR_CHECK(ndr_pull_align(ndr, 4));
2019 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2020 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->sbz));
2021 NDR_CHECK(ndr_pull_nbt_server_type(ndr, NDR_SCALARS, &r->server_type));
2022 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_uuid));
2023 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->forest));
2024 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->dns_domain));
2025 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_dns_name));
2026 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->domain));
2027 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->pdc_name));
2028 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->user_name));
2029 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->server_site));
2030 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->client_site));
2031 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->sockaddr_size));
2032 {
2033 struct ndr_pull *_ndr_sockaddr;
2034 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sockaddr, 0, r->sockaddr_size));
2035 NDR_CHECK(ndr_pull_nbt_sockaddr(_ndr_sockaddr, NDR_SCALARS, &r->sockaddr));
2036 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sockaddr, 0, r->sockaddr_size));
2037 }
2038 NDR_CHECK(ndr_pull_nbt_string(ndr, NDR_SCALARS, &r->next_closest_site));
2039 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2040 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2041 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2042 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2043 }
2044 if (ndr_flags & NDR_BUFFERS) {
2045 }
2046 ndr->flags = _flags_save_STRUCT;
2047 }
2048 return NDR_ERR_SUCCESS;
2049}
2050
2051_PUBLIC_ void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_print *ndr, const char *name, const struct NETLOGON_SAM_LOGON_RESPONSE_EX *r)
2052{
2053 ndr_print_struct(ndr, name, "NETLOGON_SAM_LOGON_RESPONSE_EX");
2054 {
2055 uint32_t _flags_save_STRUCT = ndr->flags;
2056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2057 ndr->depth++;
2058 ndr_print_netlogon_command(ndr, "command", r->command);
2059 ndr_print_uint16(ndr, "sbz", r->sbz);
2060 ndr_print_nbt_server_type(ndr, "server_type", r->server_type);
2061 ndr_print_GUID(ndr, "domain_uuid", &r->domain_uuid);
2062 ndr_print_nbt_string(ndr, "forest", r->forest);
2063 ndr_print_nbt_string(ndr, "dns_domain", r->dns_domain);
2064 ndr_print_nbt_string(ndr, "pdc_dns_name", r->pdc_dns_name);
2065 ndr_print_nbt_string(ndr, "domain", r->domain);
2066 ndr_print_nbt_string(ndr, "pdc_name", r->pdc_name);
2067 ndr_print_nbt_string(ndr, "user_name", r->user_name);
2068 ndr_print_nbt_string(ndr, "server_site", r->server_site);
2069 ndr_print_nbt_string(ndr, "client_site", r->client_site);
2070 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);
2071 ndr_print_nbt_sockaddr(ndr, "sockaddr", &r->sockaddr);
2072 ndr_print_nbt_string(ndr, "next_closest_site", r->next_closest_site);
2073 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2074 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2075 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2076 ndr->depth--;
2077 ndr->flags = _flags_save_STRUCT;
2078 }
2079}
2080
2081static 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)
2082{
2083 if (ndr_flags & NDR_SCALARS) {
2084 NDR_CHECK(ndr_push_align(ndr, 4));
2085 {
2086 uint32_t _flags_save_string = ndr->flags;
2087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2088 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->computer_name));
2089 ndr->flags = _flags_save_string;
2090 }
2091 {
2092 uint32_t _flags_save_string = ndr->flags;
2093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2094 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mailslot_name));
2095 ndr->flags = _flags_save_string;
2096 }
2097 {
2098 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2100 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2101 ndr->flags = _flags_save_DATA_BLOB;
2102 }
2103 {
2104 uint32_t _flags_save_string = ndr->flags;
2105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2106 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_name));
2107 ndr->flags = _flags_save_string;
2108 }
2109 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
2110 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2111 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2112 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2113 }
2114 if (ndr_flags & NDR_BUFFERS) {
2115 }
2116 return NDR_ERR_SUCCESS;
2117}
2118
2119static 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)
2120{
2121 if (ndr_flags & NDR_SCALARS) {
2122 NDR_CHECK(ndr_pull_align(ndr, 4));
2123 {
2124 uint32_t _flags_save_string = ndr->flags;
2125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2126 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->computer_name));
2127 ndr->flags = _flags_save_string;
2128 }
2129 {
2130 uint32_t _flags_save_string = ndr->flags;
2131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2132 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mailslot_name));
2133 ndr->flags = _flags_save_string;
2134 }
2135 {
2136 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2138 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2139 ndr->flags = _flags_save_DATA_BLOB;
2140 }
2141 {
2142 uint32_t _flags_save_string = ndr->flags;
2143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2144 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_name));
2145 ndr->flags = _flags_save_string;
2146 }
2147 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2148 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2149 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2150 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2151 }
2152 if (ndr_flags & NDR_BUFFERS) {
2153 }
2154 return NDR_ERR_SUCCESS;
2155}
2156
2157_PUBLIC_ void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_query_for_pdc *r)
2158{
2159 ndr_print_struct(ndr, name, "nbt_netlogon_query_for_pdc");
2160 ndr->depth++;
2161 ndr_print_string(ndr, "computer_name", r->computer_name);
2162 ndr_print_string(ndr, "mailslot_name", r->mailslot_name);
2163 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2164 ndr_print_string(ndr, "unicode_name", r->unicode_name);
2165 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2166 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2167 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2168 ndr->depth--;
2169}
2170
2171_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)
2172{
2173 {
2174 uint32_t _flags_save_STRUCT = ndr->flags;
2175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2176 if (ndr_flags & NDR_SCALARS) {
2177 NDR_CHECK(ndr_push_align(ndr, 4));
2178 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
2179 {
2180 uint32_t _flags_save_string = ndr->flags;
2181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2182 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2183 ndr->flags = _flags_save_string;
2184 }
2185 {
2186 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2188 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2189 ndr->flags = _flags_save_DATA_BLOB;
2190 }
2191 {
2192 uint32_t _flags_save_string = ndr->flags;
2193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2194 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
2195 ndr->flags = _flags_save_string;
2196 }
2197 {
2198 uint32_t _flags_save_string = ndr->flags;
2199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2200 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain_name));
2201 ndr->flags = _flags_save_string;
2202 }
2203 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr, NDR_SCALARS, r->nt_version));
2204 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lmnt_token));
2205 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm20_token));
2206 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2207 }
2208 if (ndr_flags & NDR_BUFFERS) {
2209 }
2210 ndr->flags = _flags_save_STRUCT;
2211 }
2212 return NDR_ERR_SUCCESS;
2213}
2214
2215_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)
2216{
2217 {
2218 uint32_t _flags_save_STRUCT = ndr->flags;
2219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2220 if (ndr_flags & NDR_SCALARS) {
2221 NDR_CHECK(ndr_pull_align(ndr, 4));
2222 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2223 {
2224 uint32_t _flags_save_string = ndr->flags;
2225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2226 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2227 ndr->flags = _flags_save_string;
2228 }
2229 {
2230 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2232 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2233 ndr->flags = _flags_save_DATA_BLOB;
2234 }
2235 {
2236 uint32_t _flags_save_string = ndr->flags;
2237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2238 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
2239 ndr->flags = _flags_save_string;
2240 }
2241 {
2242 uint32_t _flags_save_string = ndr->flags;
2243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2244 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain_name));
2245 ndr->flags = _flags_save_string;
2246 }
2247 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr, NDR_SCALARS, &r->nt_version));
2248 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lmnt_token));
2249 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm20_token));
2250 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2251 }
2252 if (ndr_flags & NDR_BUFFERS) {
2253 }
2254 ndr->flags = _flags_save_STRUCT;
2255 }
2256 return NDR_ERR_SUCCESS;
2257}
2258
2259_PUBLIC_ void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_response_from_pdc *r)
2260{
2261 ndr_print_struct(ndr, name, "nbt_netlogon_response_from_pdc");
2262 {
2263 uint32_t _flags_save_STRUCT = ndr->flags;
2264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2265 ndr->depth++;
2266 ndr_print_netlogon_command(ndr, "command", r->command);
2267 ndr_print_string(ndr, "pdc_name", r->pdc_name);
2268 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2269 ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
2270 ndr_print_string(ndr, "domain_name", r->domain_name);
2271 ndr_print_netlogon_nt_version_flags(ndr, "nt_version", r->nt_version);
2272 ndr_print_uint16(ndr, "lmnt_token", r->lmnt_token);
2273 ndr_print_uint16(ndr, "lm20_token", r->lm20_token);
2274 ndr->depth--;
2275 ndr->flags = _flags_save_STRUCT;
2276 }
2277}
2278
2279static enum ndr_err_code ndr_push_nbt_db_change_info(struct ndr_push *ndr, int ndr_flags, const struct nbt_db_change_info *r)
2280{
2281 if (ndr_flags & NDR_SCALARS) {
2282 NDR_CHECK(ndr_push_align(ndr, 8));
2283 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->db_index));
2284 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->serial));
2285 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timestamp));
2286 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2287 }
2288 if (ndr_flags & NDR_BUFFERS) {
2289 }
2290 return NDR_ERR_SUCCESS;
2291}
2292
2293static enum ndr_err_code ndr_pull_nbt_db_change_info(struct ndr_pull *ndr, int ndr_flags, struct nbt_db_change_info *r)
2294{
2295 if (ndr_flags & NDR_SCALARS) {
2296 NDR_CHECK(ndr_pull_align(ndr, 8));
2297 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->db_index));
2298 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->serial));
2299 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timestamp));
2300 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2301 }
2302 if (ndr_flags & NDR_BUFFERS) {
2303 }
2304 return NDR_ERR_SUCCESS;
2305}
2306
2307_PUBLIC_ void ndr_print_nbt_db_change_info(struct ndr_print *ndr, const char *name, const struct nbt_db_change_info *r)
2308{
2309 ndr_print_struct(ndr, name, "nbt_db_change_info");
2310 ndr->depth++;
2311 ndr_print_netr_SamDatabaseID(ndr, "db_index", r->db_index);
2312 ndr_print_hyper(ndr, "serial", r->serial);
2313 ndr_print_NTTIME(ndr, "timestamp", r->timestamp);
2314 ndr->depth--;
2315}
2316
2317static enum ndr_err_code ndr_push_NETLOGON_DB_CHANGE(struct ndr_push *ndr, int ndr_flags, const struct NETLOGON_DB_CHANGE *r)
2318{
2319 uint32_t cntr_dbchange_0;
2320 if (ndr_flags & NDR_SCALARS) {
2321 NDR_CHECK(ndr_push_align(ndr, 8));
2322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_lo));
2323 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pulse));
2325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->random));
2326 {
2327 uint32_t _flags_save_string = ndr->flags;
2328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->pdc_name));
2330 ndr->flags = _flags_save_string;
2331 }
2332 {
2333 uint32_t _flags_save_string = ndr->flags;
2334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2335 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->domain));
2336 ndr->flags = _flags_save_string;
2337 }
2338 {
2339 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2341 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
2342 ndr->flags = _flags_save_DATA_BLOB;
2343 }
2344 {
2345 uint32_t _flags_save_string = ndr->flags;
2346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2347 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_pdc_name));
2348 ndr->flags = _flags_save_string;
2349 }
2350 {
2351 uint32_t _flags_save_string = ndr->flags;
2352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2353 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->unicode_domain));
2354 ndr->flags = _flags_save_string;
2355 }
2356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->db_count));
2357 for (cntr_dbchange_0 = 0; cntr_dbchange_0 < r->db_count; cntr_dbchange_0++) {
2358 NDR_CHECK(ndr_push_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2359 }
2360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2361 {
2362 struct ndr_push *_ndr_sid;
2363 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2364 NDR_CHECK(ndr_push_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));
2365 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sid, 0, ndr_size_dom_sid0(&r->sid, ndr->flags)));
2366 }
2367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->message_format_version));
2368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->message_token));
2369 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2370 }
2371 if (ndr_flags & NDR_BUFFERS) {
2372 }
2373 return NDR_ERR_SUCCESS;
2374}
2375
2376static enum ndr_err_code ndr_pull_NETLOGON_DB_CHANGE(struct ndr_pull *ndr, int ndr_flags, struct NETLOGON_DB_CHANGE *r)
2377{
2378 uint32_t size_dbchange_0 = 0;
2379 uint32_t cntr_dbchange_0;
2380 TALLOC_CTX *_mem_save_dbchange_0;
2381 if (ndr_flags & NDR_SCALARS) {
2382 NDR_CHECK(ndr_pull_align(ndr, 8));
2383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_lo));
2384 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pulse));
2386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->random));
2387 {
2388 uint32_t _flags_save_string = ndr->flags;
2389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2390 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->pdc_name));
2391 ndr->flags = _flags_save_string;
2392 }
2393 {
2394 uint32_t _flags_save_string = ndr->flags;
2395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2396 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->domain));
2397 ndr->flags = _flags_save_string;
2398 }
2399 {
2400 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN2);
2402 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
2403 ndr->flags = _flags_save_DATA_BLOB;
2404 }
2405 {
2406 uint32_t _flags_save_string = ndr->flags;
2407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2408 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_pdc_name));
2409 ndr->flags = _flags_save_string;
2410 }
2411 {
2412 uint32_t _flags_save_string = ndr->flags;
2413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2414 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->unicode_domain));
2415 ndr->flags = _flags_save_string;
2416 }
2417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->db_count));
2418 size_dbchange_0 = r->db_count;
2419 NDR_PULL_ALLOC_N(ndr, r->dbchange, size_dbchange_0);
2420 _mem_save_dbchange_0 = NDR_PULL_GET_MEM_CTX(ndr);
2421 NDR_PULL_SET_MEM_CTX(ndr, r->dbchange, 0);
2422 for (cntr_dbchange_0 = 0; cntr_dbchange_0 < size_dbchange_0; cntr_dbchange_0++) {
2423 NDR_CHECK(ndr_pull_nbt_db_change_info(ndr, NDR_SCALARS, &r->dbchange[cntr_dbchange_0]));
2424 }
2425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dbchange_0, 0);
2426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sid_size));
2427 {
2428 struct ndr_pull *_ndr_sid;
2429 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sid, 0, r->sid_size));
2430 NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid, NDR_SCALARS|NDR_BUFFERS, &r->sid));
2431 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sid, 0, r->sid_size));
2432 }
2433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->message_format_version));
2434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->message_token));
2435 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2436 }
2437 if (ndr_flags & NDR_BUFFERS) {
2438 }
2439 return NDR_ERR_SUCCESS;
2440}
2441
2442_PUBLIC_ void ndr_print_NETLOGON_DB_CHANGE(struct ndr_print *ndr, const char *name, const struct NETLOGON_DB_CHANGE *r)
2443{
2444 uint32_t cntr_dbchange_0;
2445 ndr_print_struct(ndr, name, "NETLOGON_DB_CHANGE");
2446 ndr->depth++;
2447 ndr_print_uint32(ndr, "serial_lo", r->serial_lo);
2448 ndr_print_time_t(ndr, "timestamp", r->timestamp);
2449 ndr_print_uint32(ndr, "pulse", r->pulse);
2450 ndr_print_uint32(ndr, "random", r->random);
2451 ndr_print_string(ndr, "pdc_name", r->pdc_name);
2452 ndr_print_string(ndr, "domain", r->domain);
2453 ndr_print_DATA_BLOB(ndr, "_pad", r->_pad);
2454 ndr_print_string(ndr, "unicode_pdc_name", r->unicode_pdc_name);
2455 ndr_print_string(ndr, "unicode_domain", r->unicode_domain);
2456 ndr_print_uint32(ndr, "db_count", r->db_count);
2457 ndr->print(ndr, "%s: ARRAY(%d)", "dbchange", (int)r->db_count);
2458 ndr->depth++;
2459 for (cntr_dbchange_0=0;cntr_dbchange_0<r->db_count;cntr_dbchange_0++) {
2460 char *idx_0=NULL;
2461 if (asprintf(&idx_0, "[%d]", cntr_dbchange_0) != -1) {
2462 ndr_print_nbt_db_change_info(ndr, "dbchange", &r->dbchange[cntr_dbchange_0]);
2463 free(idx_0);
2464 }
2465 }
2466 ndr->depth--;
2467 ndr_print_uint32(ndr, "sid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid0(&r->sid, ndr->flags):r->sid_size);
2468 ndr_print_dom_sid0(ndr, "sid", &r->sid);
2469 ndr_print_uint32(ndr, "message_format_version", r->message_format_version);
2470 ndr_print_uint32(ndr, "message_token", r->message_token);
2471 ndr->depth--;
2472}
2473
2474static enum ndr_err_code ndr_push_nbt_netlogon_request(struct ndr_push *ndr, int ndr_flags, const union nbt_netlogon_request *r)
2475{
2476 if (ndr_flags & NDR_SCALARS) {
2477 int level = ndr_push_get_switch_value(ndr, r);
2478 NDR_CHECK(ndr_push_union_align(ndr, 8));
2479 switch (level) {
2480 case LOGON_SAM_LOGON_REQUEST: {
2481 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
2482 break; }
2483
2484 case LOGON_PRIMARY_QUERY: {
2485 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2486 break; }
2487
2488 case NETLOGON_ANNOUNCE_UAS: {
2489 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
2490 break; }
2491
2492 default:
2493 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2494 }
2495 }
2496 if (ndr_flags & NDR_BUFFERS) {
2497 int level = ndr_push_get_switch_value(ndr, r);
2498 switch (level) {
2499 case LOGON_SAM_LOGON_REQUEST:
2500 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
2501 break;
2502
2503 case LOGON_PRIMARY_QUERY:
2504 break;
2505
2506 case NETLOGON_ANNOUNCE_UAS:
2507 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
2508 break;
2509
2510 default:
2511 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2512 }
2513 }
2514 return NDR_ERR_SUCCESS;
2515}
2516
2517static enum ndr_err_code ndr_pull_nbt_netlogon_request(struct ndr_pull *ndr, int ndr_flags, union nbt_netlogon_request *r)
2518{
2519 int level;
2520 level = ndr_pull_get_switch_value(ndr, r);
2521 if (ndr_flags & NDR_SCALARS) {
2522 NDR_CHECK(ndr_pull_union_align(ndr, 8));
2523 switch (level) {
2524 case LOGON_SAM_LOGON_REQUEST: {
2525 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_SCALARS, &r->logon));
2526 break; }
2527
2528 case LOGON_PRIMARY_QUERY: {
2529 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr, NDR_SCALARS, &r->pdc));
2530 break; }
2531
2532 case NETLOGON_ANNOUNCE_UAS: {
2533 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_SCALARS, &r->uas));
2534 break; }
2535
2536 default:
2537 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2538 }
2539 }
2540 if (ndr_flags & NDR_BUFFERS) {
2541 switch (level) {
2542 case LOGON_SAM_LOGON_REQUEST:
2543 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr, NDR_BUFFERS, &r->logon));
2544 break;
2545
2546 case LOGON_PRIMARY_QUERY:
2547 break;
2548
2549 case NETLOGON_ANNOUNCE_UAS:
2550 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr, NDR_BUFFERS, &r->uas));
2551 break;
2552
2553 default:
2554 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
2555 }
2556 }
2557 return NDR_ERR_SUCCESS;
2558}
2559
2560_PUBLIC_ void ndr_print_nbt_netlogon_request(struct ndr_print *ndr, const char *name, const union nbt_netlogon_request *r)
2561{
2562 int level;
2563 level = ndr_print_get_switch_value(ndr, r);
2564 ndr_print_union(ndr, name, level, "nbt_netlogon_request");
2565 switch (level) {
2566 case LOGON_SAM_LOGON_REQUEST:
2567 ndr_print_NETLOGON_SAM_LOGON_REQUEST(ndr, "logon", &r->logon);
2568 break;
2569
2570 case LOGON_PRIMARY_QUERY:
2571 ndr_print_nbt_netlogon_query_for_pdc(ndr, "pdc", &r->pdc);
2572 break;
2573
2574 case NETLOGON_ANNOUNCE_UAS:
2575 ndr_print_NETLOGON_DB_CHANGE(ndr, "uas", &r->uas);
2576 break;
2577
2578 default:
2579 ndr_print_bad_level(ndr, name, level);
2580 }
2581}
2582
2583_PUBLIC_ enum ndr_err_code ndr_push_nbt_netlogon_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_netlogon_packet *r)
2584{
2585 {
2586 uint32_t _flags_save_STRUCT = ndr->flags;
2587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2588 if (ndr_flags & NDR_SCALARS) {
2589 NDR_CHECK(ndr_push_align(ndr, 8));
2590 NDR_CHECK(ndr_push_netlogon_command(ndr, NDR_SCALARS, r->command));
2591 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->req, r->command));
2592 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2593 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2594 }
2595 if (ndr_flags & NDR_BUFFERS) {
2596 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2597 }
2598 ndr->flags = _flags_save_STRUCT;
2599 }
2600 return NDR_ERR_SUCCESS;
2601}
2602
2603_PUBLIC_ enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_netlogon_packet *r)
2604{
2605 {
2606 uint32_t _flags_save_STRUCT = ndr->flags;
2607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2608 if (ndr_flags & NDR_SCALARS) {
2609 NDR_CHECK(ndr_pull_align(ndr, 8));
2610 NDR_CHECK(ndr_pull_netlogon_command(ndr, NDR_SCALARS, &r->command));
2611 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->req, r->command));
2612 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_SCALARS, &r->req));
2613 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2614 }
2615 if (ndr_flags & NDR_BUFFERS) {
2616 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr, NDR_BUFFERS, &r->req));
2617 }
2618 ndr->flags = _flags_save_STRUCT;
2619 }
2620 return NDR_ERR_SUCCESS;
2621}
2622
2623_PUBLIC_ void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r)
2624{
2625 ndr_print_struct(ndr, name, "nbt_netlogon_packet");
2626 {
2627 uint32_t _flags_save_STRUCT = ndr->flags;
2628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
2629 ndr->depth++;
2630 ndr_print_netlogon_command(ndr, "command", r->command);
2631 ndr_print_set_switch_value(ndr, &r->req, r->command);
2632 ndr_print_nbt_netlogon_request(ndr, "req", &r->req);
2633 ndr->depth--;
2634 ndr->flags = _flags_save_STRUCT;
2635 }
2636}
2637
2638static enum ndr_err_code ndr_push_nbt_browse_opcode(struct ndr_push *ndr, int ndr_flags, enum nbt_browse_opcode r)
2639{
2640 NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
2641 return NDR_ERR_SUCCESS;
2642}
2643
2644static enum ndr_err_code ndr_pull_nbt_browse_opcode(struct ndr_pull *ndr, int ndr_flags, enum nbt_browse_opcode *r)
2645{
2646 uint8_t v;
2647 NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
2648 *r = v;
2649 return NDR_ERR_SUCCESS;
2650}
2651
2652_PUBLIC_ void ndr_print_nbt_browse_opcode(struct ndr_print *ndr, const char *name, enum nbt_browse_opcode r)
2653{
2654 const char *val = NULL;
2655
2656 switch (r) {
2657 case HostAnnouncement: val = "HostAnnouncement"; break;
2658 case AnnouncementRequest: val = "AnnouncementRequest"; break;
2659 case Election: val = "Election"; break;
2660 case GetBackupListReq: val = "GetBackupListReq"; break;
2661 case GetBackupListResp: val = "GetBackupListResp"; break;
2662 case BecomeBackup: val = "BecomeBackup"; break;
2663 case DomainAnnouncement: val = "DomainAnnouncement"; break;
2664 case MasterAnnouncement: val = "MasterAnnouncement"; break;
2665 case ResetBrowserState: val = "ResetBrowserState"; break;
2666 case LocalMasterAnnouncement: val = "LocalMasterAnnouncement"; break;
2667 }
2668 ndr_print_enum(ndr, name, "ENUM", val, r);
2669}
2670
2671static enum ndr_err_code ndr_push_nbt_browse_host_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_host_announcement *r)
2672{
2673 if (ndr_flags & NDR_SCALARS) {
2674 NDR_CHECK(ndr_push_align(ndr, 4));
2675 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
2676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
2677 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2678 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
2679 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
2680 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
2681 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
2682 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
2683 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
2684 {
2685 uint32_t _flags_save_string = ndr->flags;
2686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2687 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
2688 ndr->flags = _flags_save_string;
2689 }
2690 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2691 }
2692 if (ndr_flags & NDR_BUFFERS) {
2693 }
2694 return NDR_ERR_SUCCESS;
2695}
2696
2697static enum ndr_err_code ndr_pull_nbt_browse_host_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_host_announcement *r)
2698{
2699 uint32_t size_ServerName_0 = 0;
2700 if (ndr_flags & NDR_SCALARS) {
2701 NDR_CHECK(ndr_pull_align(ndr, 4));
2702 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
2703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
2704 size_ServerName_0 = 16;
2705 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, size_ServerName_0, sizeof(uint8_t), CH_DOS));
2706 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
2707 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
2708 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
2709 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
2710 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
2711 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
2712 {
2713 uint32_t _flags_save_string = ndr->flags;
2714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2715 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
2716 ndr->flags = _flags_save_string;
2717 }
2718 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2719 }
2720 if (ndr_flags & NDR_BUFFERS) {
2721 }
2722 return NDR_ERR_SUCCESS;
2723}
2724
2725_PUBLIC_ void ndr_print_nbt_browse_host_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_host_announcement *r)
2726{
2727 ndr_print_struct(ndr, name, "nbt_browse_host_announcement");
2728 ndr->depth++;
2729 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
2730 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
2731 ndr_print_string(ndr, "ServerName", r->ServerName);
2732 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
2733 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
2734 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
2735 ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
2736 ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
2737 ndr_print_uint16(ndr, "Signature", r->Signature);
2738 ndr_print_string(ndr, "Comment", r->Comment);
2739 ndr->depth--;
2740}
2741
2742static enum ndr_err_code ndr_push_nbt_browse_announcement_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_announcement_request *r)
2743{
2744 if (ndr_flags & NDR_SCALARS) {
2745 NDR_CHECK(ndr_push_align(ndr, 4));
2746 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Unused));
2747 {
2748 uint32_t _flags_save_string = ndr->flags;
2749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2750 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ResponseName));
2751 ndr->flags = _flags_save_string;
2752 }
2753 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2754 }
2755 if (ndr_flags & NDR_BUFFERS) {
2756 }
2757 return NDR_ERR_SUCCESS;
2758}
2759
2760static enum ndr_err_code ndr_pull_nbt_browse_announcement_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_announcement_request *r)
2761{
2762 if (ndr_flags & NDR_SCALARS) {
2763 NDR_CHECK(ndr_pull_align(ndr, 4));
2764 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Unused));
2765 {
2766 uint32_t _flags_save_string = ndr->flags;
2767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2768 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ResponseName));
2769 ndr->flags = _flags_save_string;
2770 }
2771 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2772 }
2773 if (ndr_flags & NDR_BUFFERS) {
2774 }
2775 return NDR_ERR_SUCCESS;
2776}
2777
2778_PUBLIC_ void ndr_print_nbt_browse_announcement_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_announcement_request *r)
2779{
2780 ndr_print_struct(ndr, name, "nbt_browse_announcement_request");
2781 ndr->depth++;
2782 ndr_print_uint8(ndr, "Unused", r->Unused);
2783 ndr_print_string(ndr, "ResponseName", r->ResponseName);
2784 ndr->depth--;
2785}
2786
2787static enum ndr_err_code ndr_push_nbt_browse_election_request(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_election_request *r)
2788{
2789 if (ndr_flags & NDR_SCALARS) {
2790 NDR_CHECK(ndr_push_align(ndr, 4));
2791 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Version));
2792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Criteria));
2793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->UpTime));
2794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved));
2795 {
2796 uint32_t _flags_save_string = ndr->flags;
2797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2798 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ServerName));
2799 ndr->flags = _flags_save_string;
2800 }
2801 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2802 }
2803 if (ndr_flags & NDR_BUFFERS) {
2804 }
2805 return NDR_ERR_SUCCESS;
2806}
2807
2808static enum ndr_err_code ndr_pull_nbt_browse_election_request(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_election_request *r)
2809{
2810 if (ndr_flags & NDR_SCALARS) {
2811 NDR_CHECK(ndr_pull_align(ndr, 4));
2812 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Version));
2813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Criteria));
2814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->UpTime));
2815 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved));
2816 {
2817 uint32_t _flags_save_string = ndr->flags;
2818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2819 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
2820 ndr->flags = _flags_save_string;
2821 }
2822 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2823 }
2824 if (ndr_flags & NDR_BUFFERS) {
2825 }
2826 return NDR_ERR_SUCCESS;
2827}
2828
2829_PUBLIC_ void ndr_print_nbt_browse_election_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_election_request *r)
2830{
2831 ndr_print_struct(ndr, name, "nbt_browse_election_request");
2832 ndr->depth++;
2833 ndr_print_uint8(ndr, "Version", r->Version);
2834 ndr_print_uint32(ndr, "Criteria", r->Criteria);
2835 ndr_print_uint32(ndr, "UpTime", r->UpTime);
2836 ndr_print_uint32(ndr, "Reserved", r->Reserved);
2837 ndr_print_string(ndr, "ServerName", r->ServerName);
2838 ndr->depth--;
2839}
2840
2841static 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)
2842{
2843 if (ndr_flags & NDR_SCALARS) {
2844 NDR_CHECK(ndr_push_align(ndr, 4));
2845 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->ReqCount));
2846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
2847 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2848 }
2849 if (ndr_flags & NDR_BUFFERS) {
2850 }
2851 return NDR_ERR_SUCCESS;
2852}
2853
2854static 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)
2855{
2856 if (ndr_flags & NDR_SCALARS) {
2857 NDR_CHECK(ndr_pull_align(ndr, 4));
2858 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->ReqCount));
2859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
2860 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2861 }
2862 if (ndr_flags & NDR_BUFFERS) {
2863 }
2864 return NDR_ERR_SUCCESS;
2865}
2866
2867_PUBLIC_ void ndr_print_nbt_browse_backup_list_request(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_request *r)
2868{
2869 ndr_print_struct(ndr, name, "nbt_browse_backup_list_request");
2870 ndr->depth++;
2871 ndr_print_uint8(ndr, "ReqCount", r->ReqCount);
2872 ndr_print_uint32(ndr, "Token", r->Token);
2873 ndr->depth--;
2874}
2875
2876static 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)
2877{
2878 uint32_t cntr_BackupServerList_0;
2879 if (ndr_flags & NDR_SCALARS) {
2880 NDR_CHECK(ndr_push_align(ndr, 4));
2881 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BackupCount));
2882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Token));
2883 for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < r->BackupCount; cntr_BackupServerList_0++) {
2884 NDR_CHECK(ndr_push_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
2885 }
2886 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2887 }
2888 if (ndr_flags & NDR_BUFFERS) {
2889 }
2890 return NDR_ERR_SUCCESS;
2891}
2892
2893static 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)
2894{
2895 uint32_t size_BackupServerList_0 = 0;
2896 uint32_t cntr_BackupServerList_0;
2897 TALLOC_CTX *_mem_save_BackupServerList_0;
2898 if (ndr_flags & NDR_SCALARS) {
2899 NDR_CHECK(ndr_pull_align(ndr, 4));
2900 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BackupCount));
2901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Token));
2902 size_BackupServerList_0 = r->BackupCount;
2903 NDR_PULL_ALLOC_N(ndr, r->BackupServerList, size_BackupServerList_0);
2904 _mem_save_BackupServerList_0 = NDR_PULL_GET_MEM_CTX(ndr);
2905 NDR_PULL_SET_MEM_CTX(ndr, r->BackupServerList, 0);
2906 for (cntr_BackupServerList_0 = 0; cntr_BackupServerList_0 < size_BackupServerList_0; cntr_BackupServerList_0++) {
2907 NDR_CHECK(ndr_pull_nbt_name(ndr, NDR_SCALARS, &r->BackupServerList[cntr_BackupServerList_0]));
2908 }
2909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_BackupServerList_0, 0);
2910 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2911 }
2912 if (ndr_flags & NDR_BUFFERS) {
2913 }
2914 return NDR_ERR_SUCCESS;
2915}
2916
2917_PUBLIC_ void ndr_print_nbt_browse_backup_list_response(struct ndr_print *ndr, const char *name, const struct nbt_browse_backup_list_response *r)
2918{
2919 uint32_t cntr_BackupServerList_0;
2920 ndr_print_struct(ndr, name, "nbt_browse_backup_list_response");
2921 ndr->depth++;
2922 ndr_print_uint8(ndr, "BackupCount", r->BackupCount);
2923 ndr_print_uint32(ndr, "Token", r->Token);
2924 ndr->print(ndr, "%s: ARRAY(%d)", "BackupServerList", (int)r->BackupCount);
2925 ndr->depth++;
2926 for (cntr_BackupServerList_0=0;cntr_BackupServerList_0<r->BackupCount;cntr_BackupServerList_0++) {
2927 char *idx_0=NULL;
2928 if (asprintf(&idx_0, "[%d]", cntr_BackupServerList_0) != -1) {
2929 ndr_print_nbt_name(ndr, "BackupServerList", &r->BackupServerList[cntr_BackupServerList_0]);
2930 free(idx_0);
2931 }
2932 }
2933 ndr->depth--;
2934 ndr->depth--;
2935}
2936
2937static enum ndr_err_code ndr_push_nbt_browse_become_backup(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_become_backup *r)
2938{
2939 if (ndr_flags & NDR_SCALARS) {
2940 NDR_CHECK(ndr_push_align(ndr, 4));
2941 {
2942 uint32_t _flags_save_string = ndr->flags;
2943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2944 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->BrowserName));
2945 ndr->flags = _flags_save_string;
2946 }
2947 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2948 }
2949 if (ndr_flags & NDR_BUFFERS) {
2950 }
2951 return NDR_ERR_SUCCESS;
2952}
2953
2954static enum ndr_err_code ndr_pull_nbt_browse_become_backup(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_become_backup *r)
2955{
2956 if (ndr_flags & NDR_SCALARS) {
2957 NDR_CHECK(ndr_pull_align(ndr, 4));
2958 {
2959 uint32_t _flags_save_string = ndr->flags;
2960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2961 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->BrowserName));
2962 ndr->flags = _flags_save_string;
2963 }
2964 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2965 }
2966 if (ndr_flags & NDR_BUFFERS) {
2967 }
2968 return NDR_ERR_SUCCESS;
2969}
2970
2971_PUBLIC_ void ndr_print_nbt_browse_become_backup(struct ndr_print *ndr, const char *name, const struct nbt_browse_become_backup *r)
2972{
2973 ndr_print_struct(ndr, name, "nbt_browse_become_backup");
2974 ndr->depth++;
2975 ndr_print_string(ndr, "BrowserName", r->BrowserName);
2976 ndr->depth--;
2977}
2978
2979static enum ndr_err_code ndr_push_nbt_browse_domain_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_domain_announcement *r)
2980{
2981 if (ndr_flags & NDR_SCALARS) {
2982 NDR_CHECK(ndr_push_align(ndr, 4));
2983 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
2984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
2985 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
2986 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
2987 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
2988 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
2989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MysteriousField));
2990 {
2991 uint32_t _flags_save_string = ndr->flags;
2992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
2993 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
2994 ndr->flags = _flags_save_string;
2995 }
2996 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2997 }
2998 if (ndr_flags & NDR_BUFFERS) {
2999 }
3000 return NDR_ERR_SUCCESS;
3001}
3002
3003static enum ndr_err_code ndr_pull_nbt_browse_domain_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_domain_announcement *r)
3004{
3005 uint32_t size_ServerName_0 = 0;
3006 if (ndr_flags & NDR_SCALARS) {
3007 NDR_CHECK(ndr_pull_align(ndr, 4));
3008 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
3009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
3010 size_ServerName_0 = 16;
3011 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, size_ServerName_0, sizeof(uint8_t), CH_DOS));
3012 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
3013 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
3014 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
3015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MysteriousField));
3016 {
3017 uint32_t _flags_save_string = ndr->flags;
3018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3019 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
3020 ndr->flags = _flags_save_string;
3021 }
3022 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3023 }
3024 if (ndr_flags & NDR_BUFFERS) {
3025 }
3026 return NDR_ERR_SUCCESS;
3027}
3028
3029_PUBLIC_ void ndr_print_nbt_browse_domain_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_domain_announcement *r)
3030{
3031 ndr_print_struct(ndr, name, "nbt_browse_domain_announcement");
3032 ndr->depth++;
3033 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3034 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3035 ndr_print_string(ndr, "ServerName", r->ServerName);
3036 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3037 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3038 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3039 ndr_print_uint32(ndr, "MysteriousField", r->MysteriousField);
3040 ndr_print_string(ndr, "Comment", r->Comment);
3041 ndr->depth--;
3042}
3043
3044static enum ndr_err_code ndr_push_nbt_browse_master_announcement(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_master_announcement *r)
3045{
3046 if (ndr_flags & NDR_SCALARS) {
3047 NDR_CHECK(ndr_push_align(ndr, 4));
3048 {
3049 uint32_t _flags_save_string = ndr->flags;
3050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3051 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->ServerName));
3052 ndr->flags = _flags_save_string;
3053 }
3054 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3055 }
3056 if (ndr_flags & NDR_BUFFERS) {
3057 }
3058 return NDR_ERR_SUCCESS;
3059}
3060
3061static enum ndr_err_code ndr_pull_nbt_browse_master_announcement(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_master_announcement *r)
3062{
3063 if (ndr_flags & NDR_SCALARS) {
3064 NDR_CHECK(ndr_pull_align(ndr, 4));
3065 {
3066 uint32_t _flags_save_string = ndr->flags;
3067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3068 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->ServerName));
3069 ndr->flags = _flags_save_string;
3070 }
3071 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3072 }
3073 if (ndr_flags & NDR_BUFFERS) {
3074 }
3075 return NDR_ERR_SUCCESS;
3076}
3077
3078_PUBLIC_ void ndr_print_nbt_browse_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_master_announcement *r)
3079{
3080 ndr_print_struct(ndr, name, "nbt_browse_master_announcement");
3081 ndr->depth++;
3082 ndr_print_string(ndr, "ServerName", r->ServerName);
3083 ndr->depth--;
3084}
3085
3086static enum ndr_err_code ndr_push_nbt_browse_reset_state(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_reset_state *r)
3087{
3088 if (ndr_flags & NDR_SCALARS) {
3089 NDR_CHECK(ndr_push_align(ndr, 1));
3090 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Command));
3091 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3092 }
3093 if (ndr_flags & NDR_BUFFERS) {
3094 }
3095 return NDR_ERR_SUCCESS;
3096}
3097
3098static enum ndr_err_code ndr_pull_nbt_browse_reset_state(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_reset_state *r)
3099{
3100 if (ndr_flags & NDR_SCALARS) {
3101 NDR_CHECK(ndr_pull_align(ndr, 1));
3102 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Command));
3103 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3104 }
3105 if (ndr_flags & NDR_BUFFERS) {
3106 }
3107 return NDR_ERR_SUCCESS;
3108}
3109
3110_PUBLIC_ void ndr_print_nbt_browse_reset_state(struct ndr_print *ndr, const char *name, const struct nbt_browse_reset_state *r)
3111{
3112 ndr_print_struct(ndr, name, "nbt_browse_reset_state");
3113 ndr->depth++;
3114 ndr_print_uint8(ndr, "Command", r->Command);
3115 ndr->depth--;
3116}
3117
3118static 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)
3119{
3120 if (ndr_flags & NDR_SCALARS) {
3121 NDR_CHECK(ndr_push_align(ndr, 4));
3122 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->UpdateCount));
3123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Periodicity));
3124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ServerName, 16, sizeof(uint8_t), CH_DOS));
3125 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMajor));
3126 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->OSMinor));
3127 NDR_CHECK(ndr_push_svcctl_ServerType(ndr, NDR_SCALARS, r->ServerType));
3128 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMajorVer));
3129 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->BroMinorVer));
3130 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Signature));
3131 {
3132 uint32_t _flags_save_string = ndr->flags;
3133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3134 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->Comment));
3135 ndr->flags = _flags_save_string;
3136 }
3137 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3138 }
3139 if (ndr_flags & NDR_BUFFERS) {
3140 }
3141 return NDR_ERR_SUCCESS;
3142}
3143
3144static 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)
3145{
3146 uint32_t size_ServerName_0 = 0;
3147 if (ndr_flags & NDR_SCALARS) {
3148 NDR_CHECK(ndr_pull_align(ndr, 4));
3149 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->UpdateCount));
3150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Periodicity));
3151 size_ServerName_0 = 16;
3152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ServerName, size_ServerName_0, sizeof(uint8_t), CH_DOS));
3153 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMajor));
3154 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->OSMinor));
3155 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr, NDR_SCALARS, &r->ServerType));
3156 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMajorVer));
3157 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->BroMinorVer));
3158 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Signature));
3159 {
3160 uint32_t _flags_save_string = ndr->flags;
3161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
3162 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->Comment));
3163 ndr->flags = _flags_save_string;
3164 }
3165 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3166 }
3167 if (ndr_flags & NDR_BUFFERS) {
3168 }
3169 return NDR_ERR_SUCCESS;
3170}
3171
3172_PUBLIC_ void ndr_print_nbt_browse_local_master_announcement(struct ndr_print *ndr, const char *name, const struct nbt_browse_local_master_announcement *r)
3173{
3174 ndr_print_struct(ndr, name, "nbt_browse_local_master_announcement");
3175 ndr->depth++;
3176 ndr_print_uint8(ndr, "UpdateCount", r->UpdateCount);
3177 ndr_print_uint32(ndr, "Periodicity", r->Periodicity);
3178 ndr_print_string(ndr, "ServerName", r->ServerName);
3179 ndr_print_uint8(ndr, "OSMajor", r->OSMajor);
3180 ndr_print_uint8(ndr, "OSMinor", r->OSMinor);
3181 ndr_print_svcctl_ServerType(ndr, "ServerType", r->ServerType);
3182 ndr_print_uint8(ndr, "BroMajorVer", r->BroMajorVer);
3183 ndr_print_uint8(ndr, "BroMinorVer", r->BroMinorVer);
3184 ndr_print_uint16(ndr, "Signature", r->Signature);
3185 ndr_print_string(ndr, "Comment", r->Comment);
3186 ndr->depth--;
3187}
3188
3189static enum ndr_err_code ndr_push_nbt_browse_payload(struct ndr_push *ndr, int ndr_flags, const union nbt_browse_payload *r)
3190{
3191 if (ndr_flags & NDR_SCALARS) {
3192 int level = ndr_push_get_switch_value(ndr, r);
3193 NDR_CHECK(ndr_push_union_align(ndr, 4));
3194 switch (level) {
3195 case HostAnnouncement: {
3196 NDR_CHECK(ndr_push_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3197 break; }
3198
3199 case AnnouncementRequest: {
3200 NDR_CHECK(ndr_push_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3201 break; }
3202
3203 case Election: {
3204 NDR_CHECK(ndr_push_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3205 break; }
3206
3207 case GetBackupListReq: {
3208 NDR_CHECK(ndr_push_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3209 break; }
3210
3211 case GetBackupListResp: {
3212 NDR_CHECK(ndr_push_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3213 break; }
3214
3215 case BecomeBackup: {
3216 NDR_CHECK(ndr_push_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3217 break; }
3218
3219 case DomainAnnouncement: {
3220 NDR_CHECK(ndr_push_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3221 break; }
3222
3223 case MasterAnnouncement: {
3224 NDR_CHECK(ndr_push_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3225 break; }
3226
3227 case ResetBrowserState: {
3228 NDR_CHECK(ndr_push_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3229 break; }
3230
3231 case LocalMasterAnnouncement: {
3232 NDR_CHECK(ndr_push_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3233 break; }
3234
3235 default:
3236 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3237 }
3238 }
3239 if (ndr_flags & NDR_BUFFERS) {
3240 int level = ndr_push_get_switch_value(ndr, r);
3241 switch (level) {
3242 case HostAnnouncement:
3243 break;
3244
3245 case AnnouncementRequest:
3246 break;
3247
3248 case Election:
3249 break;
3250
3251 case GetBackupListReq:
3252 break;
3253
3254 case GetBackupListResp:
3255 break;
3256
3257 case BecomeBackup:
3258 break;
3259
3260 case DomainAnnouncement:
3261 break;
3262
3263 case MasterAnnouncement:
3264 break;
3265
3266 case ResetBrowserState:
3267 break;
3268
3269 case LocalMasterAnnouncement:
3270 break;
3271
3272 default:
3273 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3274 }
3275 }
3276 return NDR_ERR_SUCCESS;
3277}
3278
3279static enum ndr_err_code ndr_pull_nbt_browse_payload(struct ndr_pull *ndr, int ndr_flags, union nbt_browse_payload *r)
3280{
3281 int level;
3282 level = ndr_pull_get_switch_value(ndr, r);
3283 if (ndr_flags & NDR_SCALARS) {
3284 NDR_CHECK(ndr_pull_union_align(ndr, 4));
3285 switch (level) {
3286 case HostAnnouncement: {
3287 NDR_CHECK(ndr_pull_nbt_browse_host_announcement(ndr, NDR_SCALARS, &r->host_annoucement));
3288 break; }
3289
3290 case AnnouncementRequest: {
3291 NDR_CHECK(ndr_pull_nbt_browse_announcement_request(ndr, NDR_SCALARS, &r->announcement_request));
3292 break; }
3293
3294 case Election: {
3295 NDR_CHECK(ndr_pull_nbt_browse_election_request(ndr, NDR_SCALARS, &r->election_request));
3296 break; }
3297
3298 case GetBackupListReq: {
3299 NDR_CHECK(ndr_pull_nbt_browse_backup_list_request(ndr, NDR_SCALARS, &r->backup_list_request));
3300 break; }
3301
3302 case GetBackupListResp: {
3303 NDR_CHECK(ndr_pull_nbt_browse_backup_list_response(ndr, NDR_SCALARS, &r->backup_list_response));
3304 break; }
3305
3306 case BecomeBackup: {
3307 NDR_CHECK(ndr_pull_nbt_browse_become_backup(ndr, NDR_SCALARS, &r->become_backup));
3308 break; }
3309
3310 case DomainAnnouncement: {
3311 NDR_CHECK(ndr_pull_nbt_browse_domain_announcement(ndr, NDR_SCALARS, &r->domain_announcement));
3312 break; }
3313
3314 case MasterAnnouncement: {
3315 NDR_CHECK(ndr_pull_nbt_browse_master_announcement(ndr, NDR_SCALARS, &r->master_announcement));
3316 break; }
3317
3318 case ResetBrowserState: {
3319 NDR_CHECK(ndr_pull_nbt_browse_reset_state(ndr, NDR_SCALARS, &r->reset_browser_state));
3320 break; }
3321
3322 case LocalMasterAnnouncement: {
3323 NDR_CHECK(ndr_pull_nbt_browse_local_master_announcement(ndr, NDR_SCALARS, &r->local_master_announcement));
3324 break; }
3325
3326 default:
3327 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3328 }
3329 }
3330 if (ndr_flags & NDR_BUFFERS) {
3331 switch (level) {
3332 case HostAnnouncement:
3333 break;
3334
3335 case AnnouncementRequest:
3336 break;
3337
3338 case Election:
3339 break;
3340
3341 case GetBackupListReq:
3342 break;
3343
3344 case GetBackupListResp:
3345 break;
3346
3347 case BecomeBackup:
3348 break;
3349
3350 case DomainAnnouncement:
3351 break;
3352
3353 case MasterAnnouncement:
3354 break;
3355
3356 case ResetBrowserState:
3357 break;
3358
3359 case LocalMasterAnnouncement:
3360 break;
3361
3362 default:
3363 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3364 }
3365 }
3366 return NDR_ERR_SUCCESS;
3367}
3368
3369_PUBLIC_ void ndr_print_nbt_browse_payload(struct ndr_print *ndr, const char *name, const union nbt_browse_payload *r)
3370{
3371 int level;
3372 level = ndr_print_get_switch_value(ndr, r);
3373 ndr_print_union(ndr, name, level, "nbt_browse_payload");
3374 switch (level) {
3375 case HostAnnouncement:
3376 ndr_print_nbt_browse_host_announcement(ndr, "host_annoucement", &r->host_annoucement);
3377 break;
3378
3379 case AnnouncementRequest:
3380 ndr_print_nbt_browse_announcement_request(ndr, "announcement_request", &r->announcement_request);
3381 break;
3382
3383 case Election:
3384 ndr_print_nbt_browse_election_request(ndr, "election_request", &r->election_request);
3385 break;
3386
3387 case GetBackupListReq:
3388 ndr_print_nbt_browse_backup_list_request(ndr, "backup_list_request", &r->backup_list_request);
3389 break;
3390
3391 case GetBackupListResp:
3392 ndr_print_nbt_browse_backup_list_response(ndr, "backup_list_response", &r->backup_list_response);
3393 break;
3394
3395 case BecomeBackup:
3396 ndr_print_nbt_browse_become_backup(ndr, "become_backup", &r->become_backup);
3397 break;
3398
3399 case DomainAnnouncement:
3400 ndr_print_nbt_browse_domain_announcement(ndr, "domain_announcement", &r->domain_announcement);
3401 break;
3402
3403 case MasterAnnouncement:
3404 ndr_print_nbt_browse_master_announcement(ndr, "master_announcement", &r->master_announcement);
3405 break;
3406
3407 case ResetBrowserState:
3408 ndr_print_nbt_browse_reset_state(ndr, "reset_browser_state", &r->reset_browser_state);
3409 break;
3410
3411 case LocalMasterAnnouncement:
3412 ndr_print_nbt_browse_local_master_announcement(ndr, "local_master_announcement", &r->local_master_announcement);
3413 break;
3414
3415 default:
3416 ndr_print_bad_level(ndr, name, level);
3417 }
3418}
3419
3420_PUBLIC_ enum ndr_err_code ndr_push_nbt_browse_packet(struct ndr_push *ndr, int ndr_flags, const struct nbt_browse_packet *r)
3421{
3422 {
3423 uint32_t _flags_save_STRUCT = ndr->flags;
3424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3425 if (ndr_flags & NDR_SCALARS) {
3426 NDR_CHECK(ndr_push_align(ndr, 4));
3427 NDR_CHECK(ndr_push_nbt_browse_opcode(ndr, NDR_SCALARS, r->opcode));
3428 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->payload, r->opcode));
3429 NDR_CHECK(ndr_push_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
3430 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3431 }
3432 if (ndr_flags & NDR_BUFFERS) {
3433 }
3434 ndr->flags = _flags_save_STRUCT;
3435 }
3436 return NDR_ERR_SUCCESS;
3437}
3438
3439_PUBLIC_ enum ndr_err_code ndr_pull_nbt_browse_packet(struct ndr_pull *ndr, int ndr_flags, struct nbt_browse_packet *r)
3440{
3441 {
3442 uint32_t _flags_save_STRUCT = ndr->flags;
3443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3444 if (ndr_flags & NDR_SCALARS) {
3445 NDR_CHECK(ndr_pull_align(ndr, 4));
3446 NDR_CHECK(ndr_pull_nbt_browse_opcode(ndr, NDR_SCALARS, &r->opcode));
3447 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->payload, r->opcode));
3448 NDR_CHECK(ndr_pull_nbt_browse_payload(ndr, NDR_SCALARS, &r->payload));
3449 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3450 }
3451 if (ndr_flags & NDR_BUFFERS) {
3452 }
3453 ndr->flags = _flags_save_STRUCT;
3454 }
3455 return NDR_ERR_SUCCESS;
3456}
3457
3458_PUBLIC_ void ndr_print_nbt_browse_packet(struct ndr_print *ndr, const char *name, const struct nbt_browse_packet *r)
3459{
3460 ndr_print_struct(ndr, name, "nbt_browse_packet");
3461 {
3462 uint32_t _flags_save_STRUCT = ndr->flags;
3463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
3464 ndr->depth++;
3465 ndr_print_nbt_browse_opcode(ndr, "opcode", r->opcode);
3466 ndr_print_set_switch_value(ndr, &r->payload, r->opcode);
3467 ndr_print_nbt_browse_payload(ndr, "payload", &r->payload);
3468 ndr->depth--;
3469 ndr->flags = _flags_save_STRUCT;
3470 }
3471}
3472
Note: See TracBrowser for help on using the repository browser.