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