1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_nbt.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_svcctl.h"
9 #include "librpc/gen_ndr/ndr_samr.h"
10 static enum ndr_err_code
ndr_push_nbt_operation(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
12 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
13 return NDR_ERR_SUCCESS
;
16 static enum ndr_err_code
ndr_pull_nbt_operation(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
19 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
21 return NDR_ERR_SUCCESS
;
24 _PUBLIC_
void ndr_print_nbt_operation(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
26 ndr_print_uint16(ndr
, name
, r
);
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
);
39 static enum ndr_err_code
ndr_push_nbt_name_type(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_name_type r
)
41 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
42 return NDR_ERR_SUCCESS
;
45 static enum ndr_err_code
ndr_pull_nbt_name_type(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_name_type
*r
)
48 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
50 return NDR_ERR_SUCCESS
;
53 _PUBLIC_
void ndr_print_nbt_name_type(struct ndr_print
*ndr
, const char *name
, enum nbt_name_type r
)
55 const char *val
= NULL
;
58 case NBT_NAME_CLIENT
: val
= "NBT_NAME_CLIENT"; break;
59 case NBT_NAME_MS
: val
= "NBT_NAME_MS"; break;
60 case NBT_NAME_USER
: val
= "NBT_NAME_USER"; break;
61 case NBT_NAME_SERVER
: val
= "NBT_NAME_SERVER"; break;
62 case NBT_NAME_PDC
: val
= "NBT_NAME_PDC"; break;
63 case NBT_NAME_LOGON
: val
= "NBT_NAME_LOGON"; break;
64 case NBT_NAME_MASTER
: val
= "NBT_NAME_MASTER"; break;
65 case NBT_NAME_BROWSER
: val
= "NBT_NAME_BROWSER"; break;
67 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
70 _PUBLIC_
void ndr_print_nbt_name(struct ndr_print
*ndr
, const char *name
, const struct nbt_name
*r
)
72 ndr_print_struct(ndr
, name
, "nbt_name");
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
);
80 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_qclass(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_qclass r
)
82 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
83 return NDR_ERR_SUCCESS
;
86 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_qclass(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_qclass
*r
)
89 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
91 return NDR_ERR_SUCCESS
;
94 _PUBLIC_
void ndr_print_nbt_qclass(struct ndr_print
*ndr
, const char *name
, enum nbt_qclass r
)
96 const char *val
= NULL
;
99 case NBT_QCLASS_IP
: val
= "NBT_QCLASS_IP"; break;
101 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
104 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_qtype(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_qtype r
)
106 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
107 return NDR_ERR_SUCCESS
;
110 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_qtype(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_qtype
*r
)
113 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
115 return NDR_ERR_SUCCESS
;
118 _PUBLIC_
void ndr_print_nbt_qtype(struct ndr_print
*ndr
, const char *name
, enum nbt_qtype r
)
120 const char *val
= NULL
;
123 case NBT_QTYPE_ADDRESS
: val
= "NBT_QTYPE_ADDRESS"; break;
124 case NBT_QTYPE_NAMESERVICE
: val
= "NBT_QTYPE_NAMESERVICE"; break;
125 case NBT_QTYPE_NULL
: val
= "NBT_QTYPE_NULL"; break;
126 case NBT_QTYPE_NETBIOS
: val
= "NBT_QTYPE_NETBIOS"; break;
127 case NBT_QTYPE_STATUS
: val
= "NBT_QTYPE_STATUS"; break;
129 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
132 static enum ndr_err_code
ndr_push_nbt_name_question(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_name_question
*r
)
134 if (ndr_flags
& NDR_SCALARS
) {
135 NDR_CHECK(ndr_push_align(ndr
, 4));
136 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
137 NDR_CHECK(ndr_push_nbt_qtype(ndr
, NDR_SCALARS
, r
->question_type
));
138 NDR_CHECK(ndr_push_nbt_qclass(ndr
, NDR_SCALARS
, r
->question_class
));
139 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
141 if (ndr_flags
& NDR_BUFFERS
) {
143 return NDR_ERR_SUCCESS
;
146 static enum ndr_err_code
ndr_pull_nbt_name_question(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_name_question
*r
)
148 if (ndr_flags
& NDR_SCALARS
) {
149 NDR_CHECK(ndr_pull_align(ndr
, 4));
150 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
151 NDR_CHECK(ndr_pull_nbt_qtype(ndr
, NDR_SCALARS
, &r
->question_type
));
152 NDR_CHECK(ndr_pull_nbt_qclass(ndr
, NDR_SCALARS
, &r
->question_class
));
153 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
155 if (ndr_flags
& NDR_BUFFERS
) {
157 return NDR_ERR_SUCCESS
;
160 _PUBLIC_
void ndr_print_nbt_name_question(struct ndr_print
*ndr
, const char *name
, const struct nbt_name_question
*r
)
162 ndr_print_struct(ndr
, name
, "nbt_name_question");
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
);
170 static enum ndr_err_code
ndr_push_nb_flags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
172 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
173 return NDR_ERR_SUCCESS
;
176 static enum ndr_err_code
ndr_pull_nb_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
179 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
181 return NDR_ERR_SUCCESS
;
184 _PUBLIC_
void ndr_print_nb_flags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
186 ndr_print_uint16(ndr
, name
, r
);
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
);
197 static enum ndr_err_code
ndr_push_nbt_rdata_address(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_address
*r
)
199 if (ndr_flags
& NDR_SCALARS
) {
200 NDR_CHECK(ndr_push_align(ndr
, 4));
201 NDR_CHECK(ndr_push_nb_flags(ndr
, NDR_SCALARS
, r
->nb_flags
));
202 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->ipaddr
));
203 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
205 if (ndr_flags
& NDR_BUFFERS
) {
207 return NDR_ERR_SUCCESS
;
210 static enum ndr_err_code
ndr_pull_nbt_rdata_address(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_address
*r
)
212 if (ndr_flags
& NDR_SCALARS
) {
213 NDR_CHECK(ndr_pull_align(ndr
, 4));
214 NDR_CHECK(ndr_pull_nb_flags(ndr
, NDR_SCALARS
, &r
->nb_flags
));
215 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->ipaddr
));
216 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
218 if (ndr_flags
& NDR_BUFFERS
) {
220 return NDR_ERR_SUCCESS
;
223 _PUBLIC_
void ndr_print_nbt_rdata_address(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_address
*r
)
225 ndr_print_struct(ndr
, name
, "nbt_rdata_address");
227 ndr_print_nb_flags(ndr
, "nb_flags", r
->nb_flags
);
228 ndr_print_ipv4address(ndr
, "ipaddr", r
->ipaddr
);
232 static enum ndr_err_code
ndr_push_nbt_rdata_netbios(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_netbios
*r
)
234 uint32_t cntr_addresses_0
;
235 if (ndr_flags
& NDR_SCALARS
) {
236 NDR_CHECK(ndr_push_align(ndr
, 4));
237 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
238 for (cntr_addresses_0
= 0; cntr_addresses_0
< r
->length
/ 6; cntr_addresses_0
++) {
239 NDR_CHECK(ndr_push_nbt_rdata_address(ndr
, NDR_SCALARS
, &r
->addresses
[cntr_addresses_0
]));
241 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
243 if (ndr_flags
& NDR_BUFFERS
) {
245 return NDR_ERR_SUCCESS
;
248 static enum ndr_err_code
ndr_pull_nbt_rdata_netbios(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_netbios
*r
)
250 uint32_t 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
]));
263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_0
, 0);
264 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
266 if (ndr_flags
& NDR_BUFFERS
) {
268 return NDR_ERR_SUCCESS
;
271 _PUBLIC_
void ndr_print_nbt_rdata_netbios(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_netbios
*r
)
273 uint32_t cntr_addresses_0
;
274 ndr_print_struct(ndr
, name
, "nbt_rdata_netbios");
276 ndr_print_uint16(ndr
, "length", r
->length
);
277 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->length
/ 6);
279 for (cntr_addresses_0
=0;cntr_addresses_0
<r
->length
/ 6;cntr_addresses_0
++) {
281 if (asprintf(&idx_0
, "[%d]", cntr_addresses_0
) != -1) {
282 ndr_print_nbt_rdata_address(ndr
, "addresses", &r
->addresses
[cntr_addresses_0
]);
290 static enum ndr_err_code
ndr_push_nbt_statistics(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_statistics
*r
)
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));
316 if (ndr_flags
& NDR_BUFFERS
) {
318 return NDR_ERR_SUCCESS
;
321 static enum ndr_err_code
ndr_pull_nbt_statistics(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_statistics
*r
)
323 uint32_t size_unit_id_0
= 0;
324 if (ndr_flags
& NDR_SCALARS
) {
325 NDR_CHECK(ndr_pull_align(ndr
, 4));
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));
349 if (ndr_flags
& NDR_BUFFERS
) {
351 return NDR_ERR_SUCCESS
;
354 _PUBLIC_
void ndr_print_nbt_statistics(struct ndr_print
*ndr
, const char *name
, const struct nbt_statistics
*r
)
356 ndr_print_struct(ndr
, name
, "nbt_statistics");
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
);
381 static enum ndr_err_code
ndr_push_nbt_status_name(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_status_name
*r
)
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));
390 if (ndr_flags
& NDR_BUFFERS
) {
392 return NDR_ERR_SUCCESS
;
395 static enum ndr_err_code
ndr_pull_nbt_status_name(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_status_name
*r
)
397 uint32_t size_name_0
= 0;
398 if (ndr_flags
& NDR_SCALARS
) {
399 NDR_CHECK(ndr_pull_align(ndr
, 2));
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));
406 if (ndr_flags
& NDR_BUFFERS
) {
408 return NDR_ERR_SUCCESS
;
411 _PUBLIC_
void ndr_print_nbt_status_name(struct ndr_print
*ndr
, const char *name
, const struct nbt_status_name
*r
)
413 ndr_print_struct(ndr
, name
, "nbt_status_name");
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
);
421 static enum ndr_err_code
ndr_push_nbt_rdata_status(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_status
*r
)
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
]));
431 NDR_CHECK(ndr_push_nbt_statistics(ndr
, NDR_SCALARS
, &r
->statistics
));
432 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
434 if (ndr_flags
& NDR_BUFFERS
) {
436 return NDR_ERR_SUCCESS
;
439 static enum ndr_err_code
ndr_pull_nbt_rdata_status(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_status
*r
)
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
]));
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));
459 if (ndr_flags
& NDR_BUFFERS
) {
461 return NDR_ERR_SUCCESS
;
464 _PUBLIC_
void ndr_print_nbt_rdata_status(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_status
*r
)
466 uint32_t cntr_names_0
;
467 ndr_print_struct(ndr
, name
, "nbt_rdata_status");
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
);
473 for (cntr_names_0
=0;cntr_names_0
<r
->num_names
;cntr_names_0
++) {
475 if (asprintf(&idx_0
, "[%d]", cntr_names_0
) != -1) {
476 ndr_print_nbt_status_name(ndr
, "names", &r
->names
[cntr_names_0
]);
481 ndr_print_nbt_statistics(ndr
, "statistics", &r
->statistics
);
485 static enum ndr_err_code
ndr_push_nbt_rdata_data(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_data
*r
)
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));
493 if (ndr_flags
& NDR_BUFFERS
) {
495 return NDR_ERR_SUCCESS
;
498 static enum ndr_err_code
ndr_pull_nbt_rdata_data(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_data
*r
)
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));
509 if (ndr_flags
& NDR_BUFFERS
) {
511 return NDR_ERR_SUCCESS
;
514 _PUBLIC_
void ndr_print_nbt_rdata_data(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_data
*r
)
516 ndr_print_struct(ndr
, name
, "nbt_rdata_data");
518 ndr_print_uint16(ndr
, "length", r
->length
);
519 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
523 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_rdata(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_rdata
*r
)
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));
529 case NBT_QTYPE_NETBIOS
: {
530 NDR_CHECK(ndr_push_nbt_rdata_netbios(ndr
, NDR_SCALARS
, &r
->netbios
));
533 case NBT_QTYPE_STATUS
: {
534 NDR_CHECK(ndr_push_nbt_rdata_status(ndr
, NDR_SCALARS
, &r
->status
));
538 NDR_CHECK(ndr_push_nbt_rdata_data(ndr
, NDR_SCALARS
, &r
->data
));
543 if (ndr_flags
& NDR_BUFFERS
) {
544 int level
= ndr_push_get_switch_value(ndr
, r
);
546 case NBT_QTYPE_NETBIOS
:
549 case NBT_QTYPE_STATUS
:
557 return NDR_ERR_SUCCESS
;
560 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_rdata(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_rdata
*r
)
563 level
= ndr_pull_get_switch_value(ndr
, r
);
564 if (ndr_flags
& NDR_SCALARS
) {
565 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
567 case NBT_QTYPE_NETBIOS
: {
568 NDR_CHECK(ndr_pull_nbt_rdata_netbios(ndr
, NDR_SCALARS
, &r
->netbios
));
571 case NBT_QTYPE_STATUS
: {
572 NDR_CHECK(ndr_pull_nbt_rdata_status(ndr
, NDR_SCALARS
, &r
->status
));
576 NDR_CHECK(ndr_pull_nbt_rdata_data(ndr
, NDR_SCALARS
, &r
->data
));
581 if (ndr_flags
& NDR_BUFFERS
) {
583 case NBT_QTYPE_NETBIOS
:
586 case NBT_QTYPE_STATUS
:
594 return NDR_ERR_SUCCESS
;
597 _PUBLIC_
void ndr_print_nbt_rdata(struct ndr_print
*ndr
, const char *name
, const union nbt_rdata
*r
)
600 level
= ndr_print_get_switch_value(ndr
, r
);
601 ndr_print_union(ndr
, name
, level
, "nbt_rdata");
603 case NBT_QTYPE_NETBIOS
:
604 ndr_print_nbt_rdata_netbios(ndr
, "netbios", &r
->netbios
);
607 case NBT_QTYPE_STATUS
:
608 ndr_print_nbt_rdata_status(ndr
, "status", &r
->status
);
612 ndr_print_nbt_rdata_data(ndr
, "data", &r
->data
);
618 static enum ndr_err_code
ndr_pull_nbt_res_rec(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_res_rec
*r
)
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));
633 if (ndr_flags
& NDR_BUFFERS
) {
635 ndr
->flags
= _flags_save_STRUCT
;
637 return NDR_ERR_SUCCESS
;
640 _PUBLIC_
void ndr_print_nbt_res_rec(struct ndr_print
*ndr
, const char *name
, const struct nbt_res_rec
*r
)
642 ndr_print_struct(ndr
, name
, "nbt_res_rec");
644 uint32_t _flags_save_STRUCT
= ndr
->flags
;
645 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
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
);
654 ndr
->flags
= _flags_save_STRUCT
;
658 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_name_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_name_packet
*r
)
660 uint32_t cntr_questions_0
;
661 uint32_t cntr_answers_0
;
662 uint32_t cntr_nsrecs_0
;
663 uint32_t cntr_additional_0
;
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
]));
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
]));
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
]));
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
]));
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
;
693 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
695 if (ndr_flags
& NDR_BUFFERS
) {
697 ndr
->flags
= _flags_save_STRUCT
;
699 return NDR_ERR_SUCCESS
;
702 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_name_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_name_packet
*r
)
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
;
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
]));
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
]));
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
]));
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
]));
758 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_additional_0
, 0);
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
;
765 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
767 if (ndr_flags
& NDR_BUFFERS
) {
769 ndr
->flags
= _flags_save_STRUCT
;
771 return NDR_ERR_SUCCESS
;
774 _PUBLIC_
void ndr_print_nbt_name_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_name_packet
*r
)
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");
782 uint32_t _flags_save_STRUCT
= ndr
->flags
;
783 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
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
);
793 for (cntr_questions_0
=0;cntr_questions_0
<r
->qdcount
;cntr_questions_0
++) {
795 if (asprintf(&idx_0
, "[%d]", cntr_questions_0
) != -1) {
796 ndr_print_nbt_name_question(ndr
, "questions", &r
->questions
[cntr_questions_0
]);
801 ndr
->print(ndr
, "%s: ARRAY(%d)", "answers", (int)r
->ancount
);
803 for (cntr_answers_0
=0;cntr_answers_0
<r
->ancount
;cntr_answers_0
++) {
805 if (asprintf(&idx_0
, "[%d]", cntr_answers_0
) != -1) {
806 ndr_print_nbt_res_rec(ndr
, "answers", &r
->answers
[cntr_answers_0
]);
811 ndr
->print(ndr
, "%s: ARRAY(%d)", "nsrecs", (int)r
->nscount
);
813 for (cntr_nsrecs_0
=0;cntr_nsrecs_0
<r
->nscount
;cntr_nsrecs_0
++) {
815 if (asprintf(&idx_0
, "[%d]", cntr_nsrecs_0
) != -1) {
816 ndr_print_nbt_res_rec(ndr
, "nsrecs", &r
->nsrecs
[cntr_nsrecs_0
]);
821 ndr
->print(ndr
, "%s: ARRAY(%d)", "additional", (int)r
->arcount
);
823 for (cntr_additional_0
=0;cntr_additional_0
<r
->arcount
;cntr_additional_0
++) {
825 if (asprintf(&idx_0
, "[%d]", cntr_additional_0
) != -1) {
826 ndr_print_nbt_res_rec(ndr
, "additional", &r
->additional
[cntr_additional_0
]);
831 ndr_print_DATA_BLOB(ndr
, "padding", r
->padding
);
833 ndr
->flags
= _flags_save_STRUCT
;
837 static enum ndr_err_code
ndr_push_dgram_msg_type(struct ndr_push
*ndr
, int ndr_flags
, enum dgram_msg_type r
)
839 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
840 return NDR_ERR_SUCCESS
;
843 static enum ndr_err_code
ndr_pull_dgram_msg_type(struct ndr_pull
*ndr
, int ndr_flags
, enum dgram_msg_type
*r
)
846 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
848 return NDR_ERR_SUCCESS
;
851 _PUBLIC_
void ndr_print_dgram_msg_type(struct ndr_print
*ndr
, const char *name
, enum dgram_msg_type r
)
853 const char *val
= NULL
;
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;
864 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
867 static enum ndr_err_code
ndr_push_dgram_flags(struct ndr_push
*ndr
, int ndr_flags
, uint8_t r
)
869 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
870 return NDR_ERR_SUCCESS
;
873 static enum ndr_err_code
ndr_pull_dgram_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint8_t *r
)
876 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
878 return NDR_ERR_SUCCESS
;
881 _PUBLIC_
void ndr_print_dgram_flags(struct ndr_print
*ndr
, const char *name
, uint8_t r
)
883 ndr_print_uint8(ndr
, name
, r
);
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
);
891 static enum ndr_err_code
ndr_push_smb_command(struct ndr_push
*ndr
, int ndr_flags
, enum smb_command r
)
893 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
894 return NDR_ERR_SUCCESS
;
897 static enum ndr_err_code
ndr_pull_smb_command(struct ndr_pull
*ndr
, int ndr_flags
, enum smb_command
*r
)
900 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
902 return NDR_ERR_SUCCESS
;
905 _PUBLIC_
void ndr_print_smb_command(struct ndr_print
*ndr
, const char *name
, enum smb_command r
)
907 const char *val
= NULL
;
910 case SMB_TRANSACTION
: val
= "SMB_TRANSACTION"; break;
912 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
915 static enum ndr_err_code
ndr_push_smb_trans_body(struct ndr_push
*ndr
, int ndr_flags
, const struct smb_trans_body
*r
)
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
));
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
;
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
;
951 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
953 if (ndr_flags
& NDR_BUFFERS
) {
955 return NDR_ERR_SUCCESS
;
958 static enum ndr_err_code
ndr_pull_smb_trans_body(struct ndr_pull
*ndr
, int ndr_flags
, struct smb_trans_body
*r
)
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");
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");
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
));
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
;
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
;
1000 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1002 if (ndr_flags
& NDR_BUFFERS
) {
1004 return NDR_ERR_SUCCESS
;
1007 _PUBLIC_
void ndr_print_smb_trans_body(struct ndr_print
*ndr
, const char *name
, const struct smb_trans_body
*r
)
1009 ndr_print_struct(ndr
, name
, "smb_trans_body");
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
);
1036 static enum ndr_err_code
ndr_push_smb_body(struct ndr_push
*ndr
, int ndr_flags
, const union smb_body
*r
)
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));
1042 case SMB_TRANSACTION
: {
1043 NDR_CHECK(ndr_push_smb_trans_body(ndr
, NDR_SCALARS
, &r
->trans
));
1047 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1050 if (ndr_flags
& NDR_BUFFERS
) {
1051 int level
= ndr_push_get_switch_value(ndr
, r
);
1053 case SMB_TRANSACTION
:
1057 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1060 return NDR_ERR_SUCCESS
;
1063 static enum ndr_err_code
ndr_pull_smb_body(struct ndr_pull
*ndr
, int ndr_flags
, union smb_body
*r
)
1066 level
= ndr_pull_get_switch_value(ndr
, r
);
1067 if (ndr_flags
& NDR_SCALARS
) {
1068 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
1070 case SMB_TRANSACTION
: {
1071 NDR_CHECK(ndr_pull_smb_trans_body(ndr
, NDR_SCALARS
, &r
->trans
));
1075 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1078 if (ndr_flags
& NDR_BUFFERS
) {
1080 case SMB_TRANSACTION
:
1084 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1087 return NDR_ERR_SUCCESS
;
1090 _PUBLIC_
void ndr_print_smb_body(struct ndr_print
*ndr
, const char *name
, const union smb_body
*r
)
1093 level
= ndr_print_get_switch_value(ndr
, r
);
1094 ndr_print_union(ndr
, name
, level
, "smb_body");
1096 case SMB_TRANSACTION
:
1097 ndr_print_smb_trans_body(ndr
, "trans", &r
->trans
);
1101 ndr_print_bad_level(ndr
, name
, level
);
1105 _PUBLIC_
enum ndr_err_code
ndr_push_dgram_smb_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct dgram_smb_packet
*r
)
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));
1129 if (ndr_flags
& NDR_BUFFERS
) {
1131 ndr
->flags
= _flags_save_STRUCT
;
1133 return NDR_ERR_SUCCESS
;
1136 _PUBLIC_
enum ndr_err_code
ndr_pull_dgram_smb_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct dgram_smb_packet
*r
)
1138 uint32_t size_signature_0
= 0;
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));
1162 if (ndr_flags
& NDR_BUFFERS
) {
1164 ndr
->flags
= _flags_save_STRUCT
;
1166 return NDR_ERR_SUCCESS
;
1169 _PUBLIC_
void ndr_print_dgram_smb_packet(struct ndr_print
*ndr
, const char *name
, const struct dgram_smb_packet
*r
)
1171 ndr_print_struct(ndr
, name
, "dgram_smb_packet");
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
);
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
);
1192 ndr
->flags
= _flags_save_STRUCT
;
1196 static enum ndr_err_code
ndr_push_dgram_message_body(struct ndr_push
*ndr
, int ndr_flags
, const union dgram_message_body
*r
)
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));
1203 NDR_CHECK(ndr_push_dgram_smb_packet(ndr
, NDR_SCALARS
, &r
->smb
));
1207 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1210 if (ndr_flags
& NDR_BUFFERS
) {
1211 int level
= ndr_push_get_switch_value(ndr
, r
);
1217 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1220 return NDR_ERR_SUCCESS
;
1223 static enum ndr_err_code
ndr_pull_dgram_message_body(struct ndr_pull
*ndr
, int ndr_flags
, union dgram_message_body
*r
)
1226 level
= ndr_pull_get_switch_value(ndr
, r
);
1227 if (ndr_flags
& NDR_SCALARS
) {
1228 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
1231 NDR_CHECK(ndr_pull_dgram_smb_packet(ndr
, NDR_SCALARS
, &r
->smb
));
1235 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1238 if (ndr_flags
& NDR_BUFFERS
) {
1244 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1247 return NDR_ERR_SUCCESS
;
1250 _PUBLIC_
void ndr_print_dgram_message_body(struct ndr_print
*ndr
, const char *name
, const union dgram_message_body
*r
)
1253 level
= ndr_print_get_switch_value(ndr
, r
);
1254 ndr_print_union(ndr
, name
, level
, "dgram_message_body");
1257 ndr_print_dgram_smb_packet(ndr
, "smb", &r
->smb
);
1261 ndr_print_bad_level(ndr
, name
, level
);
1265 static enum ndr_err_code
ndr_push_dgram_message(struct ndr_push
*ndr
, int ndr_flags
, const struct dgram_message
*r
)
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));
1278 if (ndr_flags
& NDR_BUFFERS
) {
1280 return NDR_ERR_SUCCESS
;
1283 static enum ndr_err_code
ndr_pull_dgram_message(struct ndr_pull
*ndr
, int ndr_flags
, struct dgram_message
*r
)
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));
1296 if (ndr_flags
& NDR_BUFFERS
) {
1298 return NDR_ERR_SUCCESS
;
1301 _PUBLIC_
void ndr_print_dgram_message(struct ndr_print
*ndr
, const char *name
, const struct dgram_message
*r
)
1303 ndr_print_struct(ndr
, name
, "dgram_message");
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
);
1315 static enum ndr_err_code
ndr_push_dgram_err_code(struct ndr_push
*ndr
, int ndr_flags
, enum dgram_err_code r
)
1317 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
1318 return NDR_ERR_SUCCESS
;
1321 static enum ndr_err_code
ndr_pull_dgram_err_code(struct ndr_pull
*ndr
, int ndr_flags
, enum dgram_err_code
*r
)
1324 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
1326 return NDR_ERR_SUCCESS
;
1329 _PUBLIC_
void ndr_print_dgram_err_code(struct ndr_print
*ndr
, const char *name
, enum dgram_err_code r
)
1331 const char *val
= NULL
;
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;
1338 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1341 static enum ndr_err_code
ndr_push_dgram_data(struct ndr_push
*ndr
, int ndr_flags
, const union dgram_data
*r
)
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));
1347 case DGRAM_DIRECT_UNIQUE
: {
1348 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1351 case DGRAM_DIRECT_GROUP
: {
1352 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1356 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1360 NDR_CHECK(ndr_push_dgram_err_code(ndr
, NDR_SCALARS
, r
->error
));
1364 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1367 case DGRAM_QUERY_POSITIVE
: {
1368 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1371 case DGRAM_QUERY_NEGATIVE
: {
1372 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1376 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1379 if (ndr_flags
& NDR_BUFFERS
) {
1380 int level
= ndr_push_get_switch_value(ndr
, r
);
1382 case DGRAM_DIRECT_UNIQUE
:
1385 case DGRAM_DIRECT_GROUP
:
1397 case DGRAM_QUERY_POSITIVE
:
1400 case DGRAM_QUERY_NEGATIVE
:
1404 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1407 return NDR_ERR_SUCCESS
;
1410 static enum ndr_err_code
ndr_pull_dgram_data(struct ndr_pull
*ndr
, int ndr_flags
, union dgram_data
*r
)
1413 level
= ndr_pull_get_switch_value(ndr
, r
);
1414 if (ndr_flags
& NDR_SCALARS
) {
1415 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
1417 case DGRAM_DIRECT_UNIQUE
: {
1418 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1421 case DGRAM_DIRECT_GROUP
: {
1422 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1426 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1430 NDR_CHECK(ndr_pull_dgram_err_code(ndr
, NDR_SCALARS
, &r
->error
));
1434 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1437 case DGRAM_QUERY_POSITIVE
: {
1438 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1441 case DGRAM_QUERY_NEGATIVE
: {
1442 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1446 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1449 if (ndr_flags
& NDR_BUFFERS
) {
1451 case DGRAM_DIRECT_UNIQUE
:
1454 case DGRAM_DIRECT_GROUP
:
1466 case DGRAM_QUERY_POSITIVE
:
1469 case DGRAM_QUERY_NEGATIVE
:
1473 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1476 return NDR_ERR_SUCCESS
;
1479 _PUBLIC_
void ndr_print_dgram_data(struct ndr_print
*ndr
, const char *name
, const union dgram_data
*r
)
1482 level
= ndr_print_get_switch_value(ndr
, r
);
1483 ndr_print_union(ndr
, name
, level
, "dgram_data");
1485 case DGRAM_DIRECT_UNIQUE
:
1486 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1489 case DGRAM_DIRECT_GROUP
:
1490 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1494 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1498 ndr_print_dgram_err_code(ndr
, "error", r
->error
);
1502 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1505 case DGRAM_QUERY_POSITIVE
:
1506 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1509 case DGRAM_QUERY_NEGATIVE
:
1510 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1514 ndr_print_bad_level(ndr
, name
, level
);
1518 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_dgram_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_dgram_packet
*r
)
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));
1534 if (ndr_flags
& NDR_BUFFERS
) {
1536 ndr
->flags
= _flags_save_STRUCT
;
1538 return NDR_ERR_SUCCESS
;
1541 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_dgram_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_dgram_packet
*r
)
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));
1557 if (ndr_flags
& NDR_BUFFERS
) {
1559 ndr
->flags
= _flags_save_STRUCT
;
1561 return NDR_ERR_SUCCESS
;
1564 _PUBLIC_
void ndr_print_nbt_dgram_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_dgram_packet
*r
)
1566 ndr_print_struct(ndr
, name
, "nbt_dgram_packet");
1568 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1569 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
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
);
1579 ndr
->flags
= _flags_save_STRUCT
;
1583 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_sockaddr(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_sockaddr
*r
)
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
));
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
;
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
;
1600 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1602 if (ndr_flags
& NDR_BUFFERS
) {
1604 return NDR_ERR_SUCCESS
;
1607 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_sockaddr(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_sockaddr
*r
)
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
));
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
;
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
;
1624 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1626 if (ndr_flags
& NDR_BUFFERS
) {
1628 return NDR_ERR_SUCCESS
;
1631 _PUBLIC_
void ndr_print_nbt_sockaddr(struct ndr_print
*ndr
, const char *name
, const struct nbt_sockaddr
*r
)
1633 ndr_print_struct(ndr
, name
, "nbt_sockaddr");
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
);
1641 _PUBLIC_
size_t ndr_size_nbt_sockaddr(const struct nbt_sockaddr
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1643 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_nbt_sockaddr
, ic
);
1646 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_server_type(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1649 return NDR_ERR_SUCCESS
;
1652 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_server_type(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1655 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1657 return NDR_ERR_SUCCESS
;
1660 _PUBLIC_
void ndr_print_nbt_server_type(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1662 ndr_print_uint32(ndr
, name
, r
);
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
);
1680 _PUBLIC_
enum ndr_err_code
ndr_push_netlogon_nt_version_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1683 return NDR_ERR_SUCCESS
;
1686 _PUBLIC_
enum ndr_err_code
ndr_pull_netlogon_nt_version_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1689 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1691 return NDR_ERR_SUCCESS
;
1694 _PUBLIC_
void ndr_print_netlogon_nt_version_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1696 ndr_print_uint32(ndr
, name
, r
);
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
);
1711 _PUBLIC_
enum ndr_err_code
ndr_push_netlogon_command(struct ndr_push
*ndr
, int ndr_flags
, enum netlogon_command r
)
1713 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1714 return NDR_ERR_SUCCESS
;
1717 _PUBLIC_
enum ndr_err_code
ndr_pull_netlogon_command(struct ndr_pull
*ndr
, int ndr_flags
, enum netlogon_command
*r
)
1720 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1722 return NDR_ERR_SUCCESS
;
1725 _PUBLIC_
void ndr_print_netlogon_command(struct ndr_print
*ndr
, const char *name
, enum netlogon_command r
)
1727 const char *val
= NULL
;
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;
1741 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1744 _PUBLIC_
void ndr_print_NETLOGON_SAM_LOGON_REQUEST(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_SAM_LOGON_REQUEST
*r
)
1746 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_REQUEST");
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
);
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
)
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
));
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
;
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
;
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
;
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));
1793 if (ndr_flags
& NDR_BUFFERS
) {
1795 ndr
->flags
= _flags_save_STRUCT
;
1797 return NDR_ERR_SUCCESS
;
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
)
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
));
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
;
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
;
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
;
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));
1831 if (ndr_flags
& NDR_BUFFERS
) {
1833 ndr
->flags
= _flags_save_STRUCT
;
1835 return NDR_ERR_SUCCESS
;
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
)
1840 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_RESPONSE_NT40");
1842 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1843 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
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
);
1853 ndr
->flags
= _flags_save_STRUCT
;
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
)
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
));
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
;
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
;
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
;
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));
1895 if (ndr_flags
& NDR_BUFFERS
) {
1897 ndr
->flags
= _flags_save_STRUCT
;
1899 return NDR_ERR_SUCCESS
;
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
)
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
));
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
;
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
;
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
;
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));
1940 if (ndr_flags
& NDR_BUFFERS
) {
1942 ndr
->flags
= _flags_save_STRUCT
;
1944 return NDR_ERR_SUCCESS
;
1947 _PUBLIC_
void ndr_print_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_SAM_LOGON_RESPONSE
*r
)
1949 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_RESPONSE");
1951 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
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
);
1969 ndr
->flags
= _flags_save_STRUCT
;
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
)
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
)));
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
)));
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));
2005 if (ndr_flags
& NDR_BUFFERS
) {
2007 ndr
->flags
= _flags_save_STRUCT
;
2009 return NDR_ERR_SUCCESS
;
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
)
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
));
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
));
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));
2044 if (ndr_flags
& NDR_BUFFERS
) {
2046 ndr
->flags
= _flags_save_STRUCT
;
2048 return NDR_ERR_SUCCESS
;
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
)
2053 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_RESPONSE_EX");
2055 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2056 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
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
);
2077 ndr
->flags
= _flags_save_STRUCT
;
2081 static enum ndr_err_code
ndr_push_nbt_netlogon_query_for_pdc(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_netlogon_query_for_pdc
*r
)
2083 if (ndr_flags
& NDR_SCALARS
) {
2084 NDR_CHECK(ndr_push_align(ndr
, 4));
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
;
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
;
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
;
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
;
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));
2114 if (ndr_flags
& NDR_BUFFERS
) {
2116 return NDR_ERR_SUCCESS
;
2119 static enum ndr_err_code
ndr_pull_nbt_netlogon_query_for_pdc(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_netlogon_query_for_pdc
*r
)
2121 if (ndr_flags
& NDR_SCALARS
) {
2122 NDR_CHECK(ndr_pull_align(ndr
, 4));
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
;
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
;
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
;
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
;
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));
2152 if (ndr_flags
& NDR_BUFFERS
) {
2154 return NDR_ERR_SUCCESS
;
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
)
2159 ndr_print_struct(ndr
, name
, "nbt_netlogon_query_for_pdc");
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
);
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
)
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
));
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
;
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
;
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
;
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
;
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));
2208 if (ndr_flags
& NDR_BUFFERS
) {
2210 ndr
->flags
= _flags_save_STRUCT
;
2212 return NDR_ERR_SUCCESS
;
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
)
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
));
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
;
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
;
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
;
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
;
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));
2252 if (ndr_flags
& NDR_BUFFERS
) {
2254 ndr
->flags
= _flags_save_STRUCT
;
2256 return NDR_ERR_SUCCESS
;
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
)
2261 ndr_print_struct(ndr
, name
, "nbt_netlogon_response_from_pdc");
2263 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2264 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
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
);
2275 ndr
->flags
= _flags_save_STRUCT
;
2279 static enum ndr_err_code
ndr_push_nbt_db_change_info(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_db_change_info
*r
)
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));
2288 if (ndr_flags
& NDR_BUFFERS
) {
2290 return NDR_ERR_SUCCESS
;
2293 static enum ndr_err_code
ndr_pull_nbt_db_change_info(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_db_change_info
*r
)
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));
2302 if (ndr_flags
& NDR_BUFFERS
) {
2304 return NDR_ERR_SUCCESS
;
2307 _PUBLIC_
void ndr_print_nbt_db_change_info(struct ndr_print
*ndr
, const char *name
, const struct nbt_db_change_info
*r
)
2309 ndr_print_struct(ndr
, name
, "nbt_db_change_info");
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
);
2317 static enum ndr_err_code
ndr_push_NETLOGON_DB_CHANGE(struct ndr_push
*ndr
, int ndr_flags
, const struct NETLOGON_DB_CHANGE
*r
)
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
));
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
;
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
;
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
;
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
;
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
;
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
]));
2360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
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
)));
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));
2371 if (ndr_flags
& NDR_BUFFERS
) {
2373 return NDR_ERR_SUCCESS
;
2376 static enum ndr_err_code
ndr_pull_NETLOGON_DB_CHANGE(struct ndr_pull
*ndr
, int ndr_flags
, struct NETLOGON_DB_CHANGE
*r
)
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
));
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
;
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
;
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
;
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
;
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
;
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
]));
2425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dbchange_0
, 0);
2426 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sid_size
));
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
));
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));
2437 if (ndr_flags
& NDR_BUFFERS
) {
2439 return NDR_ERR_SUCCESS
;
2442 _PUBLIC_
void ndr_print_NETLOGON_DB_CHANGE(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_DB_CHANGE
*r
)
2444 uint32_t cntr_dbchange_0
;
2445 ndr_print_struct(ndr
, name
, "NETLOGON_DB_CHANGE");
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
);
2459 for (cntr_dbchange_0
=0;cntr_dbchange_0
<r
->db_count
;cntr_dbchange_0
++) {
2461 if (asprintf(&idx_0
, "[%d]", cntr_dbchange_0
) != -1) {
2462 ndr_print_nbt_db_change_info(ndr
, "dbchange", &r
->dbchange
[cntr_dbchange_0
]);
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
);
2474 static enum ndr_err_code
ndr_push_nbt_netlogon_request(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_netlogon_request
*r
)
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));
2480 case LOGON_SAM_LOGON_REQUEST
: {
2481 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_SCALARS
, &r
->logon
));
2484 case LOGON_PRIMARY_QUERY
: {
2485 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr
, NDR_SCALARS
, &r
->pdc
));
2488 case NETLOGON_ANNOUNCE_UAS
: {
2489 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr
, NDR_SCALARS
, &r
->uas
));
2493 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2496 if (ndr_flags
& NDR_BUFFERS
) {
2497 int level
= ndr_push_get_switch_value(ndr
, r
);
2499 case LOGON_SAM_LOGON_REQUEST
:
2500 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_BUFFERS
, &r
->logon
));
2503 case LOGON_PRIMARY_QUERY
:
2506 case NETLOGON_ANNOUNCE_UAS
:
2507 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr
, NDR_BUFFERS
, &r
->uas
));
2511 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2514 return NDR_ERR_SUCCESS
;
2517 static enum ndr_err_code
ndr_pull_nbt_netlogon_request(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_netlogon_request
*r
)
2520 level
= ndr_pull_get_switch_value(ndr
, r
);
2521 if (ndr_flags
& NDR_SCALARS
) {
2522 NDR_CHECK(ndr_pull_union_align(ndr
, 8));
2524 case LOGON_SAM_LOGON_REQUEST
: {
2525 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_SCALARS
, &r
->logon
));
2528 case LOGON_PRIMARY_QUERY
: {
2529 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr
, NDR_SCALARS
, &r
->pdc
));
2532 case NETLOGON_ANNOUNCE_UAS
: {
2533 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr
, NDR_SCALARS
, &r
->uas
));
2537 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2540 if (ndr_flags
& NDR_BUFFERS
) {
2542 case LOGON_SAM_LOGON_REQUEST
:
2543 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_BUFFERS
, &r
->logon
));
2546 case LOGON_PRIMARY_QUERY
:
2549 case NETLOGON_ANNOUNCE_UAS
:
2550 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr
, NDR_BUFFERS
, &r
->uas
));
2554 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2557 return NDR_ERR_SUCCESS
;
2560 _PUBLIC_
void ndr_print_nbt_netlogon_request(struct ndr_print
*ndr
, const char *name
, const union nbt_netlogon_request
*r
)
2563 level
= ndr_print_get_switch_value(ndr
, r
);
2564 ndr_print_union(ndr
, name
, level
, "nbt_netlogon_request");
2566 case LOGON_SAM_LOGON_REQUEST
:
2567 ndr_print_NETLOGON_SAM_LOGON_REQUEST(ndr
, "logon", &r
->logon
);
2570 case LOGON_PRIMARY_QUERY
:
2571 ndr_print_nbt_netlogon_query_for_pdc(ndr
, "pdc", &r
->pdc
);
2574 case NETLOGON_ANNOUNCE_UAS
:
2575 ndr_print_NETLOGON_DB_CHANGE(ndr
, "uas", &r
->uas
);
2579 ndr_print_bad_level(ndr
, name
, level
);
2583 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_netlogon_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_netlogon_packet
*r
)
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));
2595 if (ndr_flags
& NDR_BUFFERS
) {
2596 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
2598 ndr
->flags
= _flags_save_STRUCT
;
2600 return NDR_ERR_SUCCESS
;
2603 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_netlogon_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_netlogon_packet
*r
)
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));
2615 if (ndr_flags
& NDR_BUFFERS
) {
2616 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
2618 ndr
->flags
= _flags_save_STRUCT
;
2620 return NDR_ERR_SUCCESS
;
2623 _PUBLIC_
void ndr_print_nbt_netlogon_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_packet
*r
)
2625 ndr_print_struct(ndr
, name
, "nbt_netlogon_packet");
2627 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
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
);
2634 ndr
->flags
= _flags_save_STRUCT
;
2638 static enum ndr_err_code
ndr_push_nbt_browse_opcode(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_browse_opcode r
)
2640 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
2641 return NDR_ERR_SUCCESS
;
2644 static enum ndr_err_code
ndr_pull_nbt_browse_opcode(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_browse_opcode
*r
)
2647 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
2649 return NDR_ERR_SUCCESS
;
2652 _PUBLIC_
void ndr_print_nbt_browse_opcode(struct ndr_print
*ndr
, const char *name
, enum nbt_browse_opcode r
)
2654 const char *val
= NULL
;
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;
2668 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
2671 static enum ndr_err_code
ndr_push_nbt_browse_host_announcement(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_host_announcement
*r
)
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
));
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
;
2690 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2692 if (ndr_flags
& NDR_BUFFERS
) {
2694 return NDR_ERR_SUCCESS
;
2697 static enum ndr_err_code
ndr_pull_nbt_browse_host_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_host_announcement
*r
)
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
));
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
;
2718 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2720 if (ndr_flags
& NDR_BUFFERS
) {
2722 return NDR_ERR_SUCCESS
;
2725 _PUBLIC_
void ndr_print_nbt_browse_host_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_host_announcement
*r
)
2727 ndr_print_struct(ndr
, name
, "nbt_browse_host_announcement");
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
);
2742 static enum ndr_err_code
ndr_push_nbt_browse_announcement_request(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_announcement_request
*r
)
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
));
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
;
2753 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2755 if (ndr_flags
& NDR_BUFFERS
) {
2757 return NDR_ERR_SUCCESS
;
2760 static enum ndr_err_code
ndr_pull_nbt_browse_announcement_request(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_announcement_request
*r
)
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
));
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
;
2771 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2773 if (ndr_flags
& NDR_BUFFERS
) {
2775 return NDR_ERR_SUCCESS
;
2778 _PUBLIC_
void ndr_print_nbt_browse_announcement_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_announcement_request
*r
)
2780 ndr_print_struct(ndr
, name
, "nbt_browse_announcement_request");
2782 ndr_print_uint8(ndr
, "Unused", r
->Unused
);
2783 ndr_print_string(ndr
, "ResponseName", r
->ResponseName
);
2787 static enum ndr_err_code
ndr_push_nbt_browse_election_request(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_election_request
*r
)
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
));
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
;
2801 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2803 if (ndr_flags
& NDR_BUFFERS
) {
2805 return NDR_ERR_SUCCESS
;
2808 static enum ndr_err_code
ndr_pull_nbt_browse_election_request(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_election_request
*r
)
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
));
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
;
2822 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2824 if (ndr_flags
& NDR_BUFFERS
) {
2826 return NDR_ERR_SUCCESS
;
2829 _PUBLIC_
void ndr_print_nbt_browse_election_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_election_request
*r
)
2831 ndr_print_struct(ndr
, name
, "nbt_browse_election_request");
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
);
2841 static enum ndr_err_code
ndr_push_nbt_browse_backup_list_request(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_backup_list_request
*r
)
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));
2849 if (ndr_flags
& NDR_BUFFERS
) {
2851 return NDR_ERR_SUCCESS
;
2854 static enum ndr_err_code
ndr_pull_nbt_browse_backup_list_request(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_backup_list_request
*r
)
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));
2862 if (ndr_flags
& NDR_BUFFERS
) {
2864 return NDR_ERR_SUCCESS
;
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
)
2869 ndr_print_struct(ndr
, name
, "nbt_browse_backup_list_request");
2871 ndr_print_uint8(ndr
, "ReqCount", r
->ReqCount
);
2872 ndr_print_uint32(ndr
, "Token", r
->Token
);
2876 static enum ndr_err_code
ndr_push_nbt_browse_backup_list_response(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_backup_list_response
*r
)
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
]));
2886 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2888 if (ndr_flags
& NDR_BUFFERS
) {
2890 return NDR_ERR_SUCCESS
;
2893 static enum ndr_err_code
ndr_pull_nbt_browse_backup_list_response(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_backup_list_response
*r
)
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
]));
2909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_BackupServerList_0
, 0);
2910 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2912 if (ndr_flags
& NDR_BUFFERS
) {
2914 return NDR_ERR_SUCCESS
;
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
)
2919 uint32_t cntr_BackupServerList_0
;
2920 ndr_print_struct(ndr
, name
, "nbt_browse_backup_list_response");
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
);
2926 for (cntr_BackupServerList_0
=0;cntr_BackupServerList_0
<r
->BackupCount
;cntr_BackupServerList_0
++) {
2928 if (asprintf(&idx_0
, "[%d]", cntr_BackupServerList_0
) != -1) {
2929 ndr_print_nbt_name(ndr
, "BackupServerList", &r
->BackupServerList
[cntr_BackupServerList_0
]);
2937 static enum ndr_err_code
ndr_push_nbt_browse_become_backup(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_become_backup
*r
)
2939 if (ndr_flags
& NDR_SCALARS
) {
2940 NDR_CHECK(ndr_push_align(ndr
, 4));
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
;
2947 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2949 if (ndr_flags
& NDR_BUFFERS
) {
2951 return NDR_ERR_SUCCESS
;
2954 static enum ndr_err_code
ndr_pull_nbt_browse_become_backup(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_become_backup
*r
)
2956 if (ndr_flags
& NDR_SCALARS
) {
2957 NDR_CHECK(ndr_pull_align(ndr
, 4));
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
;
2964 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2966 if (ndr_flags
& NDR_BUFFERS
) {
2968 return NDR_ERR_SUCCESS
;
2971 _PUBLIC_
void ndr_print_nbt_browse_become_backup(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_become_backup
*r
)
2973 ndr_print_struct(ndr
, name
, "nbt_browse_become_backup");
2975 ndr_print_string(ndr
, "BrowserName", r
->BrowserName
);
2979 static enum ndr_err_code
ndr_push_nbt_browse_domain_announcement(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_domain_announcement
*r
)
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
));
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
;
2996 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2998 if (ndr_flags
& NDR_BUFFERS
) {
3000 return NDR_ERR_SUCCESS
;
3003 static enum ndr_err_code
ndr_pull_nbt_browse_domain_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_domain_announcement
*r
)
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
));
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
;
3022 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
3024 if (ndr_flags
& NDR_BUFFERS
) {
3026 return NDR_ERR_SUCCESS
;
3029 _PUBLIC_
void ndr_print_nbt_browse_domain_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_domain_announcement
*r
)
3031 ndr_print_struct(ndr
, name
, "nbt_browse_domain_announcement");
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
);
3044 static enum ndr_err_code
ndr_push_nbt_browse_master_announcement(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_master_announcement
*r
)
3046 if (ndr_flags
& NDR_SCALARS
) {
3047 NDR_CHECK(ndr_push_align(ndr
, 4));
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
;
3054 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
3056 if (ndr_flags
& NDR_BUFFERS
) {
3058 return NDR_ERR_SUCCESS
;
3061 static enum ndr_err_code
ndr_pull_nbt_browse_master_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_master_announcement
*r
)
3063 if (ndr_flags
& NDR_SCALARS
) {
3064 NDR_CHECK(ndr_pull_align(ndr
, 4));
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
;
3071 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
3073 if (ndr_flags
& NDR_BUFFERS
) {
3075 return NDR_ERR_SUCCESS
;
3078 _PUBLIC_
void ndr_print_nbt_browse_master_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_master_announcement
*r
)
3080 ndr_print_struct(ndr
, name
, "nbt_browse_master_announcement");
3082 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
3086 static enum ndr_err_code
ndr_push_nbt_browse_reset_state(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_reset_state
*r
)
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));
3093 if (ndr_flags
& NDR_BUFFERS
) {
3095 return NDR_ERR_SUCCESS
;
3098 static enum ndr_err_code
ndr_pull_nbt_browse_reset_state(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_reset_state
*r
)
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));
3105 if (ndr_flags
& NDR_BUFFERS
) {
3107 return NDR_ERR_SUCCESS
;
3110 _PUBLIC_
void ndr_print_nbt_browse_reset_state(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_reset_state
*r
)
3112 ndr_print_struct(ndr
, name
, "nbt_browse_reset_state");
3114 ndr_print_uint8(ndr
, "Command", r
->Command
);
3118 static enum ndr_err_code
ndr_push_nbt_browse_local_master_announcement(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_local_master_announcement
*r
)
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
));
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
;
3137 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
3139 if (ndr_flags
& NDR_BUFFERS
) {
3141 return NDR_ERR_SUCCESS
;
3144 static enum ndr_err_code
ndr_pull_nbt_browse_local_master_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_local_master_announcement
*r
)
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
));
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
;
3165 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
3167 if (ndr_flags
& NDR_BUFFERS
) {
3169 return NDR_ERR_SUCCESS
;
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
)
3174 ndr_print_struct(ndr
, name
, "nbt_browse_local_master_announcement");
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
);
3189 static enum ndr_err_code
ndr_push_nbt_browse_payload(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_browse_payload
*r
)
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));
3195 case HostAnnouncement
: {
3196 NDR_CHECK(ndr_push_nbt_browse_host_announcement(ndr
, NDR_SCALARS
, &r
->host_annoucement
));
3199 case AnnouncementRequest
: {
3200 NDR_CHECK(ndr_push_nbt_browse_announcement_request(ndr
, NDR_SCALARS
, &r
->announcement_request
));
3204 NDR_CHECK(ndr_push_nbt_browse_election_request(ndr
, NDR_SCALARS
, &r
->election_request
));
3207 case GetBackupListReq
: {
3208 NDR_CHECK(ndr_push_nbt_browse_backup_list_request(ndr
, NDR_SCALARS
, &r
->backup_list_request
));
3211 case GetBackupListResp
: {
3212 NDR_CHECK(ndr_push_nbt_browse_backup_list_response(ndr
, NDR_SCALARS
, &r
->backup_list_response
));
3215 case BecomeBackup
: {
3216 NDR_CHECK(ndr_push_nbt_browse_become_backup(ndr
, NDR_SCALARS
, &r
->become_backup
));
3219 case DomainAnnouncement
: {
3220 NDR_CHECK(ndr_push_nbt_browse_domain_announcement(ndr
, NDR_SCALARS
, &r
->domain_announcement
));
3223 case MasterAnnouncement
: {
3224 NDR_CHECK(ndr_push_nbt_browse_master_announcement(ndr
, NDR_SCALARS
, &r
->master_announcement
));
3227 case ResetBrowserState
: {
3228 NDR_CHECK(ndr_push_nbt_browse_reset_state(ndr
, NDR_SCALARS
, &r
->reset_browser_state
));
3231 case LocalMasterAnnouncement
: {
3232 NDR_CHECK(ndr_push_nbt_browse_local_master_announcement(ndr
, NDR_SCALARS
, &r
->local_master_announcement
));
3236 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3239 if (ndr_flags
& NDR_BUFFERS
) {
3240 int level
= ndr_push_get_switch_value(ndr
, r
);
3242 case HostAnnouncement
:
3245 case AnnouncementRequest
:
3251 case GetBackupListReq
:
3254 case GetBackupListResp
:
3260 case DomainAnnouncement
:
3263 case MasterAnnouncement
:
3266 case ResetBrowserState
:
3269 case LocalMasterAnnouncement
:
3273 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3276 return NDR_ERR_SUCCESS
;
3279 static enum ndr_err_code
ndr_pull_nbt_browse_payload(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_browse_payload
*r
)
3282 level
= ndr_pull_get_switch_value(ndr
, r
);
3283 if (ndr_flags
& NDR_SCALARS
) {
3284 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
3286 case HostAnnouncement
: {
3287 NDR_CHECK(ndr_pull_nbt_browse_host_announcement(ndr
, NDR_SCALARS
, &r
->host_annoucement
));
3290 case AnnouncementRequest
: {
3291 NDR_CHECK(ndr_pull_nbt_browse_announcement_request(ndr
, NDR_SCALARS
, &r
->announcement_request
));
3295 NDR_CHECK(ndr_pull_nbt_browse_election_request(ndr
, NDR_SCALARS
, &r
->election_request
));
3298 case GetBackupListReq
: {
3299 NDR_CHECK(ndr_pull_nbt_browse_backup_list_request(ndr
, NDR_SCALARS
, &r
->backup_list_request
));
3302 case GetBackupListResp
: {
3303 NDR_CHECK(ndr_pull_nbt_browse_backup_list_response(ndr
, NDR_SCALARS
, &r
->backup_list_response
));
3306 case BecomeBackup
: {
3307 NDR_CHECK(ndr_pull_nbt_browse_become_backup(ndr
, NDR_SCALARS
, &r
->become_backup
));
3310 case DomainAnnouncement
: {
3311 NDR_CHECK(ndr_pull_nbt_browse_domain_announcement(ndr
, NDR_SCALARS
, &r
->domain_announcement
));
3314 case MasterAnnouncement
: {
3315 NDR_CHECK(ndr_pull_nbt_browse_master_announcement(ndr
, NDR_SCALARS
, &r
->master_announcement
));
3318 case ResetBrowserState
: {
3319 NDR_CHECK(ndr_pull_nbt_browse_reset_state(ndr
, NDR_SCALARS
, &r
->reset_browser_state
));
3322 case LocalMasterAnnouncement
: {
3323 NDR_CHECK(ndr_pull_nbt_browse_local_master_announcement(ndr
, NDR_SCALARS
, &r
->local_master_announcement
));
3327 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3330 if (ndr_flags
& NDR_BUFFERS
) {
3332 case HostAnnouncement
:
3335 case AnnouncementRequest
:
3341 case GetBackupListReq
:
3344 case GetBackupListResp
:
3350 case DomainAnnouncement
:
3353 case MasterAnnouncement
:
3356 case ResetBrowserState
:
3359 case LocalMasterAnnouncement
:
3363 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3366 return NDR_ERR_SUCCESS
;
3369 _PUBLIC_
void ndr_print_nbt_browse_payload(struct ndr_print
*ndr
, const char *name
, const union nbt_browse_payload
*r
)
3372 level
= ndr_print_get_switch_value(ndr
, r
);
3373 ndr_print_union(ndr
, name
, level
, "nbt_browse_payload");
3375 case HostAnnouncement
:
3376 ndr_print_nbt_browse_host_announcement(ndr
, "host_annoucement", &r
->host_annoucement
);
3379 case AnnouncementRequest
:
3380 ndr_print_nbt_browse_announcement_request(ndr
, "announcement_request", &r
->announcement_request
);
3384 ndr_print_nbt_browse_election_request(ndr
, "election_request", &r
->election_request
);
3387 case GetBackupListReq
:
3388 ndr_print_nbt_browse_backup_list_request(ndr
, "backup_list_request", &r
->backup_list_request
);
3391 case GetBackupListResp
:
3392 ndr_print_nbt_browse_backup_list_response(ndr
, "backup_list_response", &r
->backup_list_response
);
3396 ndr_print_nbt_browse_become_backup(ndr
, "become_backup", &r
->become_backup
);
3399 case DomainAnnouncement
:
3400 ndr_print_nbt_browse_domain_announcement(ndr
, "domain_announcement", &r
->domain_announcement
);
3403 case MasterAnnouncement
:
3404 ndr_print_nbt_browse_master_announcement(ndr
, "master_announcement", &r
->master_announcement
);
3407 case ResetBrowserState
:
3408 ndr_print_nbt_browse_reset_state(ndr
, "reset_browser_state", &r
->reset_browser_state
);
3411 case LocalMasterAnnouncement
:
3412 ndr_print_nbt_browse_local_master_announcement(ndr
, "local_master_announcement", &r
->local_master_announcement
);
3416 ndr_print_bad_level(ndr
, name
, level
);
3420 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_browse_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_packet
*r
)
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));
3432 if (ndr_flags
& NDR_BUFFERS
) {
3434 ndr
->flags
= _flags_save_STRUCT
;
3436 return NDR_ERR_SUCCESS
;
3439 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_browse_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_packet
*r
)
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));
3451 if (ndr_flags
& NDR_BUFFERS
) {
3453 ndr
->flags
= _flags_save_STRUCT
;
3455 return NDR_ERR_SUCCESS
;
3458 _PUBLIC_
void ndr_print_nbt_browse_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_packet
*r
)
3460 ndr_print_struct(ndr
, name
, "nbt_browse_packet");
3462 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3463 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
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
);
3469 ndr
->flags
= _flags_save_STRUCT
;