1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_nbt.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_svcctl.h"
9 #include "librpc/gen_ndr/ndr_samr.h"
10 static enum ndr_err_code
ndr_push_nbt_operation(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
12 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
13 return NDR_ERR_SUCCESS
;
16 static enum ndr_err_code
ndr_pull_nbt_operation(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
19 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
21 return NDR_ERR_SUCCESS
;
24 _PUBLIC_
void ndr_print_nbt_operation(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
26 ndr_print_uint16(ndr
, name
, r
);
28 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_RCODE", NBT_RCODE
, r
);
29 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_BROADCAST", NBT_FLAG_BROADCAST
, r
);
30 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_RECURSION_AVAIL", NBT_FLAG_RECURSION_AVAIL
, r
);
31 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_RECURSION_DESIRED", NBT_FLAG_RECURSION_DESIRED
, r
);
32 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_TRUNCATION", NBT_FLAG_TRUNCATION
, r
);
33 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_AUTHORITIVE", NBT_FLAG_AUTHORITIVE
, r
);
34 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_OPCODE", NBT_OPCODE
, r
);
35 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_REPLY", NBT_FLAG_REPLY
, r
);
39 static enum ndr_err_code
ndr_push_nbt_name_type(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_name_type r
)
41 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
42 return NDR_ERR_SUCCESS
;
45 static enum ndr_err_code
ndr_pull_nbt_name_type(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_name_type
*r
)
48 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
50 return NDR_ERR_SUCCESS
;
53 _PUBLIC_
void ndr_print_nbt_name_type(struct ndr_print
*ndr
, const char *name
, enum nbt_name_type r
)
55 const char *val
= NULL
;
58 case NBT_NAME_CLIENT
: val
= "NBT_NAME_CLIENT"; break;
59 case NBT_NAME_MS
: val
= "NBT_NAME_MS"; break;
60 case NBT_NAME_USER
: val
= "NBT_NAME_USER"; break;
61 case NBT_NAME_SERVER
: val
= "NBT_NAME_SERVER"; break;
62 case NBT_NAME_PDC
: val
= "NBT_NAME_PDC"; break;
63 case NBT_NAME_LOGON
: val
= "NBT_NAME_LOGON"; break;
64 case NBT_NAME_MASTER
: val
= "NBT_NAME_MASTER"; break;
65 case NBT_NAME_BROWSER
: val
= "NBT_NAME_BROWSER"; break;
67 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
70 _PUBLIC_
void ndr_print_nbt_name(struct ndr_print
*ndr
, const char *name
, const struct nbt_name
*r
)
72 ndr_print_struct(ndr
, name
, "nbt_name");
74 ndr_print_string(ndr
, "name", r
->name
);
75 ndr_print_string(ndr
, "scope", r
->scope
);
76 ndr_print_nbt_name_type(ndr
, "type", r
->type
);
80 static enum ndr_err_code
ndr_push_nbt_qclass(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_qclass r
)
82 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
83 return NDR_ERR_SUCCESS
;
86 static enum ndr_err_code
ndr_pull_nbt_qclass(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_qclass
*r
)
89 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
91 return NDR_ERR_SUCCESS
;
94 _PUBLIC_
void ndr_print_nbt_qclass(struct ndr_print
*ndr
, const char *name
, enum nbt_qclass r
)
96 const char *val
= NULL
;
99 case NBT_QCLASS_IP
: val
= "NBT_QCLASS_IP"; break;
101 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
104 static enum ndr_err_code
ndr_push_nbt_qtype(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_qtype r
)
106 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
107 return NDR_ERR_SUCCESS
;
110 static enum ndr_err_code
ndr_pull_nbt_qtype(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_qtype
*r
)
113 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
115 return NDR_ERR_SUCCESS
;
118 _PUBLIC_
void ndr_print_nbt_qtype(struct ndr_print
*ndr
, const char *name
, enum nbt_qtype r
)
120 const char *val
= NULL
;
123 case NBT_QTYPE_ADDRESS
: val
= "NBT_QTYPE_ADDRESS"; break;
124 case NBT_QTYPE_NAMESERVICE
: val
= "NBT_QTYPE_NAMESERVICE"; break;
125 case NBT_QTYPE_NULL
: val
= "NBT_QTYPE_NULL"; break;
126 case NBT_QTYPE_NETBIOS
: val
= "NBT_QTYPE_NETBIOS"; break;
127 case NBT_QTYPE_STATUS
: val
= "NBT_QTYPE_STATUS"; break;
129 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
132 static enum ndr_err_code
ndr_push_nbt_name_question(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_name_question
*r
)
134 if (ndr_flags
& NDR_SCALARS
) {
135 NDR_CHECK(ndr_push_align(ndr
, 4));
136 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
137 NDR_CHECK(ndr_push_nbt_qtype(ndr
, NDR_SCALARS
, r
->question_type
));
138 NDR_CHECK(ndr_push_nbt_qclass(ndr
, NDR_SCALARS
, r
->question_class
));
140 if (ndr_flags
& NDR_BUFFERS
) {
142 return NDR_ERR_SUCCESS
;
145 static enum ndr_err_code
ndr_pull_nbt_name_question(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_name_question
*r
)
147 if (ndr_flags
& NDR_SCALARS
) {
148 NDR_CHECK(ndr_pull_align(ndr
, 4));
149 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
150 NDR_CHECK(ndr_pull_nbt_qtype(ndr
, NDR_SCALARS
, &r
->question_type
));
151 NDR_CHECK(ndr_pull_nbt_qclass(ndr
, NDR_SCALARS
, &r
->question_class
));
153 if (ndr_flags
& NDR_BUFFERS
) {
155 return NDR_ERR_SUCCESS
;
158 _PUBLIC_
void ndr_print_nbt_name_question(struct ndr_print
*ndr
, const char *name
, const struct nbt_name_question
*r
)
160 ndr_print_struct(ndr
, name
, "nbt_name_question");
162 ndr_print_nbt_name(ndr
, "name", &r
->name
);
163 ndr_print_nbt_qtype(ndr
, "question_type", r
->question_type
);
164 ndr_print_nbt_qclass(ndr
, "question_class", r
->question_class
);
168 static enum ndr_err_code
ndr_push_nb_flags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
170 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
171 return NDR_ERR_SUCCESS
;
174 static enum ndr_err_code
ndr_pull_nb_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
177 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
179 return NDR_ERR_SUCCESS
;
182 _PUBLIC_
void ndr_print_nb_flags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
184 ndr_print_uint16(ndr
, name
, r
);
186 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_NM_PERMANENT", NBT_NM_PERMANENT
, r
);
187 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_NM_ACTIVE", NBT_NM_ACTIVE
, r
);
188 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_NM_CONFLICT", NBT_NM_CONFLICT
, r
);
189 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_NM_DEREGISTER", NBT_NM_DEREGISTER
, r
);
190 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_NM_OWNER_TYPE", NBT_NM_OWNER_TYPE
, r
);
191 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_NM_GROUP", NBT_NM_GROUP
, r
);
195 static enum ndr_err_code
ndr_push_nbt_rdata_address(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_address
*r
)
197 if (ndr_flags
& NDR_SCALARS
) {
198 NDR_CHECK(ndr_push_align(ndr
, 4));
199 NDR_CHECK(ndr_push_nb_flags(ndr
, NDR_SCALARS
, r
->nb_flags
));
200 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->ipaddr
));
202 if (ndr_flags
& NDR_BUFFERS
) {
204 return NDR_ERR_SUCCESS
;
207 static enum ndr_err_code
ndr_pull_nbt_rdata_address(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_address
*r
)
209 if (ndr_flags
& NDR_SCALARS
) {
210 NDR_CHECK(ndr_pull_align(ndr
, 4));
211 NDR_CHECK(ndr_pull_nb_flags(ndr
, NDR_SCALARS
, &r
->nb_flags
));
212 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->ipaddr
));
214 if (ndr_flags
& NDR_BUFFERS
) {
216 return NDR_ERR_SUCCESS
;
219 _PUBLIC_
void ndr_print_nbt_rdata_address(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_address
*r
)
221 ndr_print_struct(ndr
, name
, "nbt_rdata_address");
223 ndr_print_nb_flags(ndr
, "nb_flags", r
->nb_flags
);
224 ndr_print_ipv4address(ndr
, "ipaddr", r
->ipaddr
);
228 static enum ndr_err_code
ndr_push_nbt_rdata_netbios(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_netbios
*r
)
230 uint32_t cntr_addresses_0
;
231 if (ndr_flags
& NDR_SCALARS
) {
232 NDR_CHECK(ndr_push_align(ndr
, 4));
233 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
234 for (cntr_addresses_0
= 0; cntr_addresses_0
< r
->length
/ 6; cntr_addresses_0
++) {
235 NDR_CHECK(ndr_push_nbt_rdata_address(ndr
, NDR_SCALARS
, &r
->addresses
[cntr_addresses_0
]));
238 if (ndr_flags
& NDR_BUFFERS
) {
240 return NDR_ERR_SUCCESS
;
243 static enum ndr_err_code
ndr_pull_nbt_rdata_netbios(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_netbios
*r
)
245 uint32_t cntr_addresses_0
;
246 TALLOC_CTX
*_mem_save_addresses_0
;
247 if (ndr_flags
& NDR_SCALARS
) {
248 NDR_CHECK(ndr_pull_align(ndr
, 4));
249 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
250 NDR_PULL_ALLOC_N(ndr
, r
->addresses
, r
->length
/ 6);
251 _mem_save_addresses_0
= NDR_PULL_GET_MEM_CTX(ndr
);
252 NDR_PULL_SET_MEM_CTX(ndr
, r
->addresses
, 0);
253 for (cntr_addresses_0
= 0; cntr_addresses_0
< r
->length
/ 6; cntr_addresses_0
++) {
254 NDR_CHECK(ndr_pull_nbt_rdata_address(ndr
, NDR_SCALARS
, &r
->addresses
[cntr_addresses_0
]));
256 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_0
, 0);
258 if (ndr_flags
& NDR_BUFFERS
) {
260 return NDR_ERR_SUCCESS
;
263 _PUBLIC_
void ndr_print_nbt_rdata_netbios(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_netbios
*r
)
265 uint32_t cntr_addresses_0
;
266 ndr_print_struct(ndr
, name
, "nbt_rdata_netbios");
268 ndr_print_uint16(ndr
, "length", r
->length
);
269 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", r
->length
/ 6);
271 for (cntr_addresses_0
=0;cntr_addresses_0
<r
->length
/ 6;cntr_addresses_0
++) {
273 if (asprintf(&idx_0
, "[%d]", cntr_addresses_0
) != -1) {
274 ndr_print_nbt_rdata_address(ndr
, "addresses", &r
->addresses
[cntr_addresses_0
]);
282 static enum ndr_err_code
ndr_push_nbt_statistics(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_statistics
*r
)
284 if (ndr_flags
& NDR_SCALARS
) {
285 NDR_CHECK(ndr_push_align(ndr
, 4));
286 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->unit_id
, 6));
287 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->jumpers
));
288 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->test_result
));
289 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->version_number
));
290 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->period_of_statistics
));
291 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_of_crcs
));
292 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_alignment_errors
));
293 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_of_collisions
));
294 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_send_aborts
));
295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_good_sends
));
296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_good_receives
));
297 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_retransmits
));
298 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_no_resource_conditions
));
299 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_free_command_blocks
));
300 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->total_number_command_blocks
));
301 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_total_number_command_blocks
));
302 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->number_pending_sessions
));
303 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_number_pending_sessions
));
304 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_total_sessions_possible
));
305 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->session_data_packet_size
));
307 if (ndr_flags
& NDR_BUFFERS
) {
309 return NDR_ERR_SUCCESS
;
312 static enum ndr_err_code
ndr_pull_nbt_statistics(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_statistics
*r
)
314 if (ndr_flags
& NDR_SCALARS
) {
315 NDR_CHECK(ndr_pull_align(ndr
, 4));
316 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->unit_id
, 6));
317 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->jumpers
));
318 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->test_result
));
319 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->version_number
));
320 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->period_of_statistics
));
321 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_of_crcs
));
322 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_alignment_errors
));
323 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_of_collisions
));
324 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_send_aborts
));
325 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_good_sends
));
326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_good_receives
));
327 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_retransmits
));
328 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_no_resource_conditions
));
329 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_free_command_blocks
));
330 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->total_number_command_blocks
));
331 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_total_number_command_blocks
));
332 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->number_pending_sessions
));
333 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_number_pending_sessions
));
334 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_total_sessions_possible
));
335 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->session_data_packet_size
));
337 if (ndr_flags
& NDR_BUFFERS
) {
339 return NDR_ERR_SUCCESS
;
342 _PUBLIC_
void ndr_print_nbt_statistics(struct ndr_print
*ndr
, const char *name
, const struct nbt_statistics
*r
)
344 ndr_print_struct(ndr
, name
, "nbt_statistics");
346 ndr_print_array_uint8(ndr
, "unit_id", r
->unit_id
, 6);
347 ndr_print_uint8(ndr
, "jumpers", r
->jumpers
);
348 ndr_print_uint8(ndr
, "test_result", r
->test_result
);
349 ndr_print_uint16(ndr
, "version_number", r
->version_number
);
350 ndr_print_uint16(ndr
, "period_of_statistics", r
->period_of_statistics
);
351 ndr_print_uint16(ndr
, "number_of_crcs", r
->number_of_crcs
);
352 ndr_print_uint16(ndr
, "number_alignment_errors", r
->number_alignment_errors
);
353 ndr_print_uint16(ndr
, "number_of_collisions", r
->number_of_collisions
);
354 ndr_print_uint16(ndr
, "number_send_aborts", r
->number_send_aborts
);
355 ndr_print_uint32(ndr
, "number_good_sends", r
->number_good_sends
);
356 ndr_print_uint32(ndr
, "number_good_receives", r
->number_good_receives
);
357 ndr_print_uint16(ndr
, "number_retransmits", r
->number_retransmits
);
358 ndr_print_uint16(ndr
, "number_no_resource_conditions", r
->number_no_resource_conditions
);
359 ndr_print_uint16(ndr
, "number_free_command_blocks", r
->number_free_command_blocks
);
360 ndr_print_uint16(ndr
, "total_number_command_blocks", r
->total_number_command_blocks
);
361 ndr_print_uint16(ndr
, "max_total_number_command_blocks", r
->max_total_number_command_blocks
);
362 ndr_print_uint16(ndr
, "number_pending_sessions", r
->number_pending_sessions
);
363 ndr_print_uint16(ndr
, "max_number_pending_sessions", r
->max_number_pending_sessions
);
364 ndr_print_uint16(ndr
, "max_total_sessions_possible", r
->max_total_sessions_possible
);
365 ndr_print_uint16(ndr
, "session_data_packet_size", r
->session_data_packet_size
);
369 static enum ndr_err_code
ndr_push_nbt_status_name(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_status_name
*r
)
371 if (ndr_flags
& NDR_SCALARS
) {
372 NDR_CHECK(ndr_push_align(ndr
, 2));
373 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, 15, sizeof(uint8_t), CH_DOS
));
374 NDR_CHECK(ndr_push_nbt_name_type(ndr
, NDR_SCALARS
, r
->type
));
375 NDR_CHECK(ndr_push_nb_flags(ndr
, NDR_SCALARS
, r
->nb_flags
));
377 if (ndr_flags
& NDR_BUFFERS
) {
379 return NDR_ERR_SUCCESS
;
382 static enum ndr_err_code
ndr_pull_nbt_status_name(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_status_name
*r
)
384 if (ndr_flags
& NDR_SCALARS
) {
385 NDR_CHECK(ndr_pull_align(ndr
, 2));
386 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, 15, sizeof(uint8_t), CH_DOS
));
387 NDR_CHECK(ndr_pull_nbt_name_type(ndr
, NDR_SCALARS
, &r
->type
));
388 NDR_CHECK(ndr_pull_nb_flags(ndr
, NDR_SCALARS
, &r
->nb_flags
));
390 if (ndr_flags
& NDR_BUFFERS
) {
392 return NDR_ERR_SUCCESS
;
395 _PUBLIC_
void ndr_print_nbt_status_name(struct ndr_print
*ndr
, const char *name
, const struct nbt_status_name
*r
)
397 ndr_print_struct(ndr
, name
, "nbt_status_name");
399 ndr_print_string(ndr
, "name", r
->name
);
400 ndr_print_nbt_name_type(ndr
, "type", r
->type
);
401 ndr_print_nb_flags(ndr
, "nb_flags", r
->nb_flags
);
405 static enum ndr_err_code
ndr_push_nbt_rdata_status(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_status
*r
)
407 uint32_t cntr_names_0
;
408 if (ndr_flags
& NDR_SCALARS
) {
409 NDR_CHECK(ndr_push_align(ndr
, 4));
410 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->num_names
* 18 + 47));
411 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->num_names
));
412 for (cntr_names_0
= 0; cntr_names_0
< r
->num_names
; cntr_names_0
++) {
413 NDR_CHECK(ndr_push_nbt_status_name(ndr
, NDR_SCALARS
, &r
->names
[cntr_names_0
]));
415 NDR_CHECK(ndr_push_nbt_statistics(ndr
, NDR_SCALARS
, &r
->statistics
));
417 if (ndr_flags
& NDR_BUFFERS
) {
419 return NDR_ERR_SUCCESS
;
422 static enum ndr_err_code
ndr_pull_nbt_rdata_status(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_status
*r
)
424 uint32_t cntr_names_0
;
425 TALLOC_CTX
*_mem_save_names_0
;
426 if (ndr_flags
& NDR_SCALARS
) {
427 NDR_CHECK(ndr_pull_align(ndr
, 4));
428 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
429 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->num_names
));
430 NDR_PULL_ALLOC_N(ndr
, r
->names
, r
->num_names
);
431 _mem_save_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
432 NDR_PULL_SET_MEM_CTX(ndr
, r
->names
, 0);
433 for (cntr_names_0
= 0; cntr_names_0
< r
->num_names
; cntr_names_0
++) {
434 NDR_CHECK(ndr_pull_nbt_status_name(ndr
, NDR_SCALARS
, &r
->names
[cntr_names_0
]));
436 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_names_0
, 0);
437 NDR_CHECK(ndr_pull_nbt_statistics(ndr
, NDR_SCALARS
, &r
->statistics
));
439 if (ndr_flags
& NDR_BUFFERS
) {
441 return NDR_ERR_SUCCESS
;
444 _PUBLIC_
void ndr_print_nbt_rdata_status(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_status
*r
)
446 uint32_t cntr_names_0
;
447 ndr_print_struct(ndr
, name
, "nbt_rdata_status");
449 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->num_names
* 18 + 47:r
->length
);
450 ndr_print_uint8(ndr
, "num_names", r
->num_names
);
451 ndr
->print(ndr
, "%s: ARRAY(%d)", "names", r
->num_names
);
453 for (cntr_names_0
=0;cntr_names_0
<r
->num_names
;cntr_names_0
++) {
455 if (asprintf(&idx_0
, "[%d]", cntr_names_0
) != -1) {
456 ndr_print_nbt_status_name(ndr
, "names", &r
->names
[cntr_names_0
]);
461 ndr_print_nbt_statistics(ndr
, "statistics", &r
->statistics
);
465 static enum ndr_err_code
ndr_push_nbt_rdata_data(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_rdata_data
*r
)
467 if (ndr_flags
& NDR_SCALARS
) {
468 NDR_CHECK(ndr_push_align(ndr
, 2));
469 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
470 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
472 if (ndr_flags
& NDR_BUFFERS
) {
474 return NDR_ERR_SUCCESS
;
477 static enum ndr_err_code
ndr_pull_nbt_rdata_data(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_rdata_data
*r
)
479 if (ndr_flags
& NDR_SCALARS
) {
480 NDR_CHECK(ndr_pull_align(ndr
, 2));
481 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
482 NDR_PULL_ALLOC_N(ndr
, r
->data
, r
->length
);
483 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
485 if (ndr_flags
& NDR_BUFFERS
) {
487 return NDR_ERR_SUCCESS
;
490 _PUBLIC_
void ndr_print_nbt_rdata_data(struct ndr_print
*ndr
, const char *name
, const struct nbt_rdata_data
*r
)
492 ndr_print_struct(ndr
, name
, "nbt_rdata_data");
494 ndr_print_uint16(ndr
, "length", r
->length
);
495 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
499 static enum ndr_err_code
ndr_push_nbt_rdata(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_rdata
*r
)
501 if (ndr_flags
& NDR_SCALARS
) {
502 int level
= ndr_push_get_switch_value(ndr
, r
);
504 case NBT_QTYPE_NETBIOS
: {
505 NDR_CHECK(ndr_push_nbt_rdata_netbios(ndr
, NDR_SCALARS
, &r
->netbios
));
508 case NBT_QTYPE_STATUS
: {
509 NDR_CHECK(ndr_push_nbt_rdata_status(ndr
, NDR_SCALARS
, &r
->status
));
513 NDR_CHECK(ndr_push_nbt_rdata_data(ndr
, NDR_SCALARS
, &r
->data
));
518 if (ndr_flags
& NDR_BUFFERS
) {
519 int level
= ndr_push_get_switch_value(ndr
, r
);
521 case NBT_QTYPE_NETBIOS
:
524 case NBT_QTYPE_STATUS
:
532 return NDR_ERR_SUCCESS
;
535 static enum ndr_err_code
ndr_pull_nbt_rdata(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_rdata
*r
)
538 level
= ndr_pull_get_switch_value(ndr
, r
);
539 if (ndr_flags
& NDR_SCALARS
) {
541 case NBT_QTYPE_NETBIOS
: {
542 NDR_CHECK(ndr_pull_nbt_rdata_netbios(ndr
, NDR_SCALARS
, &r
->netbios
));
545 case NBT_QTYPE_STATUS
: {
546 NDR_CHECK(ndr_pull_nbt_rdata_status(ndr
, NDR_SCALARS
, &r
->status
));
550 NDR_CHECK(ndr_pull_nbt_rdata_data(ndr
, NDR_SCALARS
, &r
->data
));
555 if (ndr_flags
& NDR_BUFFERS
) {
557 case NBT_QTYPE_NETBIOS
:
560 case NBT_QTYPE_STATUS
:
568 return NDR_ERR_SUCCESS
;
571 _PUBLIC_
void ndr_print_nbt_rdata(struct ndr_print
*ndr
, const char *name
, const union nbt_rdata
*r
)
574 level
= ndr_print_get_switch_value(ndr
, r
);
575 ndr_print_union(ndr
, name
, level
, "nbt_rdata");
577 case NBT_QTYPE_NETBIOS
:
578 ndr_print_nbt_rdata_netbios(ndr
, "netbios", &r
->netbios
);
581 case NBT_QTYPE_STATUS
:
582 ndr_print_nbt_rdata_status(ndr
, "status", &r
->status
);
586 ndr_print_nbt_rdata_data(ndr
, "data", &r
->data
);
592 static enum ndr_err_code
ndr_push_nbt_res_rec(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_res_rec
*r
)
595 uint32_t _flags_save_STRUCT
= ndr
->flags
;
596 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
597 if (ndr_flags
& NDR_SCALARS
) {
598 NDR_CHECK(ndr_push_align(ndr
, 4));
599 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
600 NDR_CHECK(ndr_push_nbt_qtype(ndr
, NDR_SCALARS
, r
->rr_type
));
601 NDR_CHECK(ndr_push_nbt_qclass(ndr
, NDR_SCALARS
, r
->rr_class
));
602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ttl
));
603 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
)));
604 NDR_CHECK(ndr_push_nbt_rdata(ndr
, NDR_SCALARS
, &r
->rdata
));
606 if (ndr_flags
& NDR_BUFFERS
) {
608 ndr
->flags
= _flags_save_STRUCT
;
610 return NDR_ERR_SUCCESS
;
613 static enum ndr_err_code
ndr_pull_nbt_res_rec(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_res_rec
*r
)
616 uint32_t _flags_save_STRUCT
= ndr
->flags
;
617 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
618 if (ndr_flags
& NDR_SCALARS
) {
619 NDR_CHECK(ndr_pull_align(ndr
, 4));
620 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
621 NDR_CHECK(ndr_pull_nbt_qtype(ndr
, NDR_SCALARS
, &r
->rr_type
));
622 NDR_CHECK(ndr_pull_nbt_qclass(ndr
, NDR_SCALARS
, &r
->rr_class
));
623 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ttl
));
624 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
)));
625 NDR_CHECK(ndr_pull_nbt_rdata(ndr
, NDR_SCALARS
, &r
->rdata
));
627 if (ndr_flags
& NDR_BUFFERS
) {
629 ndr
->flags
= _flags_save_STRUCT
;
631 return NDR_ERR_SUCCESS
;
634 _PUBLIC_
void ndr_print_nbt_res_rec(struct ndr_print
*ndr
, const char *name
, const struct nbt_res_rec
*r
)
636 ndr_print_struct(ndr
, name
, "nbt_res_rec");
638 uint32_t _flags_save_STRUCT
= ndr
->flags
;
639 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
641 ndr_print_nbt_name(ndr
, "name", &r
->name
);
642 ndr_print_nbt_qtype(ndr
, "rr_type", r
->rr_type
);
643 ndr_print_nbt_qclass(ndr
, "rr_class", r
->rr_class
);
644 ndr_print_uint32(ndr
, "ttl", r
->ttl
);
645 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
));
646 ndr_print_nbt_rdata(ndr
, "rdata", &r
->rdata
);
648 ndr
->flags
= _flags_save_STRUCT
;
652 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_name_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_name_packet
*r
)
654 uint32_t cntr_questions_0
;
655 uint32_t cntr_answers_0
;
656 uint32_t cntr_nsrecs_0
;
657 uint32_t cntr_additional_0
;
659 uint32_t _flags_save_STRUCT
= ndr
->flags
;
660 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
661 if (ndr_flags
& NDR_SCALARS
) {
662 NDR_CHECK(ndr_push_align(ndr
, 4));
663 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->name_trn_id
));
664 NDR_CHECK(ndr_push_nbt_operation(ndr
, NDR_SCALARS
, r
->operation
));
665 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->qdcount
));
666 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ancount
));
667 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nscount
));
668 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->arcount
));
669 for (cntr_questions_0
= 0; cntr_questions_0
< r
->qdcount
; cntr_questions_0
++) {
670 NDR_CHECK(ndr_push_nbt_name_question(ndr
, NDR_SCALARS
, &r
->questions
[cntr_questions_0
]));
672 for (cntr_answers_0
= 0; cntr_answers_0
< r
->ancount
; cntr_answers_0
++) {
673 NDR_CHECK(ndr_push_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->answers
[cntr_answers_0
]));
675 for (cntr_nsrecs_0
= 0; cntr_nsrecs_0
< r
->nscount
; cntr_nsrecs_0
++) {
676 NDR_CHECK(ndr_push_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->nsrecs
[cntr_nsrecs_0
]));
678 for (cntr_additional_0
= 0; cntr_additional_0
< r
->arcount
; cntr_additional_0
++) {
679 NDR_CHECK(ndr_push_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->additional
[cntr_additional_0
]));
682 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
684 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->padding
));
685 ndr
->flags
= _flags_save_DATA_BLOB
;
688 if (ndr_flags
& NDR_BUFFERS
) {
690 ndr
->flags
= _flags_save_STRUCT
;
692 return NDR_ERR_SUCCESS
;
695 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_name_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_name_packet
*r
)
697 uint32_t cntr_questions_0
;
698 TALLOC_CTX
*_mem_save_questions_0
;
699 uint32_t cntr_answers_0
;
700 TALLOC_CTX
*_mem_save_answers_0
;
701 uint32_t cntr_nsrecs_0
;
702 TALLOC_CTX
*_mem_save_nsrecs_0
;
703 uint32_t cntr_additional_0
;
704 TALLOC_CTX
*_mem_save_additional_0
;
706 uint32_t _flags_save_STRUCT
= ndr
->flags
;
707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
708 if (ndr_flags
& NDR_SCALARS
) {
709 NDR_CHECK(ndr_pull_align(ndr
, 4));
710 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_trn_id
));
711 NDR_CHECK(ndr_pull_nbt_operation(ndr
, NDR_SCALARS
, &r
->operation
));
712 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->qdcount
));
713 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ancount
));
714 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nscount
));
715 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->arcount
));
716 NDR_PULL_ALLOC_N(ndr
, r
->questions
, r
->qdcount
);
717 _mem_save_questions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
718 NDR_PULL_SET_MEM_CTX(ndr
, r
->questions
, 0);
719 for (cntr_questions_0
= 0; cntr_questions_0
< r
->qdcount
; cntr_questions_0
++) {
720 NDR_CHECK(ndr_pull_nbt_name_question(ndr
, NDR_SCALARS
, &r
->questions
[cntr_questions_0
]));
722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_questions_0
, 0);
723 NDR_PULL_ALLOC_N(ndr
, r
->answers
, r
->ancount
);
724 _mem_save_answers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
725 NDR_PULL_SET_MEM_CTX(ndr
, r
->answers
, 0);
726 for (cntr_answers_0
= 0; cntr_answers_0
< r
->ancount
; cntr_answers_0
++) {
727 NDR_CHECK(ndr_pull_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->answers
[cntr_answers_0
]));
729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_answers_0
, 0);
730 NDR_PULL_ALLOC_N(ndr
, r
->nsrecs
, r
->nscount
);
731 _mem_save_nsrecs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
732 NDR_PULL_SET_MEM_CTX(ndr
, r
->nsrecs
, 0);
733 for (cntr_nsrecs_0
= 0; cntr_nsrecs_0
< r
->nscount
; cntr_nsrecs_0
++) {
734 NDR_CHECK(ndr_pull_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->nsrecs
[cntr_nsrecs_0
]));
736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nsrecs_0
, 0);
737 NDR_PULL_ALLOC_N(ndr
, r
->additional
, r
->arcount
);
738 _mem_save_additional_0
= NDR_PULL_GET_MEM_CTX(ndr
);
739 NDR_PULL_SET_MEM_CTX(ndr
, r
->additional
, 0);
740 for (cntr_additional_0
= 0; cntr_additional_0
< r
->arcount
; cntr_additional_0
++) {
741 NDR_CHECK(ndr_pull_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->additional
[cntr_additional_0
]));
743 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_additional_0
, 0);
745 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
746 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
747 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->padding
));
748 ndr
->flags
= _flags_save_DATA_BLOB
;
751 if (ndr_flags
& NDR_BUFFERS
) {
753 ndr
->flags
= _flags_save_STRUCT
;
755 return NDR_ERR_SUCCESS
;
758 _PUBLIC_
void ndr_print_nbt_name_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_name_packet
*r
)
760 uint32_t cntr_questions_0
;
761 uint32_t cntr_answers_0
;
762 uint32_t cntr_nsrecs_0
;
763 uint32_t cntr_additional_0
;
764 ndr_print_struct(ndr
, name
, "nbt_name_packet");
766 uint32_t _flags_save_STRUCT
= ndr
->flags
;
767 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
769 ndr_print_uint16(ndr
, "name_trn_id", r
->name_trn_id
);
770 ndr_print_nbt_operation(ndr
, "operation", r
->operation
);
771 ndr_print_uint16(ndr
, "qdcount", r
->qdcount
);
772 ndr_print_uint16(ndr
, "ancount", r
->ancount
);
773 ndr_print_uint16(ndr
, "nscount", r
->nscount
);
774 ndr_print_uint16(ndr
, "arcount", r
->arcount
);
775 ndr
->print(ndr
, "%s: ARRAY(%d)", "questions", r
->qdcount
);
777 for (cntr_questions_0
=0;cntr_questions_0
<r
->qdcount
;cntr_questions_0
++) {
779 if (asprintf(&idx_0
, "[%d]", cntr_questions_0
) != -1) {
780 ndr_print_nbt_name_question(ndr
, "questions", &r
->questions
[cntr_questions_0
]);
785 ndr
->print(ndr
, "%s: ARRAY(%d)", "answers", r
->ancount
);
787 for (cntr_answers_0
=0;cntr_answers_0
<r
->ancount
;cntr_answers_0
++) {
789 if (asprintf(&idx_0
, "[%d]", cntr_answers_0
) != -1) {
790 ndr_print_nbt_res_rec(ndr
, "answers", &r
->answers
[cntr_answers_0
]);
795 ndr
->print(ndr
, "%s: ARRAY(%d)", "nsrecs", r
->nscount
);
797 for (cntr_nsrecs_0
=0;cntr_nsrecs_0
<r
->nscount
;cntr_nsrecs_0
++) {
799 if (asprintf(&idx_0
, "[%d]", cntr_nsrecs_0
) != -1) {
800 ndr_print_nbt_res_rec(ndr
, "nsrecs", &r
->nsrecs
[cntr_nsrecs_0
]);
805 ndr
->print(ndr
, "%s: ARRAY(%d)", "additional", r
->arcount
);
807 for (cntr_additional_0
=0;cntr_additional_0
<r
->arcount
;cntr_additional_0
++) {
809 if (asprintf(&idx_0
, "[%d]", cntr_additional_0
) != -1) {
810 ndr_print_nbt_res_rec(ndr
, "additional", &r
->additional
[cntr_additional_0
]);
815 ndr_print_DATA_BLOB(ndr
, "padding", r
->padding
);
817 ndr
->flags
= _flags_save_STRUCT
;
821 static enum ndr_err_code
ndr_push_dgram_msg_type(struct ndr_push
*ndr
, int ndr_flags
, enum dgram_msg_type r
)
823 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
824 return NDR_ERR_SUCCESS
;
827 static enum ndr_err_code
ndr_pull_dgram_msg_type(struct ndr_pull
*ndr
, int ndr_flags
, enum dgram_msg_type
*r
)
830 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
832 return NDR_ERR_SUCCESS
;
835 _PUBLIC_
void ndr_print_dgram_msg_type(struct ndr_print
*ndr
, const char *name
, enum dgram_msg_type r
)
837 const char *val
= NULL
;
840 case DGRAM_DIRECT_UNIQUE
: val
= "DGRAM_DIRECT_UNIQUE"; break;
841 case DGRAM_DIRECT_GROUP
: val
= "DGRAM_DIRECT_GROUP"; break;
842 case DGRAM_BCAST
: val
= "DGRAM_BCAST"; break;
843 case DGRAM_ERROR
: val
= "DGRAM_ERROR"; break;
844 case DGRAM_QUERY
: val
= "DGRAM_QUERY"; break;
845 case DGRAM_QUERY_POSITIVE
: val
= "DGRAM_QUERY_POSITIVE"; break;
846 case DGRAM_QUERY_NEGATIVE
: val
= "DGRAM_QUERY_NEGATIVE"; break;
848 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
851 static enum ndr_err_code
ndr_push_dgram_flags(struct ndr_push
*ndr
, int ndr_flags
, uint8_t r
)
853 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
854 return NDR_ERR_SUCCESS
;
857 static enum ndr_err_code
ndr_pull_dgram_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint8_t *r
)
860 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
862 return NDR_ERR_SUCCESS
;
865 _PUBLIC_
void ndr_print_dgram_flags(struct ndr_print
*ndr
, const char *name
, uint8_t r
)
867 ndr_print_uint8(ndr
, name
, r
);
869 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "DGRAM_FLAG_MORE", DGRAM_FLAG_MORE
, r
);
870 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "DGRAM_FLAG_FIRST", DGRAM_FLAG_FIRST
, r
);
871 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "DGRAM_FLAG_NODE_TYPE", DGRAM_FLAG_NODE_TYPE
, r
);
875 static enum ndr_err_code
ndr_push_smb_command(struct ndr_push
*ndr
, int ndr_flags
, enum smb_command r
)
877 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
878 return NDR_ERR_SUCCESS
;
881 static enum ndr_err_code
ndr_pull_smb_command(struct ndr_pull
*ndr
, int ndr_flags
, enum smb_command
*r
)
884 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
886 return NDR_ERR_SUCCESS
;
889 _PUBLIC_
void ndr_print_smb_command(struct ndr_print
*ndr
, const char *name
, enum smb_command r
)
891 const char *val
= NULL
;
894 case SMB_TRANSACTION
: val
= "SMB_TRANSACTION"; break;
896 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
899 static enum ndr_err_code
ndr_push_smb_trans_body(struct ndr_push
*ndr
, int ndr_flags
, const struct smb_trans_body
*r
)
901 if (ndr_flags
& NDR_SCALARS
) {
902 NDR_CHECK(ndr_push_align(ndr
, 4));
903 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, 17));
904 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->total_param_count
));
905 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->total_data_count
));
906 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_param_count
));
907 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_data_count
));
908 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->max_setup_count
));
909 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pad
));
910 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->trans_flags
));
911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timeout
));
912 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->reserved
));
913 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->param_count
));
914 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->param_offset
));
915 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->data_count
));
916 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->data_offset
));
917 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, 3));
918 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pad2
));
919 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->opcode
));
920 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->priority
));
921 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->_class
));
922 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen(r
->mailslot_name
) + 1 + r
->data
.length
));
924 uint32_t _flags_save_string
= ndr
->flags
;
925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
926 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mailslot_name
));
927 ndr
->flags
= _flags_save_string
;
930 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
931 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
932 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
933 ndr
->flags
= _flags_save_DATA_BLOB
;
936 if (ndr_flags
& NDR_BUFFERS
) {
938 return NDR_ERR_SUCCESS
;
941 static enum ndr_err_code
ndr_pull_smb_trans_body(struct ndr_pull
*ndr
, int ndr_flags
, struct smb_trans_body
*r
)
943 if (ndr_flags
& NDR_SCALARS
) {
944 NDR_CHECK(ndr_pull_align(ndr
, 4));
945 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->wct
));
946 if (r
->wct
< 17 || r
->wct
> 17) {
947 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
949 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->total_param_count
));
950 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->total_data_count
));
951 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_param_count
));
952 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_data_count
));
953 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->max_setup_count
));
954 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pad
));
955 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->trans_flags
));
956 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timeout
));
957 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->reserved
));
958 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->param_count
));
959 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->param_offset
));
960 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->data_count
));
961 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->data_offset
));
962 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->setup_count
));
963 if (r
->setup_count
< 3 || r
->setup_count
> 3) {
964 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
966 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pad2
));
967 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->opcode
));
968 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->priority
));
969 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->_class
));
970 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->byte_count
));
972 uint32_t _flags_save_string
= ndr
->flags
;
973 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
974 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mailslot_name
));
975 ndr
->flags
= _flags_save_string
;
978 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
979 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
980 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
981 ndr
->flags
= _flags_save_DATA_BLOB
;
984 if (ndr_flags
& NDR_BUFFERS
) {
986 return NDR_ERR_SUCCESS
;
989 _PUBLIC_
void ndr_print_smb_trans_body(struct ndr_print
*ndr
, const char *name
, const struct smb_trans_body
*r
)
991 ndr_print_struct(ndr
, name
, "smb_trans_body");
993 ndr_print_uint8(ndr
, "wct", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?17:r
->wct
);
994 ndr_print_uint16(ndr
, "total_param_count", r
->total_param_count
);
995 ndr_print_uint16(ndr
, "total_data_count", r
->total_data_count
);
996 ndr_print_uint16(ndr
, "max_param_count", r
->max_param_count
);
997 ndr_print_uint16(ndr
, "max_data_count", r
->max_data_count
);
998 ndr_print_uint8(ndr
, "max_setup_count", r
->max_setup_count
);
999 ndr_print_uint8(ndr
, "pad", r
->pad
);
1000 ndr_print_uint16(ndr
, "trans_flags", r
->trans_flags
);
1001 ndr_print_uint32(ndr
, "timeout", r
->timeout
);
1002 ndr_print_uint16(ndr
, "reserved", r
->reserved
);
1003 ndr_print_uint16(ndr
, "param_count", r
->param_count
);
1004 ndr_print_uint16(ndr
, "param_offset", r
->param_offset
);
1005 ndr_print_uint16(ndr
, "data_count", r
->data_count
);
1006 ndr_print_uint16(ndr
, "data_offset", r
->data_offset
);
1007 ndr_print_uint8(ndr
, "setup_count", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?3:r
->setup_count
);
1008 ndr_print_uint8(ndr
, "pad2", r
->pad2
);
1009 ndr_print_uint16(ndr
, "opcode", r
->opcode
);
1010 ndr_print_uint16(ndr
, "priority", r
->priority
);
1011 ndr_print_uint16(ndr
, "_class", r
->_class
);
1012 ndr_print_uint16(ndr
, "byte_count", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen(r
->mailslot_name
) + 1 + r
->data
.length
:r
->byte_count
);
1013 ndr_print_string(ndr
, "mailslot_name", r
->mailslot_name
);
1014 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
1018 static enum ndr_err_code
ndr_push_smb_body(struct ndr_push
*ndr
, int ndr_flags
, const union smb_body
*r
)
1020 if (ndr_flags
& NDR_SCALARS
) {
1021 int level
= ndr_push_get_switch_value(ndr
, r
);
1023 case SMB_TRANSACTION
: {
1024 NDR_CHECK(ndr_push_smb_trans_body(ndr
, NDR_SCALARS
, &r
->trans
));
1028 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1031 if (ndr_flags
& NDR_BUFFERS
) {
1032 int level
= ndr_push_get_switch_value(ndr
, r
);
1034 case SMB_TRANSACTION
:
1038 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1041 return NDR_ERR_SUCCESS
;
1044 static enum ndr_err_code
ndr_pull_smb_body(struct ndr_pull
*ndr
, int ndr_flags
, union smb_body
*r
)
1047 level
= ndr_pull_get_switch_value(ndr
, r
);
1048 if (ndr_flags
& NDR_SCALARS
) {
1050 case SMB_TRANSACTION
: {
1051 NDR_CHECK(ndr_pull_smb_trans_body(ndr
, NDR_SCALARS
, &r
->trans
));
1055 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1058 if (ndr_flags
& NDR_BUFFERS
) {
1060 case SMB_TRANSACTION
:
1064 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1067 return NDR_ERR_SUCCESS
;
1070 _PUBLIC_
void ndr_print_smb_body(struct ndr_print
*ndr
, const char *name
, const union smb_body
*r
)
1073 level
= ndr_print_get_switch_value(ndr
, r
);
1074 ndr_print_union(ndr
, name
, level
, "smb_body");
1076 case SMB_TRANSACTION
:
1077 ndr_print_smb_trans_body(ndr
, "trans", &r
->trans
);
1081 ndr_print_bad_level(ndr
, name
, level
);
1085 _PUBLIC_
enum ndr_err_code
ndr_push_dgram_smb_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct dgram_smb_packet
*r
)
1088 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1089 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_LITTLE_ENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1090 if (ndr_flags
& NDR_SCALARS
) {
1091 NDR_CHECK(ndr_push_align(ndr
, 4));
1092 NDR_CHECK(ndr_push_smb_command(ndr
, NDR_SCALARS
, r
->smb_command
));
1093 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->err_class
));
1094 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pad
));
1095 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->err_code
));
1096 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->flags
));
1097 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->flags2
));
1098 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->pid_high
));
1099 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->signature
, 8));
1100 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->reserved
));
1101 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->tid
));
1102 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->pid
));
1103 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->vuid
));
1104 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->mid
));
1105 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->body
, r
->smb_command
));
1106 NDR_CHECK(ndr_push_smb_body(ndr
, NDR_SCALARS
, &r
->body
));
1108 if (ndr_flags
& NDR_BUFFERS
) {
1110 ndr
->flags
= _flags_save_STRUCT
;
1112 return NDR_ERR_SUCCESS
;
1115 _PUBLIC_
enum ndr_err_code
ndr_pull_dgram_smb_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct dgram_smb_packet
*r
)
1118 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1119 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_LITTLE_ENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1120 if (ndr_flags
& NDR_SCALARS
) {
1121 NDR_CHECK(ndr_pull_align(ndr
, 4));
1122 NDR_CHECK(ndr_pull_smb_command(ndr
, NDR_SCALARS
, &r
->smb_command
));
1123 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->err_class
));
1124 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pad
));
1125 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->err_code
));
1126 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->flags
));
1127 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->flags2
));
1128 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->pid_high
));
1129 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->signature
, 8));
1130 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->reserved
));
1131 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->tid
));
1132 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->pid
));
1133 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->vuid
));
1134 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->mid
));
1135 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->body
, r
->smb_command
));
1136 NDR_CHECK(ndr_pull_smb_body(ndr
, NDR_SCALARS
, &r
->body
));
1138 if (ndr_flags
& NDR_BUFFERS
) {
1140 ndr
->flags
= _flags_save_STRUCT
;
1142 return NDR_ERR_SUCCESS
;
1145 _PUBLIC_
void ndr_print_dgram_smb_packet(struct ndr_print
*ndr
, const char *name
, const struct dgram_smb_packet
*r
)
1147 ndr_print_struct(ndr
, name
, "dgram_smb_packet");
1149 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_LITTLE_ENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1152 ndr_print_smb_command(ndr
, "smb_command", r
->smb_command
);
1153 ndr_print_uint8(ndr
, "err_class", r
->err_class
);
1154 ndr_print_uint8(ndr
, "pad", r
->pad
);
1155 ndr_print_uint16(ndr
, "err_code", r
->err_code
);
1156 ndr_print_uint8(ndr
, "flags", r
->flags
);
1157 ndr_print_uint16(ndr
, "flags2", r
->flags2
);
1158 ndr_print_uint16(ndr
, "pid_high", r
->pid_high
);
1159 ndr_print_array_uint8(ndr
, "signature", r
->signature
, 8);
1160 ndr_print_uint16(ndr
, "reserved", r
->reserved
);
1161 ndr_print_uint16(ndr
, "tid", r
->tid
);
1162 ndr_print_uint16(ndr
, "pid", r
->pid
);
1163 ndr_print_uint16(ndr
, "vuid", r
->vuid
);
1164 ndr_print_uint16(ndr
, "mid", r
->mid
);
1165 ndr_print_set_switch_value(ndr
, &r
->body
, r
->smb_command
);
1166 ndr_print_smb_body(ndr
, "body", &r
->body
);
1168 ndr
->flags
= _flags_save_STRUCT
;
1172 static enum ndr_err_code
ndr_push_dgram_message_body(struct ndr_push
*ndr
, int ndr_flags
, const union dgram_message_body
*r
)
1174 if (ndr_flags
& NDR_SCALARS
) {
1175 int level
= ndr_push_get_switch_value(ndr
, r
);
1178 NDR_CHECK(ndr_push_dgram_smb_packet(ndr
, NDR_SCALARS
, &r
->smb
));
1182 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1185 if (ndr_flags
& NDR_BUFFERS
) {
1186 int level
= ndr_push_get_switch_value(ndr
, r
);
1192 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1195 return NDR_ERR_SUCCESS
;
1198 static enum ndr_err_code
ndr_pull_dgram_message_body(struct ndr_pull
*ndr
, int ndr_flags
, union dgram_message_body
*r
)
1201 level
= ndr_pull_get_switch_value(ndr
, r
);
1202 if (ndr_flags
& NDR_SCALARS
) {
1205 NDR_CHECK(ndr_pull_dgram_smb_packet(ndr
, NDR_SCALARS
, &r
->smb
));
1209 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1212 if (ndr_flags
& NDR_BUFFERS
) {
1218 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1221 return NDR_ERR_SUCCESS
;
1224 _PUBLIC_
void ndr_print_dgram_message_body(struct ndr_print
*ndr
, const char *name
, const union dgram_message_body
*r
)
1227 level
= ndr_print_get_switch_value(ndr
, r
);
1228 ndr_print_union(ndr
, name
, level
, "dgram_message_body");
1231 ndr_print_dgram_smb_packet(ndr
, "smb", &r
->smb
);
1235 ndr_print_bad_level(ndr
, name
, level
);
1239 static enum ndr_err_code
ndr_push_dgram_message(struct ndr_push
*ndr
, int ndr_flags
, const struct dgram_message
*r
)
1241 if (ndr_flags
& NDR_SCALARS
) {
1242 NDR_CHECK(ndr_push_align(ndr
, 4));
1243 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
1244 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->offset
));
1245 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->source_name
));
1246 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dgram_body_type
));
1248 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->body
, r
->dgram_body_type
));
1249 NDR_CHECK(ndr_push_dgram_message_body(ndr
, NDR_SCALARS
, &r
->body
));
1251 if (ndr_flags
& NDR_BUFFERS
) {
1253 return NDR_ERR_SUCCESS
;
1256 static enum ndr_err_code
ndr_pull_dgram_message(struct ndr_pull
*ndr
, int ndr_flags
, struct dgram_message
*r
)
1258 if (ndr_flags
& NDR_SCALARS
) {
1259 NDR_CHECK(ndr_pull_align(ndr
, 4));
1260 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
1261 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->offset
));
1262 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->source_name
));
1263 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1264 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dgram_body_type
));
1265 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->body
, r
->dgram_body_type
));
1266 NDR_CHECK(ndr_pull_dgram_message_body(ndr
, NDR_SCALARS
, &r
->body
));
1268 if (ndr_flags
& NDR_BUFFERS
) {
1270 return NDR_ERR_SUCCESS
;
1273 _PUBLIC_
void ndr_print_dgram_message(struct ndr_print
*ndr
, const char *name
, const struct dgram_message
*r
)
1275 ndr_print_struct(ndr
, name
, "dgram_message");
1277 ndr_print_uint16(ndr
, "length", r
->length
);
1278 ndr_print_uint16(ndr
, "offset", r
->offset
);
1279 ndr_print_nbt_name(ndr
, "source_name", &r
->source_name
);
1280 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1281 ndr_print_uint32(ndr
, "dgram_body_type", r
->dgram_body_type
);
1282 ndr_print_set_switch_value(ndr
, &r
->body
, r
->dgram_body_type
);
1283 ndr_print_dgram_message_body(ndr
, "body", &r
->body
);
1287 static enum ndr_err_code
ndr_push_dgram_err_code(struct ndr_push
*ndr
, int ndr_flags
, enum dgram_err_code r
)
1289 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
1290 return NDR_ERR_SUCCESS
;
1293 static enum ndr_err_code
ndr_pull_dgram_err_code(struct ndr_pull
*ndr
, int ndr_flags
, enum dgram_err_code
*r
)
1296 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
1298 return NDR_ERR_SUCCESS
;
1301 _PUBLIC_
void ndr_print_dgram_err_code(struct ndr_print
*ndr
, const char *name
, enum dgram_err_code r
)
1303 const char *val
= NULL
;
1306 case DGRAM_ERROR_NAME_NOT_PRESENT
: val
= "DGRAM_ERROR_NAME_NOT_PRESENT"; break;
1307 case DGRAM_ERROR_INVALID_SOURCE
: val
= "DGRAM_ERROR_INVALID_SOURCE"; break;
1308 case DGRAM_ERROR_INVALID_DEST
: val
= "DGRAM_ERROR_INVALID_DEST"; break;
1310 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1313 static enum ndr_err_code
ndr_push_dgram_data(struct ndr_push
*ndr
, int ndr_flags
, const union dgram_data
*r
)
1315 if (ndr_flags
& NDR_SCALARS
) {
1316 int level
= ndr_push_get_switch_value(ndr
, r
);
1318 case DGRAM_DIRECT_UNIQUE
: {
1319 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1322 case DGRAM_DIRECT_GROUP
: {
1323 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1327 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1331 NDR_CHECK(ndr_push_dgram_err_code(ndr
, NDR_SCALARS
, r
->error
));
1335 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1338 case DGRAM_QUERY_POSITIVE
: {
1339 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1342 case DGRAM_QUERY_NEGATIVE
: {
1343 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1347 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1350 if (ndr_flags
& NDR_BUFFERS
) {
1351 int level
= ndr_push_get_switch_value(ndr
, r
);
1353 case DGRAM_DIRECT_UNIQUE
:
1356 case DGRAM_DIRECT_GROUP
:
1368 case DGRAM_QUERY_POSITIVE
:
1371 case DGRAM_QUERY_NEGATIVE
:
1375 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1378 return NDR_ERR_SUCCESS
;
1381 static enum ndr_err_code
ndr_pull_dgram_data(struct ndr_pull
*ndr
, int ndr_flags
, union dgram_data
*r
)
1384 level
= ndr_pull_get_switch_value(ndr
, r
);
1385 if (ndr_flags
& NDR_SCALARS
) {
1387 case DGRAM_DIRECT_UNIQUE
: {
1388 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1391 case DGRAM_DIRECT_GROUP
: {
1392 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1396 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1400 NDR_CHECK(ndr_pull_dgram_err_code(ndr
, NDR_SCALARS
, &r
->error
));
1404 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1407 case DGRAM_QUERY_POSITIVE
: {
1408 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1411 case DGRAM_QUERY_NEGATIVE
: {
1412 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1416 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1419 if (ndr_flags
& NDR_BUFFERS
) {
1421 case DGRAM_DIRECT_UNIQUE
:
1424 case DGRAM_DIRECT_GROUP
:
1436 case DGRAM_QUERY_POSITIVE
:
1439 case DGRAM_QUERY_NEGATIVE
:
1443 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1446 return NDR_ERR_SUCCESS
;
1449 _PUBLIC_
void ndr_print_dgram_data(struct ndr_print
*ndr
, const char *name
, const union dgram_data
*r
)
1452 level
= ndr_print_get_switch_value(ndr
, r
);
1453 ndr_print_union(ndr
, name
, level
, "dgram_data");
1455 case DGRAM_DIRECT_UNIQUE
:
1456 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1459 case DGRAM_DIRECT_GROUP
:
1460 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1464 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1468 ndr_print_dgram_err_code(ndr
, "error", r
->error
);
1472 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1475 case DGRAM_QUERY_POSITIVE
:
1476 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1479 case DGRAM_QUERY_NEGATIVE
:
1480 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1484 ndr_print_bad_level(ndr
, name
, level
);
1488 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_dgram_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_dgram_packet
*r
)
1491 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1492 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1493 if (ndr_flags
& NDR_SCALARS
) {
1494 NDR_CHECK(ndr_push_align(ndr
, 4));
1495 NDR_CHECK(ndr_push_dgram_msg_type(ndr
, NDR_SCALARS
, r
->msg_type
));
1496 NDR_CHECK(ndr_push_dgram_flags(ndr
, NDR_SCALARS
, r
->flags
));
1497 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->dgram_id
));
1498 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->src_addr
));
1499 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->src_port
));
1500 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->msg_type
));
1501 NDR_CHECK(ndr_push_dgram_data(ndr
, NDR_SCALARS
, &r
->data
));
1503 if (ndr_flags
& NDR_BUFFERS
) {
1505 ndr
->flags
= _flags_save_STRUCT
;
1507 return NDR_ERR_SUCCESS
;
1510 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_dgram_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_dgram_packet
*r
)
1513 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1514 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1515 if (ndr_flags
& NDR_SCALARS
) {
1516 NDR_CHECK(ndr_pull_align(ndr
, 4));
1517 NDR_CHECK(ndr_pull_dgram_msg_type(ndr
, NDR_SCALARS
, &r
->msg_type
));
1518 NDR_CHECK(ndr_pull_dgram_flags(ndr
, NDR_SCALARS
, &r
->flags
));
1519 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->dgram_id
));
1520 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->src_addr
));
1521 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->src_port
));
1522 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->msg_type
));
1523 NDR_CHECK(ndr_pull_dgram_data(ndr
, NDR_SCALARS
, &r
->data
));
1525 if (ndr_flags
& NDR_BUFFERS
) {
1527 ndr
->flags
= _flags_save_STRUCT
;
1529 return NDR_ERR_SUCCESS
;
1532 _PUBLIC_
void ndr_print_nbt_dgram_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_dgram_packet
*r
)
1534 ndr_print_struct(ndr
, name
, "nbt_dgram_packet");
1536 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1539 ndr_print_dgram_msg_type(ndr
, "msg_type", r
->msg_type
);
1540 ndr_print_dgram_flags(ndr
, "flags", r
->flags
);
1541 ndr_print_uint16(ndr
, "dgram_id", r
->dgram_id
);
1542 ndr_print_ipv4address(ndr
, "src_addr", r
->src_addr
);
1543 ndr_print_uint16(ndr
, "src_port", r
->src_port
);
1544 ndr_print_set_switch_value(ndr
, &r
->data
, r
->msg_type
);
1545 ndr_print_dgram_data(ndr
, "data", &r
->data
);
1547 ndr
->flags
= _flags_save_STRUCT
;
1551 static enum ndr_err_code
ndr_push_nbt_netlogon_command(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_netlogon_command r
)
1553 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
1554 return NDR_ERR_SUCCESS
;
1557 static enum ndr_err_code
ndr_pull_nbt_netlogon_command(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_netlogon_command
*r
)
1560 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
1562 return NDR_ERR_SUCCESS
;
1565 _PUBLIC_
void ndr_print_nbt_netlogon_command(struct ndr_print
*ndr
, const char *name
, enum nbt_netlogon_command r
)
1567 const char *val
= NULL
;
1570 case NETLOGON_QUERY_FOR_PDC
: val
= "NETLOGON_QUERY_FOR_PDC"; break;
1571 case NETLOGON_ANNOUNCE_UAS
: val
= "NETLOGON_ANNOUNCE_UAS"; break;
1572 case NETLOGON_RESPONSE_FROM_PDC
: val
= "NETLOGON_RESPONSE_FROM_PDC"; break;
1573 case NETLOGON_QUERY_FOR_PDC2
: val
= "NETLOGON_QUERY_FOR_PDC2"; break;
1574 case NETLOGON_RESPONSE_FROM_PDC2
: val
= "NETLOGON_RESPONSE_FROM_PDC2"; break;
1575 case NETLOGON_RESPONSE_FROM_PDC_USER
: val
= "NETLOGON_RESPONSE_FROM_PDC_USER"; break;
1577 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1580 static enum ndr_err_code
ndr_push_nbt_netlogon_version(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1583 uint32_t _flags_save_BITMAP
= ndr
->flags
;
1584 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_LITTLE_ENDIAN
);
1585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1586 ndr
->flags
= _flags_save_BITMAP
;
1588 return NDR_ERR_SUCCESS
;
1591 static enum ndr_err_code
ndr_pull_nbt_netlogon_version(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1595 uint32_t _flags_save_BITMAP
= ndr
->flags
;
1596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_LITTLE_ENDIAN
);
1597 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1599 ndr
->flags
= _flags_save_BITMAP
;
1601 return NDR_ERR_SUCCESS
;
1604 _PUBLIC_
void ndr_print_nbt_netlogon_version(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1607 uint32_t _flags_save_BITMAP
= ndr
->flags
;
1608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_LITTLE_ENDIAN
);
1609 ndr_print_uint32(ndr
, name
, r
);
1611 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_1", NETLOGON_VERSION_1
, r
);
1612 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_5", NETLOGON_VERSION_5
, r
);
1613 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_5EX", NETLOGON_VERSION_5EX
, r
);
1614 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_5EX_WITH_IP", NETLOGON_VERSION_5EX_WITH_IP
, r
);
1615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_WITH_CLOSEST_SITE", NETLOGON_VERSION_WITH_CLOSEST_SITE
, r
);
1616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_AVOID_NT4_EMUL", NETLOGON_VERSION_AVOID_NT4_EMUL
, r
);
1617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_PDC", NETLOGON_VERSION_PDC
, r
);
1618 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_IP", NETLOGON_VERSION_IP
, r
);
1619 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_LOCAL", NETLOGON_VERSION_LOCAL
, r
);
1620 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERSION_GC", NETLOGON_VERSION_GC
, r
);
1622 ndr
->flags
= _flags_save_BITMAP
;
1626 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
)
1628 if (ndr_flags
& NDR_SCALARS
) {
1629 NDR_CHECK(ndr_push_align(ndr
, 4));
1631 uint32_t _flags_save_string
= ndr
->flags
;
1632 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
1633 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->computer_name
));
1634 ndr
->flags
= _flags_save_string
;
1637 uint32_t _flags_save_string
= ndr
->flags
;
1638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
1639 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mailslot_name
));
1640 ndr
->flags
= _flags_save_string
;
1643 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
1645 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
1646 ndr
->flags
= _flags_save_DATA_BLOB
;
1649 uint32_t _flags_save_string
= ndr
->flags
;
1650 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1651 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_name
));
1652 ndr
->flags
= _flags_save_string
;
1654 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, r
->nt_version
));
1655 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
1656 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
1658 if (ndr_flags
& NDR_BUFFERS
) {
1660 return NDR_ERR_SUCCESS
;
1663 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
)
1665 if (ndr_flags
& NDR_SCALARS
) {
1666 NDR_CHECK(ndr_pull_align(ndr
, 4));
1668 uint32_t _flags_save_string
= ndr
->flags
;
1669 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
1670 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->computer_name
));
1671 ndr
->flags
= _flags_save_string
;
1674 uint32_t _flags_save_string
= ndr
->flags
;
1675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
1676 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mailslot_name
));
1677 ndr
->flags
= _flags_save_string
;
1680 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1681 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
1682 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
1683 ndr
->flags
= _flags_save_DATA_BLOB
;
1686 uint32_t _flags_save_string
= ndr
->flags
;
1687 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1688 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_name
));
1689 ndr
->flags
= _flags_save_string
;
1691 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
1692 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
1693 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
1695 if (ndr_flags
& NDR_BUFFERS
) {
1697 return NDR_ERR_SUCCESS
;
1700 _PUBLIC_
void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_query_for_pdc
*r
)
1702 ndr_print_struct(ndr
, name
, "nbt_netlogon_query_for_pdc");
1704 ndr_print_string(ndr
, "computer_name", r
->computer_name
);
1705 ndr_print_string(ndr
, "mailslot_name", r
->mailslot_name
);
1706 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
1707 ndr_print_string(ndr
, "unicode_name", r
->unicode_name
);
1708 ndr_print_nbt_netlogon_version(ndr
, "nt_version", r
->nt_version
);
1709 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
1710 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
1714 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
)
1716 uint32_t cntr_unknown_0
;
1717 if (ndr_flags
& NDR_SCALARS
) {
1718 NDR_CHECK(ndr_push_align(ndr
, 4));
1719 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->request_count
));
1721 uint32_t _flags_save_string
= ndr
->flags
;
1722 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1723 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->computer_name
));
1724 ndr
->flags
= _flags_save_string
;
1727 uint32_t _flags_save_string
= ndr
->flags
;
1728 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1729 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
1730 ndr
->flags
= _flags_save_string
;
1733 uint32_t _flags_save_string
= ndr
->flags
;
1734 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
1735 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mailslot_name
));
1736 ndr
->flags
= _flags_save_string
;
1738 for (cntr_unknown_0
= 0; cntr_unknown_0
< 2; cntr_unknown_0
++) {
1739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
1741 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, r
->nt_version
));
1742 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
1743 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
1745 if (ndr_flags
& NDR_BUFFERS
) {
1747 return NDR_ERR_SUCCESS
;
1750 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
)
1752 uint32_t cntr_unknown_0
;
1753 if (ndr_flags
& NDR_SCALARS
) {
1754 NDR_CHECK(ndr_pull_align(ndr
, 4));
1755 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->request_count
));
1757 uint32_t _flags_save_string
= ndr
->flags
;
1758 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1759 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->computer_name
));
1760 ndr
->flags
= _flags_save_string
;
1763 uint32_t _flags_save_string
= ndr
->flags
;
1764 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1765 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
1766 ndr
->flags
= _flags_save_string
;
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_pull_string(ndr
, NDR_SCALARS
, &r
->mailslot_name
));
1772 ndr
->flags
= _flags_save_string
;
1774 for (cntr_unknown_0
= 0; cntr_unknown_0
< 2; cntr_unknown_0
++) {
1775 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
1777 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
1778 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
1779 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
1781 if (ndr_flags
& NDR_BUFFERS
) {
1783 return NDR_ERR_SUCCESS
;
1786 _PUBLIC_
void ndr_print_nbt_netlogon_query_for_pdc2(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_query_for_pdc2
*r
)
1788 uint32_t cntr_unknown_0
;
1789 ndr_print_struct(ndr
, name
, "nbt_netlogon_query_for_pdc2");
1791 ndr_print_uint16(ndr
, "request_count", r
->request_count
);
1792 ndr_print_string(ndr
, "computer_name", r
->computer_name
);
1793 ndr_print_string(ndr
, "user_name", r
->user_name
);
1794 ndr_print_string(ndr
, "mailslot_name", r
->mailslot_name
);
1795 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", 2);
1797 for (cntr_unknown_0
=0;cntr_unknown_0
<2;cntr_unknown_0
++) {
1799 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
1800 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1805 ndr_print_nbt_netlogon_version(ndr
, "nt_version", r
->nt_version
);
1806 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
1807 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
1811 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
)
1813 if (ndr_flags
& NDR_SCALARS
) {
1814 NDR_CHECK(ndr_push_align(ndr
, 4));
1816 uint32_t _flags_save_string
= ndr
->flags
;
1817 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
1818 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
1819 ndr
->flags
= _flags_save_string
;
1822 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
1824 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
1825 ndr
->flags
= _flags_save_DATA_BLOB
;
1828 uint32_t _flags_save_string
= ndr
->flags
;
1829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1830 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_pdc_name
));
1831 ndr
->flags
= _flags_save_string
;
1834 uint32_t _flags_save_string
= ndr
->flags
;
1835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1836 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain_name
));
1837 ndr
->flags
= _flags_save_string
;
1839 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, r
->nt_version
));
1840 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
1841 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
1843 if (ndr_flags
& NDR_BUFFERS
) {
1845 return NDR_ERR_SUCCESS
;
1848 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
)
1850 if (ndr_flags
& NDR_SCALARS
) {
1851 NDR_CHECK(ndr_pull_align(ndr
, 4));
1853 uint32_t _flags_save_string
= ndr
->flags
;
1854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
1855 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
1856 ndr
->flags
= _flags_save_string
;
1859 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
1861 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
1862 ndr
->flags
= _flags_save_DATA_BLOB
;
1865 uint32_t _flags_save_string
= ndr
->flags
;
1866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1867 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_pdc_name
));
1868 ndr
->flags
= _flags_save_string
;
1871 uint32_t _flags_save_string
= ndr
->flags
;
1872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1873 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->domain_name
));
1874 ndr
->flags
= _flags_save_string
;
1876 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
1877 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
1878 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
1880 if (ndr_flags
& NDR_BUFFERS
) {
1882 return NDR_ERR_SUCCESS
;
1885 _PUBLIC_
void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_response_from_pdc
*r
)
1887 ndr_print_struct(ndr
, name
, "nbt_netlogon_response_from_pdc");
1889 ndr_print_string(ndr
, "pdc_name", r
->pdc_name
);
1890 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
1891 ndr_print_string(ndr
, "unicode_pdc_name", r
->unicode_pdc_name
);
1892 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
1893 ndr_print_nbt_netlogon_version(ndr
, "nt_version", r
->nt_version
);
1894 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
1895 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
1899 static enum ndr_err_code
ndr_push_nbt_server_type(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1902 return NDR_ERR_SUCCESS
;
1905 static enum ndr_err_code
ndr_pull_nbt_server_type(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1908 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1910 return NDR_ERR_SUCCESS
;
1913 _PUBLIC_
void ndr_print_nbt_server_type(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1915 ndr_print_uint32(ndr
, name
, r
);
1917 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC
, r
);
1918 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC
, r
);
1919 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP
, r
);
1920 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS
, r
);
1921 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC
, r
);
1922 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV
, r
);
1923 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_CLOSEST", NBT_SERVER_CLOSEST
, r
);
1924 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_WRITABLE", NBT_SERVER_WRITABLE
, r
);
1925 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_GOOD_TIMESERV", NBT_SERVER_GOOD_TIMESERV
, r
);
1926 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_NDNC", NBT_SERVER_NDNC
, r
);
1927 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_SELECT_SECRET_DOMAIN_6", NBT_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
1928 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_FULL_SECRET_DOMAIN_6", NBT_SERVER_FULL_SECRET_DOMAIN_6
, r
);
1932 static enum ndr_err_code
ndr_push_nbt_dc_sock_addr(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_dc_sock_addr
*r
)
1934 if (ndr_flags
& NDR_SCALARS
) {
1935 NDR_CHECK(ndr_push_align(ndr
, 4));
1936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sa_family
));
1938 uint32_t _flags_save_ipv4address
= ndr
->flags
;
1939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
1940 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->pdc_ip
));
1941 ndr
->flags
= _flags_save_ipv4address
;
1944 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1945 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1946 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->remaining
));
1947 ndr
->flags
= _flags_save_DATA_BLOB
;
1950 if (ndr_flags
& NDR_BUFFERS
) {
1952 return NDR_ERR_SUCCESS
;
1955 static enum ndr_err_code
ndr_pull_nbt_dc_sock_addr(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_dc_sock_addr
*r
)
1957 if (ndr_flags
& NDR_SCALARS
) {
1958 NDR_CHECK(ndr_pull_align(ndr
, 4));
1959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sa_family
));
1961 uint32_t _flags_save_ipv4address
= ndr
->flags
;
1962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
1963 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->pdc_ip
));
1964 ndr
->flags
= _flags_save_ipv4address
;
1967 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1969 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->remaining
));
1970 ndr
->flags
= _flags_save_DATA_BLOB
;
1973 if (ndr_flags
& NDR_BUFFERS
) {
1975 return NDR_ERR_SUCCESS
;
1978 _PUBLIC_
void ndr_print_nbt_dc_sock_addr(struct ndr_print
*ndr
, const char *name
, const struct nbt_dc_sock_addr
*r
)
1980 ndr_print_struct(ndr
, name
, "nbt_dc_sock_addr");
1982 ndr_print_uint32(ndr
, "sa_family", r
->sa_family
);
1983 ndr_print_ipv4address(ndr
, "pdc_ip", r
->pdc_ip
);
1984 ndr_print_DATA_BLOB(ndr
, "remaining", r
->remaining
);
1988 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
)
1990 if (ndr_flags
& NDR_SCALARS
) {
1991 NDR_CHECK(ndr_push_align(ndr
, 4));
1993 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1995 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
1996 ndr
->flags
= _flags_save_DATA_BLOB
;
1998 NDR_CHECK(ndr_push_nbt_server_type(ndr
, NDR_SCALARS
, r
->server_type
));
1999 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2000 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->forest
));
2001 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->dns_domain
));
2002 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_dns_name
));
2003 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->domain
));
2004 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2005 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->user_name
));
2006 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->server_site
));
2007 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->client_site
));
2008 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->dc_sock_addr_size
));
2010 struct ndr_push
*_ndr_dc_sock_addr
;
2011 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2012 NDR_CHECK(ndr_push_nbt_dc_sock_addr(_ndr_dc_sock_addr
, NDR_SCALARS
, &r
->dc_sock_addr
));
2013 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2015 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, r
->nt_version
));
2016 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2017 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2019 if (ndr_flags
& NDR_BUFFERS
) {
2021 return NDR_ERR_SUCCESS
;
2024 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
)
2026 if (ndr_flags
& NDR_SCALARS
) {
2027 NDR_CHECK(ndr_pull_align(ndr
, 4));
2029 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2030 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2031 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
2032 ndr
->flags
= _flags_save_DATA_BLOB
;
2034 NDR_CHECK(ndr_pull_nbt_server_type(ndr
, NDR_SCALARS
, &r
->server_type
));
2035 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2036 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->forest
));
2037 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->dns_domain
));
2038 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_dns_name
));
2039 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->domain
));
2040 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2041 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2042 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->server_site
));
2043 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->client_site
));
2044 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->dc_sock_addr_size
));
2046 struct ndr_pull
*_ndr_dc_sock_addr
;
2047 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2048 NDR_CHECK(ndr_pull_nbt_dc_sock_addr(_ndr_dc_sock_addr
, NDR_SCALARS
, &r
->dc_sock_addr
));
2049 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2051 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
2052 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2053 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2055 if (ndr_flags
& NDR_BUFFERS
) {
2057 return NDR_ERR_SUCCESS
;
2060 _PUBLIC_
void ndr_print_nbt_netlogon_response_from_pdc2(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_response_from_pdc2
*r
)
2062 ndr_print_struct(ndr
, name
, "nbt_netlogon_response_from_pdc2");
2064 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
2065 ndr_print_nbt_server_type(ndr
, "server_type", r
->server_type
);
2066 ndr_print_GUID(ndr
, "domain_uuid", &r
->domain_uuid
);
2067 ndr_print_nbt_string(ndr
, "forest", r
->forest
);
2068 ndr_print_nbt_string(ndr
, "dns_domain", r
->dns_domain
);
2069 ndr_print_nbt_string(ndr
, "pdc_dns_name", r
->pdc_dns_name
);
2070 ndr_print_nbt_string(ndr
, "domain", r
->domain
);
2071 ndr_print_nbt_string(ndr
, "pdc_name", r
->pdc_name
);
2072 ndr_print_nbt_string(ndr
, "user_name", r
->user_name
);
2073 ndr_print_nbt_string(ndr
, "server_site", r
->server_site
);
2074 ndr_print_nbt_string(ndr
, "client_site", r
->client_site
);
2075 ndr_print_uint8(ndr
, "dc_sock_addr_size", r
->dc_sock_addr_size
);
2076 ndr_print_nbt_dc_sock_addr(ndr
, "dc_sock_addr", &r
->dc_sock_addr
);
2077 ndr_print_nbt_netlogon_version(ndr
, "nt_version", r
->nt_version
);
2078 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2079 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2083 static enum ndr_err_code
ndr_push_nbt_db_change(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_db_change
*r
)
2085 if (ndr_flags
& NDR_SCALARS
) {
2086 NDR_CHECK(ndr_push_align(ndr
, 8));
2087 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->db_index
));
2088 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->serial
));
2089 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timestamp
));
2091 if (ndr_flags
& NDR_BUFFERS
) {
2093 return NDR_ERR_SUCCESS
;
2096 static enum ndr_err_code
ndr_pull_nbt_db_change(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_db_change
*r
)
2098 if (ndr_flags
& NDR_SCALARS
) {
2099 NDR_CHECK(ndr_pull_align(ndr
, 8));
2100 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->db_index
));
2101 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->serial
));
2102 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timestamp
));
2104 if (ndr_flags
& NDR_BUFFERS
) {
2106 return NDR_ERR_SUCCESS
;
2109 _PUBLIC_
void ndr_print_nbt_db_change(struct ndr_print
*ndr
, const char *name
, const struct nbt_db_change
*r
)
2111 ndr_print_struct(ndr
, name
, "nbt_db_change");
2113 ndr_print_netr_SamDatabaseID(ndr
, "db_index", r
->db_index
);
2114 ndr_print_hyper(ndr
, "serial", r
->serial
);
2115 ndr_print_NTTIME(ndr
, "timestamp", r
->timestamp
);
2119 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
)
2121 uint32_t cntr_dbchange_0
;
2122 if (ndr_flags
& NDR_SCALARS
) {
2123 NDR_CHECK(ndr_push_align(ndr
, 8));
2124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_lo
));
2125 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
2126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pulse
));
2127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->random
));
2129 uint32_t _flags_save_string
= ndr
->flags
;
2130 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2131 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2132 ndr
->flags
= _flags_save_string
;
2135 uint32_t _flags_save_string
= ndr
->flags
;
2136 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2137 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain
));
2138 ndr
->flags
= _flags_save_string
;
2141 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2142 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2143 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
2144 ndr
->flags
= _flags_save_DATA_BLOB
;
2147 uint32_t _flags_save_string
= ndr
->flags
;
2148 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2149 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_pdc_name
));
2150 ndr
->flags
= _flags_save_string
;
2153 uint32_t _flags_save_string
= ndr
->flags
;
2154 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2155 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_domain
));
2156 ndr
->flags
= _flags_save_string
;
2158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->db_count
));
2159 for (cntr_dbchange_0
= 0; cntr_dbchange_0
< r
->db_count
; cntr_dbchange_0
++) {
2160 NDR_CHECK(ndr_push_nbt_db_change(ndr
, NDR_SCALARS
, &r
->dbchange
[cntr_dbchange_0
]));
2162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
2164 struct ndr_push
*_ndr_sid
;
2165 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_sid
, 0, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
2166 NDR_CHECK(ndr_push_dom_sid0(_ndr_sid
, NDR_SCALARS
|NDR_BUFFERS
, &r
->sid
));
2167 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_sid
, 0, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
2169 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, r
->nt_version
));
2170 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2171 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2173 if (ndr_flags
& NDR_BUFFERS
) {
2175 return NDR_ERR_SUCCESS
;
2178 static enum ndr_err_code
ndr_pull_nbt_netlogon_announce_uas(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_netlogon_announce_uas
*r
)
2180 uint32_t cntr_dbchange_0
;
2181 TALLOC_CTX
*_mem_save_dbchange_0
;
2182 if (ndr_flags
& NDR_SCALARS
) {
2183 NDR_CHECK(ndr_pull_align(ndr
, 8));
2184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_lo
));
2185 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
2186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pulse
));
2187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->random
));
2189 uint32_t _flags_save_string
= ndr
->flags
;
2190 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2191 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2192 ndr
->flags
= _flags_save_string
;
2195 uint32_t _flags_save_string
= ndr
->flags
;
2196 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2197 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->domain
));
2198 ndr
->flags
= _flags_save_string
;
2201 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2202 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2203 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
2204 ndr
->flags
= _flags_save_DATA_BLOB
;
2207 uint32_t _flags_save_string
= ndr
->flags
;
2208 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2209 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_pdc_name
));
2210 ndr
->flags
= _flags_save_string
;
2213 uint32_t _flags_save_string
= ndr
->flags
;
2214 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2215 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_domain
));
2216 ndr
->flags
= _flags_save_string
;
2218 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->db_count
));
2219 NDR_PULL_ALLOC_N(ndr
, r
->dbchange
, r
->db_count
);
2220 _mem_save_dbchange_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2221 NDR_PULL_SET_MEM_CTX(ndr
, r
->dbchange
, 0);
2222 for (cntr_dbchange_0
= 0; cntr_dbchange_0
< r
->db_count
; cntr_dbchange_0
++) {
2223 NDR_CHECK(ndr_pull_nbt_db_change(ndr
, NDR_SCALARS
, &r
->dbchange
[cntr_dbchange_0
]));
2225 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dbchange_0
, 0);
2226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sid_size
));
2228 struct ndr_pull
*_ndr_sid
;
2229 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_sid
, 0, r
->sid_size
));
2230 NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid
, NDR_SCALARS
|NDR_BUFFERS
, &r
->sid
));
2231 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_sid
, 0, r
->sid_size
));
2233 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
2234 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2235 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2237 if (ndr_flags
& NDR_BUFFERS
) {
2239 return NDR_ERR_SUCCESS
;
2242 _PUBLIC_
void ndr_print_nbt_netlogon_announce_uas(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_announce_uas
*r
)
2244 uint32_t cntr_dbchange_0
;
2245 ndr_print_struct(ndr
, name
, "nbt_netlogon_announce_uas");
2247 ndr_print_uint32(ndr
, "serial_lo", r
->serial_lo
);
2248 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
2249 ndr_print_uint32(ndr
, "pulse", r
->pulse
);
2250 ndr_print_uint32(ndr
, "random", r
->random
);
2251 ndr_print_string(ndr
, "pdc_name", r
->pdc_name
);
2252 ndr_print_string(ndr
, "domain", r
->domain
);
2253 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
2254 ndr_print_string(ndr
, "unicode_pdc_name", r
->unicode_pdc_name
);
2255 ndr_print_string(ndr
, "unicode_domain", r
->unicode_domain
);
2256 ndr_print_uint32(ndr
, "db_count", r
->db_count
);
2257 ndr
->print(ndr
, "%s: ARRAY(%d)", "dbchange", r
->db_count
);
2259 for (cntr_dbchange_0
=0;cntr_dbchange_0
<r
->db_count
;cntr_dbchange_0
++) {
2261 if (asprintf(&idx_0
, "[%d]", cntr_dbchange_0
) != -1) {
2262 ndr_print_nbt_db_change(ndr
, "dbchange", &r
->dbchange
[cntr_dbchange_0
]);
2267 ndr_print_uint32(ndr
, "sid_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_dom_sid0(&r
->sid
, ndr
->flags
):r
->sid_size
);
2268 ndr_print_dom_sid0(ndr
, "sid", &r
->sid
);
2269 ndr_print_nbt_netlogon_version(ndr
, "nt_version", r
->nt_version
);
2270 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2271 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2275 static enum ndr_err_code
ndr_push_nbt_netlogon_request(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_netlogon_request
*r
)
2277 if (ndr_flags
& NDR_SCALARS
) {
2278 int level
= ndr_push_get_switch_value(ndr
, r
);
2280 case NETLOGON_QUERY_FOR_PDC
: {
2281 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr
, NDR_SCALARS
, &r
->pdc
));
2284 case NETLOGON_QUERY_FOR_PDC2
: {
2285 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc2(ndr
, NDR_SCALARS
, &r
->pdc2
));
2288 case NETLOGON_ANNOUNCE_UAS
: {
2289 NDR_CHECK(ndr_push_nbt_netlogon_announce_uas(ndr
, NDR_SCALARS
, &r
->uas
));
2292 case NETLOGON_RESPONSE_FROM_PDC
: {
2293 NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc(ndr
, NDR_SCALARS
, &r
->response
));
2296 case NETLOGON_RESPONSE_FROM_PDC2
: {
2297 NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr
, NDR_SCALARS
, &r
->response2
));
2300 case NETLOGON_RESPONSE_FROM_PDC_USER
: {
2301 NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr
, NDR_SCALARS
, &r
->response2
));
2305 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
2308 if (ndr_flags
& NDR_BUFFERS
) {
2309 int level
= ndr_push_get_switch_value(ndr
, r
);
2311 case NETLOGON_QUERY_FOR_PDC
:
2314 case NETLOGON_QUERY_FOR_PDC2
:
2317 case NETLOGON_ANNOUNCE_UAS
:
2318 NDR_CHECK(ndr_push_nbt_netlogon_announce_uas(ndr
, NDR_BUFFERS
, &r
->uas
));
2321 case NETLOGON_RESPONSE_FROM_PDC
:
2324 case NETLOGON_RESPONSE_FROM_PDC2
:
2327 case NETLOGON_RESPONSE_FROM_PDC_USER
:
2331 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
2334 return NDR_ERR_SUCCESS
;
2337 static enum ndr_err_code
ndr_pull_nbt_netlogon_request(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_netlogon_request
*r
)
2340 level
= ndr_pull_get_switch_value(ndr
, r
);
2341 if (ndr_flags
& NDR_SCALARS
) {
2343 case NETLOGON_QUERY_FOR_PDC
: {
2344 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr
, NDR_SCALARS
, &r
->pdc
));
2347 case NETLOGON_QUERY_FOR_PDC2
: {
2348 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc2(ndr
, NDR_SCALARS
, &r
->pdc2
));
2351 case NETLOGON_ANNOUNCE_UAS
: {
2352 NDR_CHECK(ndr_pull_nbt_netlogon_announce_uas(ndr
, NDR_SCALARS
, &r
->uas
));
2355 case NETLOGON_RESPONSE_FROM_PDC
: {
2356 NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc(ndr
, NDR_SCALARS
, &r
->response
));
2359 case NETLOGON_RESPONSE_FROM_PDC2
: {
2360 NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr
, NDR_SCALARS
, &r
->response2
));
2363 case NETLOGON_RESPONSE_FROM_PDC_USER
: {
2364 NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr
, NDR_SCALARS
, &r
->response2
));
2368 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
2371 if (ndr_flags
& NDR_BUFFERS
) {
2373 case NETLOGON_QUERY_FOR_PDC
:
2376 case NETLOGON_QUERY_FOR_PDC2
:
2379 case NETLOGON_ANNOUNCE_UAS
:
2380 NDR_CHECK(ndr_pull_nbt_netlogon_announce_uas(ndr
, NDR_BUFFERS
, &r
->uas
));
2383 case NETLOGON_RESPONSE_FROM_PDC
:
2386 case NETLOGON_RESPONSE_FROM_PDC2
:
2389 case NETLOGON_RESPONSE_FROM_PDC_USER
:
2393 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
2396 return NDR_ERR_SUCCESS
;
2399 _PUBLIC_
void ndr_print_nbt_netlogon_request(struct ndr_print
*ndr
, const char *name
, const union nbt_netlogon_request
*r
)
2402 level
= ndr_print_get_switch_value(ndr
, r
);
2403 ndr_print_union(ndr
, name
, level
, "nbt_netlogon_request");
2405 case NETLOGON_QUERY_FOR_PDC
:
2406 ndr_print_nbt_netlogon_query_for_pdc(ndr
, "pdc", &r
->pdc
);
2409 case NETLOGON_QUERY_FOR_PDC2
:
2410 ndr_print_nbt_netlogon_query_for_pdc2(ndr
, "pdc2", &r
->pdc2
);
2413 case NETLOGON_ANNOUNCE_UAS
:
2414 ndr_print_nbt_netlogon_announce_uas(ndr
, "uas", &r
->uas
);
2417 case NETLOGON_RESPONSE_FROM_PDC
:
2418 ndr_print_nbt_netlogon_response_from_pdc(ndr
, "response", &r
->response
);
2421 case NETLOGON_RESPONSE_FROM_PDC2
:
2422 ndr_print_nbt_netlogon_response_from_pdc2(ndr
, "response2", &r
->response2
);
2425 case NETLOGON_RESPONSE_FROM_PDC_USER
:
2426 ndr_print_nbt_netlogon_response_from_pdc2(ndr
, "response2", &r
->response2
);
2430 ndr_print_bad_level(ndr
, name
, level
);
2434 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_netlogon_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_netlogon_packet
*r
)
2437 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2438 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2439 if (ndr_flags
& NDR_SCALARS
) {
2440 NDR_CHECK(ndr_push_align(ndr
, 8));
2441 NDR_CHECK(ndr_push_nbt_netlogon_command(ndr
, NDR_SCALARS
, r
->command
));
2442 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->req
, r
->command
));
2443 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr
, NDR_SCALARS
, &r
->req
));
2445 if (ndr_flags
& NDR_BUFFERS
) {
2446 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
2448 ndr
->flags
= _flags_save_STRUCT
;
2450 return NDR_ERR_SUCCESS
;
2453 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_netlogon_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_netlogon_packet
*r
)
2456 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2457 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2458 if (ndr_flags
& NDR_SCALARS
) {
2459 NDR_CHECK(ndr_pull_align(ndr
, 8));
2460 NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr
, NDR_SCALARS
, &r
->command
));
2461 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->req
, r
->command
));
2462 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr
, NDR_SCALARS
, &r
->req
));
2464 if (ndr_flags
& NDR_BUFFERS
) {
2465 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
2467 ndr
->flags
= _flags_save_STRUCT
;
2469 return NDR_ERR_SUCCESS
;
2472 _PUBLIC_
void ndr_print_nbt_netlogon_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_packet
*r
)
2474 ndr_print_struct(ndr
, name
, "nbt_netlogon_packet");
2476 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2477 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2479 ndr_print_nbt_netlogon_command(ndr
, "command", r
->command
);
2480 ndr_print_set_switch_value(ndr
, &r
->req
, r
->command
);
2481 ndr_print_nbt_netlogon_request(ndr
, "req", &r
->req
);
2483 ndr
->flags
= _flags_save_STRUCT
;
2487 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
)
2489 if (ndr_flags
& NDR_SCALARS
) {
2490 NDR_CHECK(ndr_push_align(ndr
, 4));
2491 NDR_CHECK(ndr_push_nbt_netlogon_command(ndr
, NDR_SCALARS
, r
->type
));
2493 uint32_t _flags_save_string
= ndr
->flags
;
2494 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2495 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2496 ndr
->flags
= _flags_save_string
;
2499 uint32_t _flags_save_string
= ndr
->flags
;
2500 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2501 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2502 ndr
->flags
= _flags_save_string
;
2505 uint32_t _flags_save_string
= ndr
->flags
;
2506 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2507 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain_name
));
2508 ndr
->flags
= _flags_save_string
;
2510 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, 1));
2511 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2512 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2514 if (ndr_flags
& NDR_BUFFERS
) {
2516 return NDR_ERR_SUCCESS
;
2519 static enum ndr_err_code
ndr_pull_nbt_cldap_netlogon_1(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_cldap_netlogon_1
*r
)
2521 if (ndr_flags
& NDR_SCALARS
) {
2522 NDR_CHECK(ndr_pull_align(ndr
, 4));
2523 NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr
, NDR_SCALARS
, &r
->type
));
2525 uint32_t _flags_save_string
= ndr
->flags
;
2526 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2527 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2528 ndr
->flags
= _flags_save_string
;
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
->user_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
->domain_name
));
2540 ndr
->flags
= _flags_save_string
;
2542 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
2543 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2544 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2546 if (ndr_flags
& NDR_BUFFERS
) {
2548 return NDR_ERR_SUCCESS
;
2551 _PUBLIC_
void ndr_print_nbt_cldap_netlogon_1(struct ndr_print
*ndr
, const char *name
, const struct nbt_cldap_netlogon_1
*r
)
2553 ndr_print_struct(ndr
, name
, "nbt_cldap_netlogon_1");
2555 ndr_print_nbt_netlogon_command(ndr
, "type", r
->type
);
2556 ndr_print_string(ndr
, "pdc_name", r
->pdc_name
);
2557 ndr_print_string(ndr
, "user_name", r
->user_name
);
2558 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
2559 ndr_print_nbt_netlogon_version(ndr
, "nt_version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?1:r
->nt_version
);
2560 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2561 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2565 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
)
2567 if (ndr_flags
& NDR_SCALARS
) {
2568 NDR_CHECK(ndr_push_align(ndr
, 4));
2569 NDR_CHECK(ndr_push_nbt_netlogon_command(ndr
, NDR_SCALARS
, r
->type
));
2571 uint32_t _flags_save_string
= ndr
->flags
;
2572 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2573 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2574 ndr
->flags
= _flags_save_string
;
2577 uint32_t _flags_save_string
= ndr
->flags
;
2578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2579 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2580 ndr
->flags
= _flags_save_string
;
2583 uint32_t _flags_save_string
= ndr
->flags
;
2584 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2585 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain_name
));
2586 ndr
->flags
= _flags_save_string
;
2588 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2589 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->unknown_uuid
));
2590 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->forest
));
2591 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->dns_domain
));
2592 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_dns_name
));
2593 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->pdc_ip
));
2594 NDR_CHECK(ndr_push_nbt_server_type(ndr
, NDR_SCALARS
, r
->server_type
));
2595 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, 3));
2596 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2597 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2599 if (ndr_flags
& NDR_BUFFERS
) {
2601 return NDR_ERR_SUCCESS
;
2604 static enum ndr_err_code
ndr_pull_nbt_cldap_netlogon_3(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_cldap_netlogon_3
*r
)
2606 if (ndr_flags
& NDR_SCALARS
) {
2607 NDR_CHECK(ndr_pull_align(ndr
, 4));
2608 NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr
, NDR_SCALARS
, &r
->type
));
2610 uint32_t _flags_save_string
= ndr
->flags
;
2611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2612 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2613 ndr
->flags
= _flags_save_string
;
2616 uint32_t _flags_save_string
= ndr
->flags
;
2617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2619 ndr
->flags
= _flags_save_string
;
2622 uint32_t _flags_save_string
= ndr
->flags
;
2623 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2624 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->domain_name
));
2625 ndr
->flags
= _flags_save_string
;
2627 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2628 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->unknown_uuid
));
2629 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->forest
));
2630 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->dns_domain
));
2631 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_dns_name
));
2632 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->pdc_ip
));
2633 NDR_CHECK(ndr_pull_nbt_server_type(ndr
, NDR_SCALARS
, &r
->server_type
));
2634 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
2635 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2636 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2638 if (ndr_flags
& NDR_BUFFERS
) {
2640 return NDR_ERR_SUCCESS
;
2643 _PUBLIC_
void ndr_print_nbt_cldap_netlogon_3(struct ndr_print
*ndr
, const char *name
, const struct nbt_cldap_netlogon_3
*r
)
2645 ndr_print_struct(ndr
, name
, "nbt_cldap_netlogon_3");
2647 ndr_print_nbt_netlogon_command(ndr
, "type", r
->type
);
2648 ndr_print_string(ndr
, "pdc_name", r
->pdc_name
);
2649 ndr_print_string(ndr
, "user_name", r
->user_name
);
2650 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
2651 ndr_print_GUID(ndr
, "domain_uuid", &r
->domain_uuid
);
2652 ndr_print_GUID(ndr
, "unknown_uuid", &r
->unknown_uuid
);
2653 ndr_print_nbt_string(ndr
, "forest", r
->forest
);
2654 ndr_print_nbt_string(ndr
, "dns_domain", r
->dns_domain
);
2655 ndr_print_nbt_string(ndr
, "pdc_dns_name", r
->pdc_dns_name
);
2656 ndr_print_ipv4address(ndr
, "pdc_ip", r
->pdc_ip
);
2657 ndr_print_nbt_server_type(ndr
, "server_type", r
->server_type
);
2658 ndr_print_nbt_netlogon_version(ndr
, "nt_version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?3:r
->nt_version
);
2659 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2660 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2664 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_cldap_netlogon_5(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_cldap_netlogon_5
*r
)
2666 if (ndr_flags
& NDR_SCALARS
) {
2667 NDR_CHECK(ndr_push_align(ndr
, 4));
2668 NDR_CHECK(ndr_push_nbt_netlogon_command(ndr
, NDR_SCALARS
, r
->type
));
2669 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->sbz
));
2670 NDR_CHECK(ndr_push_nbt_server_type(ndr
, NDR_SCALARS
, r
->server_type
));
2671 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2672 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->forest
));
2673 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->dns_domain
));
2674 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_dns_name
));
2675 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->domain
));
2676 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2677 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->user_name
));
2678 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->server_site
));
2679 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->client_site
));
2680 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, 5));
2681 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2682 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2684 if (ndr_flags
& NDR_BUFFERS
) {
2686 return NDR_ERR_SUCCESS
;
2689 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_cldap_netlogon_5
*r
)
2691 if (ndr_flags
& NDR_SCALARS
) {
2692 NDR_CHECK(ndr_pull_align(ndr
, 4));
2693 NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr
, NDR_SCALARS
, &r
->type
));
2694 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->sbz
));
2695 NDR_CHECK(ndr_pull_nbt_server_type(ndr
, NDR_SCALARS
, &r
->server_type
));
2696 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2697 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->forest
));
2698 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->dns_domain
));
2699 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_dns_name
));
2700 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->domain
));
2701 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2702 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2703 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->server_site
));
2704 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->client_site
));
2705 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
2706 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2707 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2709 if (ndr_flags
& NDR_BUFFERS
) {
2711 return NDR_ERR_SUCCESS
;
2714 _PUBLIC_
void ndr_print_nbt_cldap_netlogon_5(struct ndr_print
*ndr
, const char *name
, const struct nbt_cldap_netlogon_5
*r
)
2716 ndr_print_struct(ndr
, name
, "nbt_cldap_netlogon_5");
2718 ndr_print_nbt_netlogon_command(ndr
, "type", r
->type
);
2719 ndr_print_uint16(ndr
, "sbz", r
->sbz
);
2720 ndr_print_nbt_server_type(ndr
, "server_type", r
->server_type
);
2721 ndr_print_GUID(ndr
, "domain_uuid", &r
->domain_uuid
);
2722 ndr_print_nbt_string(ndr
, "forest", r
->forest
);
2723 ndr_print_nbt_string(ndr
, "dns_domain", r
->dns_domain
);
2724 ndr_print_nbt_string(ndr
, "pdc_dns_name", r
->pdc_dns_name
);
2725 ndr_print_nbt_string(ndr
, "domain", r
->domain
);
2726 ndr_print_nbt_string(ndr
, "pdc_name", r
->pdc_name
);
2727 ndr_print_nbt_string(ndr
, "user_name", r
->user_name
);
2728 ndr_print_nbt_string(ndr
, "server_site", r
->server_site
);
2729 ndr_print_nbt_string(ndr
, "client_site", r
->client_site
);
2730 ndr_print_nbt_netlogon_version(ndr
, "nt_version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?5:r
->nt_version
);
2731 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2732 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2736 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
)
2738 if (ndr_flags
& NDR_SCALARS
) {
2739 NDR_CHECK(ndr_push_align(ndr
, 4));
2740 NDR_CHECK(ndr_push_nbt_netlogon_command(ndr
, NDR_SCALARS
, r
->type
));
2741 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->sbz
));
2742 NDR_CHECK(ndr_push_nbt_server_type(ndr
, NDR_SCALARS
, r
->server_type
));
2743 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2744 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->forest
));
2745 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->dns_domain
));
2746 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_dns_name
));
2747 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->domain
));
2748 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2749 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->user_name
));
2750 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->server_site
));
2751 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->client_site
));
2752 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->dc_sock_addr_size
));
2754 struct ndr_push
*_ndr_dc_sock_addr
;
2755 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2756 NDR_CHECK(ndr_push_nbt_dc_sock_addr(_ndr_dc_sock_addr
, NDR_SCALARS
, &r
->dc_sock_addr
));
2757 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2759 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, 13));
2760 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2761 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2763 if (ndr_flags
& NDR_BUFFERS
) {
2765 return NDR_ERR_SUCCESS
;
2768 static enum ndr_err_code
ndr_pull_nbt_cldap_netlogon_13(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_cldap_netlogon_13
*r
)
2770 if (ndr_flags
& NDR_SCALARS
) {
2771 NDR_CHECK(ndr_pull_align(ndr
, 4));
2772 NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr
, NDR_SCALARS
, &r
->type
));
2773 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->sbz
));
2774 NDR_CHECK(ndr_pull_nbt_server_type(ndr
, NDR_SCALARS
, &r
->server_type
));
2775 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2776 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->forest
));
2777 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->dns_domain
));
2778 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_dns_name
));
2779 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->domain
));
2780 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2781 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2782 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->server_site
));
2783 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->client_site
));
2784 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->dc_sock_addr_size
));
2786 struct ndr_pull
*_ndr_dc_sock_addr
;
2787 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2788 NDR_CHECK(ndr_pull_nbt_dc_sock_addr(_ndr_dc_sock_addr
, NDR_SCALARS
, &r
->dc_sock_addr
));
2789 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2791 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
2792 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2793 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2795 if (ndr_flags
& NDR_BUFFERS
) {
2797 return NDR_ERR_SUCCESS
;
2800 _PUBLIC_
void ndr_print_nbt_cldap_netlogon_13(struct ndr_print
*ndr
, const char *name
, const struct nbt_cldap_netlogon_13
*r
)
2802 ndr_print_struct(ndr
, name
, "nbt_cldap_netlogon_13");
2804 ndr_print_nbt_netlogon_command(ndr
, "type", r
->type
);
2805 ndr_print_uint16(ndr
, "sbz", r
->sbz
);
2806 ndr_print_nbt_server_type(ndr
, "server_type", r
->server_type
);
2807 ndr_print_GUID(ndr
, "domain_uuid", &r
->domain_uuid
);
2808 ndr_print_nbt_string(ndr
, "forest", r
->forest
);
2809 ndr_print_nbt_string(ndr
, "dns_domain", r
->dns_domain
);
2810 ndr_print_nbt_string(ndr
, "pdc_dns_name", r
->pdc_dns_name
);
2811 ndr_print_nbt_string(ndr
, "domain", r
->domain
);
2812 ndr_print_nbt_string(ndr
, "pdc_name", r
->pdc_name
);
2813 ndr_print_nbt_string(ndr
, "user_name", r
->user_name
);
2814 ndr_print_nbt_string(ndr
, "server_site", r
->server_site
);
2815 ndr_print_nbt_string(ndr
, "client_site", r
->client_site
);
2816 ndr_print_uint8(ndr
, "dc_sock_addr_size", r
->dc_sock_addr_size
);
2817 ndr_print_nbt_dc_sock_addr(ndr
, "dc_sock_addr", &r
->dc_sock_addr
);
2818 ndr_print_nbt_netlogon_version(ndr
, "nt_version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?13:r
->nt_version
);
2819 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2820 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2824 static enum ndr_err_code
ndr_push_nbt_cldap_netlogon_29(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_cldap_netlogon_29
*r
)
2826 if (ndr_flags
& NDR_SCALARS
) {
2827 NDR_CHECK(ndr_push_align(ndr
, 4));
2828 NDR_CHECK(ndr_push_nbt_netlogon_command(ndr
, NDR_SCALARS
, r
->type
));
2829 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->sbz
));
2830 NDR_CHECK(ndr_push_nbt_server_type(ndr
, NDR_SCALARS
, r
->server_type
));
2831 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2832 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->forest
));
2833 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->dns_domain
));
2834 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_dns_name
));
2835 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->domain
));
2836 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2837 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->user_name
));
2838 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->server_site
));
2839 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->client_site
));
2840 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->dc_sock_addr_size
));
2842 struct ndr_push
*_ndr_dc_sock_addr
;
2843 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2844 NDR_CHECK(ndr_push_nbt_dc_sock_addr(_ndr_dc_sock_addr
, NDR_SCALARS
, &r
->dc_sock_addr
));
2845 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2847 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->next_closest_site
));
2848 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, 29));
2849 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2850 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2852 if (ndr_flags
& NDR_BUFFERS
) {
2854 return NDR_ERR_SUCCESS
;
2857 static enum ndr_err_code
ndr_pull_nbt_cldap_netlogon_29(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_cldap_netlogon_29
*r
)
2859 if (ndr_flags
& NDR_SCALARS
) {
2860 NDR_CHECK(ndr_pull_align(ndr
, 4));
2861 NDR_CHECK(ndr_pull_nbt_netlogon_command(ndr
, NDR_SCALARS
, &r
->type
));
2862 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->sbz
));
2863 NDR_CHECK(ndr_pull_nbt_server_type(ndr
, NDR_SCALARS
, &r
->server_type
));
2864 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
2865 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->forest
));
2866 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->dns_domain
));
2867 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_dns_name
));
2868 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->domain
));
2869 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2870 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2871 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->server_site
));
2872 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->client_site
));
2873 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->dc_sock_addr_size
));
2875 struct ndr_pull
*_ndr_dc_sock_addr
;
2876 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2877 NDR_CHECK(ndr_pull_nbt_dc_sock_addr(_ndr_dc_sock_addr
, NDR_SCALARS
, &r
->dc_sock_addr
));
2878 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_dc_sock_addr
, 0, r
->dc_sock_addr_size
));
2880 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->next_closest_site
));
2881 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
2882 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2883 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2885 if (ndr_flags
& NDR_BUFFERS
) {
2887 return NDR_ERR_SUCCESS
;
2890 _PUBLIC_
void ndr_print_nbt_cldap_netlogon_29(struct ndr_print
*ndr
, const char *name
, const struct nbt_cldap_netlogon_29
*r
)
2892 ndr_print_struct(ndr
, name
, "nbt_cldap_netlogon_29");
2894 ndr_print_nbt_netlogon_command(ndr
, "type", r
->type
);
2895 ndr_print_uint16(ndr
, "sbz", r
->sbz
);
2896 ndr_print_nbt_server_type(ndr
, "server_type", r
->server_type
);
2897 ndr_print_GUID(ndr
, "domain_uuid", &r
->domain_uuid
);
2898 ndr_print_nbt_string(ndr
, "forest", r
->forest
);
2899 ndr_print_nbt_string(ndr
, "dns_domain", r
->dns_domain
);
2900 ndr_print_nbt_string(ndr
, "pdc_dns_name", r
->pdc_dns_name
);
2901 ndr_print_nbt_string(ndr
, "domain", r
->domain
);
2902 ndr_print_nbt_string(ndr
, "pdc_name", r
->pdc_name
);
2903 ndr_print_nbt_string(ndr
, "user_name", r
->user_name
);
2904 ndr_print_nbt_string(ndr
, "server_site", r
->server_site
);
2905 ndr_print_nbt_string(ndr
, "client_site", r
->client_site
);
2906 ndr_print_uint8(ndr
, "dc_sock_addr_size", r
->dc_sock_addr_size
);
2907 ndr_print_nbt_dc_sock_addr(ndr
, "dc_sock_addr", &r
->dc_sock_addr
);
2908 ndr_print_nbt_string(ndr
, "next_closest_site", r
->next_closest_site
);
2909 ndr_print_nbt_netlogon_version(ndr
, "nt_version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?29:r
->nt_version
);
2910 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2911 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2915 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_cldap_netlogon(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_cldap_netlogon
*r
)
2918 uint32_t _flags_save_UNION
= ndr
->flags
;
2919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2920 if (ndr_flags
& NDR_SCALARS
) {
2921 int level
= ndr_push_get_switch_value(ndr
, r
);
2924 NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr
, NDR_SCALARS
, &r
->logon1
));
2928 NDR_CHECK(ndr_push_nbt_cldap_netlogon_1(ndr
, NDR_SCALARS
, &r
->logon1
));
2932 NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr
, NDR_SCALARS
, &r
->logon3
));
2936 NDR_CHECK(ndr_push_nbt_cldap_netlogon_3(ndr
, NDR_SCALARS
, &r
->logon3
));
2940 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
2944 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
2948 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
2952 NDR_CHECK(ndr_push_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
2956 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2960 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2964 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2968 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2972 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2976 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2980 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2984 NDR_CHECK(ndr_push_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
2988 NDR_CHECK(ndr_push_nbt_cldap_netlogon_29(ndr
, NDR_SCALARS
, &r
->logon29
));
2993 if (ndr_flags
& NDR_BUFFERS
) {
2994 int level
= ndr_push_get_switch_value(ndr
, r
);
3049 ndr
->flags
= _flags_save_UNION
;
3051 return NDR_ERR_SUCCESS
;
3054 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_cldap_netlogon(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_cldap_netlogon
*r
)
3058 uint32_t _flags_save_UNION
= ndr
->flags
;
3059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3060 level
= ndr_pull_get_switch_value(ndr
, r
);
3061 if (ndr_flags
& NDR_SCALARS
) {
3064 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr
, NDR_SCALARS
, &r
->logon1
));
3068 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_1(ndr
, NDR_SCALARS
, &r
->logon1
));
3072 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr
, NDR_SCALARS
, &r
->logon3
));
3076 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_3(ndr
, NDR_SCALARS
, &r
->logon3
));
3080 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
3084 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
3088 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
3092 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_5(ndr
, NDR_SCALARS
, &r
->logon5
));
3096 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3100 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3104 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3108 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3112 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3116 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3120 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3124 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_13(ndr
, NDR_SCALARS
, &r
->logon13
));
3128 NDR_CHECK(ndr_pull_nbt_cldap_netlogon_29(ndr
, NDR_SCALARS
, &r
->logon29
));
3133 if (ndr_flags
& NDR_BUFFERS
) {
3188 ndr
->flags
= _flags_save_UNION
;
3190 return NDR_ERR_SUCCESS
;
3193 _PUBLIC_
void ndr_print_nbt_cldap_netlogon(struct ndr_print
*ndr
, const char *name
, const union nbt_cldap_netlogon
*r
)
3197 uint32_t _flags_save_UNION
= ndr
->flags
;
3198 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3199 level
= ndr_print_get_switch_value(ndr
, r
);
3200 ndr_print_union(ndr
, name
, level
, "nbt_cldap_netlogon");
3203 ndr_print_nbt_cldap_netlogon_1(ndr
, "logon1", &r
->logon1
);
3207 ndr_print_nbt_cldap_netlogon_1(ndr
, "logon1", &r
->logon1
);
3211 ndr_print_nbt_cldap_netlogon_3(ndr
, "logon3", &r
->logon3
);
3215 ndr_print_nbt_cldap_netlogon_3(ndr
, "logon3", &r
->logon3
);
3219 ndr_print_nbt_cldap_netlogon_5(ndr
, "logon5", &r
->logon5
);
3223 ndr_print_nbt_cldap_netlogon_5(ndr
, "logon5", &r
->logon5
);
3227 ndr_print_nbt_cldap_netlogon_5(ndr
, "logon5", &r
->logon5
);
3231 ndr_print_nbt_cldap_netlogon_5(ndr
, "logon5", &r
->logon5
);
3235 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3239 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3243 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3247 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3251 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3255 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3259 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3263 ndr_print_nbt_cldap_netlogon_13(ndr
, "logon13", &r
->logon13
);
3267 ndr_print_nbt_cldap_netlogon_29(ndr
, "logon29", &r
->logon29
);
3271 ndr
->flags
= _flags_save_UNION
;
3275 static enum ndr_err_code
ndr_push_nbt_ntlogon_command(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_ntlogon_command r
)
3277 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
3278 return NDR_ERR_SUCCESS
;
3281 static enum ndr_err_code
ndr_pull_nbt_ntlogon_command(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_ntlogon_command
*r
)
3284 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
3286 return NDR_ERR_SUCCESS
;
3289 _PUBLIC_
void ndr_print_nbt_ntlogon_command(struct ndr_print
*ndr
, const char *name
, enum nbt_ntlogon_command r
)
3291 const char *val
= NULL
;
3294 case NTLOGON_SAM_LOGON
: val
= "NTLOGON_SAM_LOGON"; break;
3295 case NTLOGON_SAM_LOGON_REPLY
: val
= "NTLOGON_SAM_LOGON_REPLY"; break;
3296 case NTLOGON_SAM_LOGON_REPLY15
: val
= "NTLOGON_SAM_LOGON_REPLY15"; break;
3297 case NTLOGON_RESPONSE_FROM_PDC2
: val
= "NTLOGON_RESPONSE_FROM_PDC2"; break;
3299 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3302 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
)
3304 if (ndr_flags
& NDR_SCALARS
) {
3305 NDR_CHECK(ndr_push_align(ndr
, 4));
3306 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->request_count
));
3308 uint32_t _flags_save_string
= ndr
->flags
;
3309 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3310 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->computer_name
));
3311 ndr
->flags
= _flags_save_string
;
3314 uint32_t _flags_save_string
= ndr
->flags
;
3315 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3316 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3317 ndr
->flags
= _flags_save_string
;
3320 uint32_t _flags_save_string
= ndr
->flags
;
3321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3322 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mailslot_name
));
3323 ndr
->flags
= _flags_save_string
;
3325 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_control
));
3326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
3328 struct ndr_push
*_ndr_sid
;
3329 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_sid
, 0, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
3330 NDR_CHECK(ndr_push_dom_sid0(_ndr_sid
, NDR_SCALARS
|NDR_BUFFERS
, &r
->sid
));
3331 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_sid
, 0, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
3333 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, r
->nt_version
));
3334 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
3335 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
3337 if (ndr_flags
& NDR_BUFFERS
) {
3339 return NDR_ERR_SUCCESS
;
3342 static enum ndr_err_code
ndr_pull_nbt_ntlogon_sam_logon(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_ntlogon_sam_logon
*r
)
3344 if (ndr_flags
& NDR_SCALARS
) {
3345 NDR_CHECK(ndr_pull_align(ndr
, 4));
3346 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->request_count
));
3348 uint32_t _flags_save_string
= ndr
->flags
;
3349 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3350 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->computer_name
));
3351 ndr
->flags
= _flags_save_string
;
3354 uint32_t _flags_save_string
= ndr
->flags
;
3355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3356 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3357 ndr
->flags
= _flags_save_string
;
3360 uint32_t _flags_save_string
= ndr
->flags
;
3361 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3362 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mailslot_name
));
3363 ndr
->flags
= _flags_save_string
;
3365 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_control
));
3366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sid_size
));
3368 struct ndr_pull
*_ndr_sid
;
3369 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_sid
, 0, r
->sid_size
));
3370 NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid
, NDR_SCALARS
|NDR_BUFFERS
, &r
->sid
));
3371 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_sid
, 0, r
->sid_size
));
3373 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
3374 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
3375 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
3377 if (ndr_flags
& NDR_BUFFERS
) {
3379 return NDR_ERR_SUCCESS
;
3382 _PUBLIC_
void ndr_print_nbt_ntlogon_sam_logon(struct ndr_print
*ndr
, const char *name
, const struct nbt_ntlogon_sam_logon
*r
)
3384 ndr_print_struct(ndr
, name
, "nbt_ntlogon_sam_logon");
3386 ndr_print_uint16(ndr
, "request_count", r
->request_count
);
3387 ndr_print_string(ndr
, "computer_name", r
->computer_name
);
3388 ndr_print_string(ndr
, "user_name", r
->user_name
);
3389 ndr_print_string(ndr
, "mailslot_name", r
->mailslot_name
);
3390 ndr_print_samr_AcctFlags(ndr
, "acct_control", r
->acct_control
);
3391 ndr_print_uint32(ndr
, "sid_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_dom_sid0(&r
->sid
, ndr
->flags
):r
->sid_size
);
3392 ndr_print_dom_sid0(ndr
, "sid", &r
->sid
);
3393 ndr_print_nbt_netlogon_version(ndr
, "nt_version", r
->nt_version
);
3394 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
3395 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
3399 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
)
3401 if (ndr_flags
& NDR_SCALARS
) {
3402 NDR_CHECK(ndr_push_align(ndr
, 4));
3404 uint32_t _flags_save_string
= ndr
->flags
;
3405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3406 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server
));
3407 ndr
->flags
= _flags_save_string
;
3410 uint32_t _flags_save_string
= ndr
->flags
;
3411 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3412 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3413 ndr
->flags
= _flags_save_string
;
3416 uint32_t _flags_save_string
= ndr
->flags
;
3417 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3418 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain
));
3419 ndr
->flags
= _flags_save_string
;
3421 NDR_CHECK(ndr_push_nbt_netlogon_version(ndr
, NDR_SCALARS
, r
->nt_version
));
3422 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
3423 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
3425 if (ndr_flags
& NDR_BUFFERS
) {
3427 return NDR_ERR_SUCCESS
;
3430 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
)
3432 if (ndr_flags
& NDR_SCALARS
) {
3433 NDR_CHECK(ndr_pull_align(ndr
, 4));
3435 uint32_t _flags_save_string
= ndr
->flags
;
3436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3437 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server
));
3438 ndr
->flags
= _flags_save_string
;
3441 uint32_t _flags_save_string
= ndr
->flags
;
3442 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3443 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3444 ndr
->flags
= _flags_save_string
;
3447 uint32_t _flags_save_string
= ndr
->flags
;
3448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3449 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->domain
));
3450 ndr
->flags
= _flags_save_string
;
3452 NDR_CHECK(ndr_pull_nbt_netlogon_version(ndr
, NDR_SCALARS
, &r
->nt_version
));
3453 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
3454 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
3456 if (ndr_flags
& NDR_BUFFERS
) {
3458 return NDR_ERR_SUCCESS
;
3461 _PUBLIC_
void ndr_print_nbt_ntlogon_sam_logon_reply(struct ndr_print
*ndr
, const char *name
, const struct nbt_ntlogon_sam_logon_reply
*r
)
3463 ndr_print_struct(ndr
, name
, "nbt_ntlogon_sam_logon_reply");
3465 ndr_print_string(ndr
, "server", r
->server
);
3466 ndr_print_string(ndr
, "user_name", r
->user_name
);
3467 ndr_print_string(ndr
, "domain", r
->domain
);
3468 ndr_print_nbt_netlogon_version(ndr
, "nt_version", r
->nt_version
);
3469 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
3470 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
3474 static enum ndr_err_code
ndr_push_nbt_ntlogon_request(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_ntlogon_request
*r
)
3476 if (ndr_flags
& NDR_SCALARS
) {
3477 int level
= ndr_push_get_switch_value(ndr
, r
);
3479 case NTLOGON_SAM_LOGON
: {
3480 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon(ndr
, NDR_SCALARS
, &r
->logon
));
3483 case NTLOGON_SAM_LOGON_REPLY
: {
3484 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon_reply(ndr
, NDR_SCALARS
, &r
->reply
));
3487 case NTLOGON_SAM_LOGON_REPLY15
: {
3488 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon_reply(ndr
, NDR_SCALARS
, &r
->reply
));
3491 case NTLOGON_RESPONSE_FROM_PDC2
: {
3492 NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr
, NDR_SCALARS
, &r
->reply2
));
3496 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3499 if (ndr_flags
& NDR_BUFFERS
) {
3500 int level
= ndr_push_get_switch_value(ndr
, r
);
3502 case NTLOGON_SAM_LOGON
:
3503 NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon(ndr
, NDR_BUFFERS
, &r
->logon
));
3506 case NTLOGON_SAM_LOGON_REPLY
:
3509 case NTLOGON_SAM_LOGON_REPLY15
:
3512 case NTLOGON_RESPONSE_FROM_PDC2
:
3516 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3519 return NDR_ERR_SUCCESS
;
3522 static enum ndr_err_code
ndr_pull_nbt_ntlogon_request(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_ntlogon_request
*r
)
3525 level
= ndr_pull_get_switch_value(ndr
, r
);
3526 if (ndr_flags
& NDR_SCALARS
) {
3528 case NTLOGON_SAM_LOGON
: {
3529 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon(ndr
, NDR_SCALARS
, &r
->logon
));
3532 case NTLOGON_SAM_LOGON_REPLY
: {
3533 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon_reply(ndr
, NDR_SCALARS
, &r
->reply
));
3536 case NTLOGON_SAM_LOGON_REPLY15
: {
3537 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon_reply(ndr
, NDR_SCALARS
, &r
->reply
));
3540 case NTLOGON_RESPONSE_FROM_PDC2
: {
3541 NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr
, NDR_SCALARS
, &r
->reply2
));
3545 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3548 if (ndr_flags
& NDR_BUFFERS
) {
3550 case NTLOGON_SAM_LOGON
:
3551 NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon(ndr
, NDR_BUFFERS
, &r
->logon
));
3554 case NTLOGON_SAM_LOGON_REPLY
:
3557 case NTLOGON_SAM_LOGON_REPLY15
:
3560 case NTLOGON_RESPONSE_FROM_PDC2
:
3564 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3567 return NDR_ERR_SUCCESS
;
3570 _PUBLIC_
void ndr_print_nbt_ntlogon_request(struct ndr_print
*ndr
, const char *name
, const union nbt_ntlogon_request
*r
)
3573 level
= ndr_print_get_switch_value(ndr
, r
);
3574 ndr_print_union(ndr
, name
, level
, "nbt_ntlogon_request");
3576 case NTLOGON_SAM_LOGON
:
3577 ndr_print_nbt_ntlogon_sam_logon(ndr
, "logon", &r
->logon
);
3580 case NTLOGON_SAM_LOGON_REPLY
:
3581 ndr_print_nbt_ntlogon_sam_logon_reply(ndr
, "reply", &r
->reply
);
3584 case NTLOGON_SAM_LOGON_REPLY15
:
3585 ndr_print_nbt_ntlogon_sam_logon_reply(ndr
, "reply", &r
->reply
);
3588 case NTLOGON_RESPONSE_FROM_PDC2
:
3589 ndr_print_nbt_netlogon_response_from_pdc2(ndr
, "reply2", &r
->reply2
);
3593 ndr_print_bad_level(ndr
, name
, level
);
3597 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_ntlogon_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_ntlogon_packet
*r
)
3600 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3601 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3602 if (ndr_flags
& NDR_SCALARS
) {
3603 NDR_CHECK(ndr_push_align(ndr
, 4));
3604 NDR_CHECK(ndr_push_nbt_ntlogon_command(ndr
, NDR_SCALARS
, r
->command
));
3605 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->req
, r
->command
));
3606 NDR_CHECK(ndr_push_nbt_ntlogon_request(ndr
, NDR_SCALARS
, &r
->req
));
3608 if (ndr_flags
& NDR_BUFFERS
) {
3609 NDR_CHECK(ndr_push_nbt_ntlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
3611 ndr
->flags
= _flags_save_STRUCT
;
3613 return NDR_ERR_SUCCESS
;
3616 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_ntlogon_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_ntlogon_packet
*r
)
3619 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3620 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3621 if (ndr_flags
& NDR_SCALARS
) {
3622 NDR_CHECK(ndr_pull_align(ndr
, 4));
3623 NDR_CHECK(ndr_pull_nbt_ntlogon_command(ndr
, NDR_SCALARS
, &r
->command
));
3624 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->req
, r
->command
));
3625 NDR_CHECK(ndr_pull_nbt_ntlogon_request(ndr
, NDR_SCALARS
, &r
->req
));
3627 if (ndr_flags
& NDR_BUFFERS
) {
3628 NDR_CHECK(ndr_pull_nbt_ntlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
3630 ndr
->flags
= _flags_save_STRUCT
;
3632 return NDR_ERR_SUCCESS
;
3635 _PUBLIC_
void ndr_print_nbt_ntlogon_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_ntlogon_packet
*r
)
3637 ndr_print_struct(ndr
, name
, "nbt_ntlogon_packet");
3639 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3640 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3642 ndr_print_nbt_ntlogon_command(ndr
, "command", r
->command
);
3643 ndr_print_set_switch_value(ndr
, &r
->req
, r
->command
);
3644 ndr_print_nbt_ntlogon_request(ndr
, "req", &r
->req
);
3646 ndr
->flags
= _flags_save_STRUCT
;
3650 static enum ndr_err_code
ndr_push_nbt_browse_opcode(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_browse_opcode r
)
3652 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
3653 return NDR_ERR_SUCCESS
;
3656 static enum ndr_err_code
ndr_pull_nbt_browse_opcode(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_browse_opcode
*r
)
3659 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
3661 return NDR_ERR_SUCCESS
;
3664 _PUBLIC_
void ndr_print_nbt_browse_opcode(struct ndr_print
*ndr
, const char *name
, enum nbt_browse_opcode r
)
3666 const char *val
= NULL
;
3669 case HostAnnouncement
: val
= "HostAnnouncement"; break;
3670 case AnnouncementRequest
: val
= "AnnouncementRequest"; break;
3671 case Election
: val
= "Election"; break;
3672 case GetBackupListReq
: val
= "GetBackupListReq"; break;
3673 case GetBackupListResp
: val
= "GetBackupListResp"; break;
3674 case BecomeBackup
: val
= "BecomeBackup"; break;
3675 case DomainAnnouncement
: val
= "DomainAnnouncement"; break;
3676 case MasterAnnouncement
: val
= "MasterAnnouncement"; break;
3677 case ResetBrowserState
: val
= "ResetBrowserState"; break;
3678 case LocalMasterAnnouncement
: val
= "LocalMasterAnnouncement"; break;
3680 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3683 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
)
3685 if (ndr_flags
& NDR_SCALARS
) {
3686 NDR_CHECK(ndr_push_align(ndr
, 4));
3687 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->UpdateCount
));
3688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Periodicity
));
3689 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
3690 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMajor
));
3691 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMinor
));
3692 NDR_CHECK(ndr_push_svcctl_ServerType(ndr
, NDR_SCALARS
, r
->ServerType
));
3693 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMajorVer
));
3694 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMinorVer
));
3695 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Signature
));
3697 uint32_t _flags_save_string
= ndr
->flags
;
3698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3699 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->Comment
));
3700 ndr
->flags
= _flags_save_string
;
3703 if (ndr_flags
& NDR_BUFFERS
) {
3705 return NDR_ERR_SUCCESS
;
3708 static enum ndr_err_code
ndr_pull_nbt_browse_host_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_host_announcement
*r
)
3710 if (ndr_flags
& NDR_SCALARS
) {
3711 NDR_CHECK(ndr_pull_align(ndr
, 4));
3712 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->UpdateCount
));
3713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Periodicity
));
3714 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
3715 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMajor
));
3716 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMinor
));
3717 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr
, NDR_SCALARS
, &r
->ServerType
));
3718 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMajorVer
));
3719 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMinorVer
));
3720 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Signature
));
3722 uint32_t _flags_save_string
= ndr
->flags
;
3723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3724 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->Comment
));
3725 ndr
->flags
= _flags_save_string
;
3728 if (ndr_flags
& NDR_BUFFERS
) {
3730 return NDR_ERR_SUCCESS
;
3733 _PUBLIC_
void ndr_print_nbt_browse_host_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_host_announcement
*r
)
3735 ndr_print_struct(ndr
, name
, "nbt_browse_host_announcement");
3737 ndr_print_uint8(ndr
, "UpdateCount", r
->UpdateCount
);
3738 ndr_print_uint32(ndr
, "Periodicity", r
->Periodicity
);
3739 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
3740 ndr_print_uint8(ndr
, "OSMajor", r
->OSMajor
);
3741 ndr_print_uint8(ndr
, "OSMinor", r
->OSMinor
);
3742 ndr_print_svcctl_ServerType(ndr
, "ServerType", r
->ServerType
);
3743 ndr_print_uint8(ndr
, "BroMajorVer", r
->BroMajorVer
);
3744 ndr_print_uint8(ndr
, "BroMinorVer", r
->BroMinorVer
);
3745 ndr_print_uint16(ndr
, "Signature", r
->Signature
);
3746 ndr_print_string(ndr
, "Comment", r
->Comment
);
3750 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
)
3752 if (ndr_flags
& NDR_SCALARS
) {
3753 NDR_CHECK(ndr_push_align(ndr
, 4));
3754 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Unused
));
3756 uint32_t _flags_save_string
= ndr
->flags
;
3757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3758 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->ResponseName
));
3759 ndr
->flags
= _flags_save_string
;
3762 if (ndr_flags
& NDR_BUFFERS
) {
3764 return NDR_ERR_SUCCESS
;
3767 static enum ndr_err_code
ndr_pull_nbt_browse_announcement_request(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_announcement_request
*r
)
3769 if (ndr_flags
& NDR_SCALARS
) {
3770 NDR_CHECK(ndr_pull_align(ndr
, 4));
3771 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Unused
));
3773 uint32_t _flags_save_string
= ndr
->flags
;
3774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3775 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->ResponseName
));
3776 ndr
->flags
= _flags_save_string
;
3779 if (ndr_flags
& NDR_BUFFERS
) {
3781 return NDR_ERR_SUCCESS
;
3784 _PUBLIC_
void ndr_print_nbt_browse_announcement_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_announcement_request
*r
)
3786 ndr_print_struct(ndr
, name
, "nbt_browse_announcement_request");
3788 ndr_print_uint8(ndr
, "Unused", r
->Unused
);
3789 ndr_print_string(ndr
, "ResponseName", r
->ResponseName
);
3793 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
)
3795 if (ndr_flags
& NDR_SCALARS
) {
3796 NDR_CHECK(ndr_push_align(ndr
, 4));
3797 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Version
));
3798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Criteria
));
3799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->UpTime
));
3800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Reserved
));
3802 uint32_t _flags_save_string
= ndr
->flags
;
3803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3804 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->ServerName
));
3805 ndr
->flags
= _flags_save_string
;
3808 if (ndr_flags
& NDR_BUFFERS
) {
3810 return NDR_ERR_SUCCESS
;
3813 static enum ndr_err_code
ndr_pull_nbt_browse_election_request(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_election_request
*r
)
3815 if (ndr_flags
& NDR_SCALARS
) {
3816 NDR_CHECK(ndr_pull_align(ndr
, 4));
3817 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Version
));
3818 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Criteria
));
3819 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->UpTime
));
3820 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Reserved
));
3822 uint32_t _flags_save_string
= ndr
->flags
;
3823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3824 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->ServerName
));
3825 ndr
->flags
= _flags_save_string
;
3828 if (ndr_flags
& NDR_BUFFERS
) {
3830 return NDR_ERR_SUCCESS
;
3833 _PUBLIC_
void ndr_print_nbt_browse_election_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_election_request
*r
)
3835 ndr_print_struct(ndr
, name
, "nbt_browse_election_request");
3837 ndr_print_uint8(ndr
, "Version", r
->Version
);
3838 ndr_print_uint32(ndr
, "Criteria", r
->Criteria
);
3839 ndr_print_uint32(ndr
, "UpTime", r
->UpTime
);
3840 ndr_print_uint32(ndr
, "Reserved", r
->Reserved
);
3841 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
3845 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
)
3847 if (ndr_flags
& NDR_SCALARS
) {
3848 NDR_CHECK(ndr_push_align(ndr
, 4));
3849 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->ReqCount
));
3850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Token
));
3852 if (ndr_flags
& NDR_BUFFERS
) {
3854 return NDR_ERR_SUCCESS
;
3857 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
)
3859 if (ndr_flags
& NDR_SCALARS
) {
3860 NDR_CHECK(ndr_pull_align(ndr
, 4));
3861 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->ReqCount
));
3862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Token
));
3864 if (ndr_flags
& NDR_BUFFERS
) {
3866 return NDR_ERR_SUCCESS
;
3869 _PUBLIC_
void ndr_print_nbt_browse_backup_list_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_backup_list_request
*r
)
3871 ndr_print_struct(ndr
, name
, "nbt_browse_backup_list_request");
3873 ndr_print_uint8(ndr
, "ReqCount", r
->ReqCount
);
3874 ndr_print_uint32(ndr
, "Token", r
->Token
);
3878 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
)
3880 uint32_t cntr_BackupServerList_0
;
3881 if (ndr_flags
& NDR_SCALARS
) {
3882 NDR_CHECK(ndr_push_align(ndr
, 4));
3883 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BackupCount
));
3884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Token
));
3885 for (cntr_BackupServerList_0
= 0; cntr_BackupServerList_0
< r
->BackupCount
; cntr_BackupServerList_0
++) {
3886 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->BackupServerList
[cntr_BackupServerList_0
]));
3889 if (ndr_flags
& NDR_BUFFERS
) {
3891 return NDR_ERR_SUCCESS
;
3894 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
)
3896 uint32_t cntr_BackupServerList_0
;
3897 TALLOC_CTX
*_mem_save_BackupServerList_0
;
3898 if (ndr_flags
& NDR_SCALARS
) {
3899 NDR_CHECK(ndr_pull_align(ndr
, 4));
3900 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BackupCount
));
3901 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Token
));
3902 NDR_PULL_ALLOC_N(ndr
, r
->BackupServerList
, r
->BackupCount
);
3903 _mem_save_BackupServerList_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3904 NDR_PULL_SET_MEM_CTX(ndr
, r
->BackupServerList
, 0);
3905 for (cntr_BackupServerList_0
= 0; cntr_BackupServerList_0
< r
->BackupCount
; cntr_BackupServerList_0
++) {
3906 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->BackupServerList
[cntr_BackupServerList_0
]));
3908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_BackupServerList_0
, 0);
3910 if (ndr_flags
& NDR_BUFFERS
) {
3912 return NDR_ERR_SUCCESS
;
3915 _PUBLIC_
void ndr_print_nbt_browse_backup_list_response(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_backup_list_response
*r
)
3917 uint32_t cntr_BackupServerList_0
;
3918 ndr_print_struct(ndr
, name
, "nbt_browse_backup_list_response");
3920 ndr_print_uint8(ndr
, "BackupCount", r
->BackupCount
);
3921 ndr_print_uint32(ndr
, "Token", r
->Token
);
3922 ndr
->print(ndr
, "%s: ARRAY(%d)", "BackupServerList", r
->BackupCount
);
3924 for (cntr_BackupServerList_0
=0;cntr_BackupServerList_0
<r
->BackupCount
;cntr_BackupServerList_0
++) {
3926 if (asprintf(&idx_0
, "[%d]", cntr_BackupServerList_0
) != -1) {
3927 ndr_print_nbt_name(ndr
, "BackupServerList", &r
->BackupServerList
[cntr_BackupServerList_0
]);
3935 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
)
3937 if (ndr_flags
& NDR_SCALARS
) {
3938 NDR_CHECK(ndr_push_align(ndr
, 4));
3940 uint32_t _flags_save_string
= ndr
->flags
;
3941 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3942 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->BrowserName
));
3943 ndr
->flags
= _flags_save_string
;
3946 if (ndr_flags
& NDR_BUFFERS
) {
3948 return NDR_ERR_SUCCESS
;
3951 static enum ndr_err_code
ndr_pull_nbt_browse_become_backup(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_become_backup
*r
)
3953 if (ndr_flags
& NDR_SCALARS
) {
3954 NDR_CHECK(ndr_pull_align(ndr
, 4));
3956 uint32_t _flags_save_string
= ndr
->flags
;
3957 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3958 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->BrowserName
));
3959 ndr
->flags
= _flags_save_string
;
3962 if (ndr_flags
& NDR_BUFFERS
) {
3964 return NDR_ERR_SUCCESS
;
3967 _PUBLIC_
void ndr_print_nbt_browse_become_backup(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_become_backup
*r
)
3969 ndr_print_struct(ndr
, name
, "nbt_browse_become_backup");
3971 ndr_print_string(ndr
, "BrowserName", r
->BrowserName
);
3975 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
)
3977 if (ndr_flags
& NDR_SCALARS
) {
3978 NDR_CHECK(ndr_push_align(ndr
, 4));
3979 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->UpdateCount
));
3980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Periodicity
));
3981 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
3982 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMajor
));
3983 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMinor
));
3984 NDR_CHECK(ndr_push_svcctl_ServerType(ndr
, NDR_SCALARS
, r
->ServerType
));
3985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MysteriousField
));
3987 uint32_t _flags_save_string
= ndr
->flags
;
3988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3989 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->Comment
));
3990 ndr
->flags
= _flags_save_string
;
3993 if (ndr_flags
& NDR_BUFFERS
) {
3995 return NDR_ERR_SUCCESS
;
3998 static enum ndr_err_code
ndr_pull_nbt_browse_domain_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_domain_announcement
*r
)
4000 if (ndr_flags
& NDR_SCALARS
) {
4001 NDR_CHECK(ndr_pull_align(ndr
, 4));
4002 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->UpdateCount
));
4003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Periodicity
));
4004 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
4005 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMajor
));
4006 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMinor
));
4007 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr
, NDR_SCALARS
, &r
->ServerType
));
4008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MysteriousField
));
4010 uint32_t _flags_save_string
= ndr
->flags
;
4011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
4012 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->Comment
));
4013 ndr
->flags
= _flags_save_string
;
4016 if (ndr_flags
& NDR_BUFFERS
) {
4018 return NDR_ERR_SUCCESS
;
4021 _PUBLIC_
void ndr_print_nbt_browse_domain_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_domain_announcement
*r
)
4023 ndr_print_struct(ndr
, name
, "nbt_browse_domain_announcement");
4025 ndr_print_uint8(ndr
, "UpdateCount", r
->UpdateCount
);
4026 ndr_print_uint32(ndr
, "Periodicity", r
->Periodicity
);
4027 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
4028 ndr_print_uint8(ndr
, "OSMajor", r
->OSMajor
);
4029 ndr_print_uint8(ndr
, "OSMinor", r
->OSMinor
);
4030 ndr_print_svcctl_ServerType(ndr
, "ServerType", r
->ServerType
);
4031 ndr_print_uint32(ndr
, "MysteriousField", r
->MysteriousField
);
4032 ndr_print_string(ndr
, "Comment", r
->Comment
);
4036 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
)
4038 if (ndr_flags
& NDR_SCALARS
) {
4039 NDR_CHECK(ndr_push_align(ndr
, 4));
4041 uint32_t _flags_save_string
= ndr
->flags
;
4042 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
4043 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->ServerName
));
4044 ndr
->flags
= _flags_save_string
;
4047 if (ndr_flags
& NDR_BUFFERS
) {
4049 return NDR_ERR_SUCCESS
;
4052 static enum ndr_err_code
ndr_pull_nbt_browse_master_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_master_announcement
*r
)
4054 if (ndr_flags
& NDR_SCALARS
) {
4055 NDR_CHECK(ndr_pull_align(ndr
, 4));
4057 uint32_t _flags_save_string
= ndr
->flags
;
4058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
4059 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->ServerName
));
4060 ndr
->flags
= _flags_save_string
;
4063 if (ndr_flags
& NDR_BUFFERS
) {
4065 return NDR_ERR_SUCCESS
;
4068 _PUBLIC_
void ndr_print_nbt_browse_master_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_master_announcement
*r
)
4070 ndr_print_struct(ndr
, name
, "nbt_browse_master_announcement");
4072 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
4076 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
)
4078 if (ndr_flags
& NDR_SCALARS
) {
4079 NDR_CHECK(ndr_push_align(ndr
, 1));
4080 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Command
));
4082 if (ndr_flags
& NDR_BUFFERS
) {
4084 return NDR_ERR_SUCCESS
;
4087 static enum ndr_err_code
ndr_pull_nbt_browse_reset_state(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_reset_state
*r
)
4089 if (ndr_flags
& NDR_SCALARS
) {
4090 NDR_CHECK(ndr_pull_align(ndr
, 1));
4091 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Command
));
4093 if (ndr_flags
& NDR_BUFFERS
) {
4095 return NDR_ERR_SUCCESS
;
4098 _PUBLIC_
void ndr_print_nbt_browse_reset_state(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_reset_state
*r
)
4100 ndr_print_struct(ndr
, name
, "nbt_browse_reset_state");
4102 ndr_print_uint8(ndr
, "Command", r
->Command
);
4106 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
)
4108 if (ndr_flags
& NDR_SCALARS
) {
4109 NDR_CHECK(ndr_push_align(ndr
, 4));
4110 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->UpdateCount
));
4111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Periodicity
));
4112 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
4113 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMajor
));
4114 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMinor
));
4115 NDR_CHECK(ndr_push_svcctl_ServerType(ndr
, NDR_SCALARS
, r
->ServerType
));
4116 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMajorVer
));
4117 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMinorVer
));
4118 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Signature
));
4120 uint32_t _flags_save_string
= ndr
->flags
;
4121 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
4122 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->Comment
));
4123 ndr
->flags
= _flags_save_string
;
4126 if (ndr_flags
& NDR_BUFFERS
) {
4128 return NDR_ERR_SUCCESS
;
4131 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
)
4133 if (ndr_flags
& NDR_SCALARS
) {
4134 NDR_CHECK(ndr_pull_align(ndr
, 4));
4135 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->UpdateCount
));
4136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Periodicity
));
4137 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
4138 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMajor
));
4139 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMinor
));
4140 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr
, NDR_SCALARS
, &r
->ServerType
));
4141 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMajorVer
));
4142 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMinorVer
));
4143 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Signature
));
4145 uint32_t _flags_save_string
= ndr
->flags
;
4146 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
4147 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->Comment
));
4148 ndr
->flags
= _flags_save_string
;
4151 if (ndr_flags
& NDR_BUFFERS
) {
4153 return NDR_ERR_SUCCESS
;
4156 _PUBLIC_
void ndr_print_nbt_browse_local_master_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_local_master_announcement
*r
)
4158 ndr_print_struct(ndr
, name
, "nbt_browse_local_master_announcement");
4160 ndr_print_uint8(ndr
, "UpdateCount", r
->UpdateCount
);
4161 ndr_print_uint32(ndr
, "Periodicity", r
->Periodicity
);
4162 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
4163 ndr_print_uint8(ndr
, "OSMajor", r
->OSMajor
);
4164 ndr_print_uint8(ndr
, "OSMinor", r
->OSMinor
);
4165 ndr_print_svcctl_ServerType(ndr
, "ServerType", r
->ServerType
);
4166 ndr_print_uint8(ndr
, "BroMajorVer", r
->BroMajorVer
);
4167 ndr_print_uint8(ndr
, "BroMinorVer", r
->BroMinorVer
);
4168 ndr_print_uint16(ndr
, "Signature", r
->Signature
);
4169 ndr_print_string(ndr
, "Comment", r
->Comment
);
4173 static enum ndr_err_code
ndr_push_nbt_browse_payload(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_browse_payload
*r
)
4175 if (ndr_flags
& NDR_SCALARS
) {
4176 int level
= ndr_push_get_switch_value(ndr
, r
);
4178 case HostAnnouncement
: {
4179 NDR_CHECK(ndr_push_nbt_browse_host_announcement(ndr
, NDR_SCALARS
, &r
->host_annoucement
));
4182 case AnnouncementRequest
: {
4183 NDR_CHECK(ndr_push_nbt_browse_announcement_request(ndr
, NDR_SCALARS
, &r
->announcement_request
));
4187 NDR_CHECK(ndr_push_nbt_browse_election_request(ndr
, NDR_SCALARS
, &r
->election_request
));
4190 case GetBackupListReq
: {
4191 NDR_CHECK(ndr_push_nbt_browse_backup_list_request(ndr
, NDR_SCALARS
, &r
->backup_list_request
));
4194 case GetBackupListResp
: {
4195 NDR_CHECK(ndr_push_nbt_browse_backup_list_response(ndr
, NDR_SCALARS
, &r
->backup_list_response
));
4198 case BecomeBackup
: {
4199 NDR_CHECK(ndr_push_nbt_browse_become_backup(ndr
, NDR_SCALARS
, &r
->become_backup
));
4202 case DomainAnnouncement
: {
4203 NDR_CHECK(ndr_push_nbt_browse_domain_announcement(ndr
, NDR_SCALARS
, &r
->domain_announcement
));
4206 case MasterAnnouncement
: {
4207 NDR_CHECK(ndr_push_nbt_browse_master_announcement(ndr
, NDR_SCALARS
, &r
->master_announcement
));
4210 case ResetBrowserState
: {
4211 NDR_CHECK(ndr_push_nbt_browse_reset_state(ndr
, NDR_SCALARS
, &r
->reset_browser_state
));
4214 case LocalMasterAnnouncement
: {
4215 NDR_CHECK(ndr_push_nbt_browse_local_master_announcement(ndr
, NDR_SCALARS
, &r
->local_master_announcement
));
4219 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4222 if (ndr_flags
& NDR_BUFFERS
) {
4223 int level
= ndr_push_get_switch_value(ndr
, r
);
4225 case HostAnnouncement
:
4228 case AnnouncementRequest
:
4234 case GetBackupListReq
:
4237 case GetBackupListResp
:
4243 case DomainAnnouncement
:
4246 case MasterAnnouncement
:
4249 case ResetBrowserState
:
4252 case LocalMasterAnnouncement
:
4256 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4259 return NDR_ERR_SUCCESS
;
4262 static enum ndr_err_code
ndr_pull_nbt_browse_payload(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_browse_payload
*r
)
4265 level
= ndr_pull_get_switch_value(ndr
, r
);
4266 if (ndr_flags
& NDR_SCALARS
) {
4268 case HostAnnouncement
: {
4269 NDR_CHECK(ndr_pull_nbt_browse_host_announcement(ndr
, NDR_SCALARS
, &r
->host_annoucement
));
4272 case AnnouncementRequest
: {
4273 NDR_CHECK(ndr_pull_nbt_browse_announcement_request(ndr
, NDR_SCALARS
, &r
->announcement_request
));
4277 NDR_CHECK(ndr_pull_nbt_browse_election_request(ndr
, NDR_SCALARS
, &r
->election_request
));
4280 case GetBackupListReq
: {
4281 NDR_CHECK(ndr_pull_nbt_browse_backup_list_request(ndr
, NDR_SCALARS
, &r
->backup_list_request
));
4284 case GetBackupListResp
: {
4285 NDR_CHECK(ndr_pull_nbt_browse_backup_list_response(ndr
, NDR_SCALARS
, &r
->backup_list_response
));
4288 case BecomeBackup
: {
4289 NDR_CHECK(ndr_pull_nbt_browse_become_backup(ndr
, NDR_SCALARS
, &r
->become_backup
));
4292 case DomainAnnouncement
: {
4293 NDR_CHECK(ndr_pull_nbt_browse_domain_announcement(ndr
, NDR_SCALARS
, &r
->domain_announcement
));
4296 case MasterAnnouncement
: {
4297 NDR_CHECK(ndr_pull_nbt_browse_master_announcement(ndr
, NDR_SCALARS
, &r
->master_announcement
));
4300 case ResetBrowserState
: {
4301 NDR_CHECK(ndr_pull_nbt_browse_reset_state(ndr
, NDR_SCALARS
, &r
->reset_browser_state
));
4304 case LocalMasterAnnouncement
: {
4305 NDR_CHECK(ndr_pull_nbt_browse_local_master_announcement(ndr
, NDR_SCALARS
, &r
->local_master_announcement
));
4309 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4312 if (ndr_flags
& NDR_BUFFERS
) {
4314 case HostAnnouncement
:
4317 case AnnouncementRequest
:
4323 case GetBackupListReq
:
4326 case GetBackupListResp
:
4332 case DomainAnnouncement
:
4335 case MasterAnnouncement
:
4338 case ResetBrowserState
:
4341 case LocalMasterAnnouncement
:
4345 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4348 return NDR_ERR_SUCCESS
;
4351 _PUBLIC_
void ndr_print_nbt_browse_payload(struct ndr_print
*ndr
, const char *name
, const union nbt_browse_payload
*r
)
4354 level
= ndr_print_get_switch_value(ndr
, r
);
4355 ndr_print_union(ndr
, name
, level
, "nbt_browse_payload");
4357 case HostAnnouncement
:
4358 ndr_print_nbt_browse_host_announcement(ndr
, "host_annoucement", &r
->host_annoucement
);
4361 case AnnouncementRequest
:
4362 ndr_print_nbt_browse_announcement_request(ndr
, "announcement_request", &r
->announcement_request
);
4366 ndr_print_nbt_browse_election_request(ndr
, "election_request", &r
->election_request
);
4369 case GetBackupListReq
:
4370 ndr_print_nbt_browse_backup_list_request(ndr
, "backup_list_request", &r
->backup_list_request
);
4373 case GetBackupListResp
:
4374 ndr_print_nbt_browse_backup_list_response(ndr
, "backup_list_response", &r
->backup_list_response
);
4378 ndr_print_nbt_browse_become_backup(ndr
, "become_backup", &r
->become_backup
);
4381 case DomainAnnouncement
:
4382 ndr_print_nbt_browse_domain_announcement(ndr
, "domain_announcement", &r
->domain_announcement
);
4385 case MasterAnnouncement
:
4386 ndr_print_nbt_browse_master_announcement(ndr
, "master_announcement", &r
->master_announcement
);
4389 case ResetBrowserState
:
4390 ndr_print_nbt_browse_reset_state(ndr
, "reset_browser_state", &r
->reset_browser_state
);
4393 case LocalMasterAnnouncement
:
4394 ndr_print_nbt_browse_local_master_announcement(ndr
, "local_master_announcement", &r
->local_master_announcement
);
4398 ndr_print_bad_level(ndr
, name
, level
);
4402 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_browse_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_packet
*r
)
4405 uint32_t _flags_save_STRUCT
= ndr
->flags
;
4406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
4407 if (ndr_flags
& NDR_SCALARS
) {
4408 NDR_CHECK(ndr_push_align(ndr
, 4));
4409 NDR_CHECK(ndr_push_nbt_browse_opcode(ndr
, NDR_SCALARS
, r
->opcode
));
4410 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->payload
, r
->opcode
));
4411 NDR_CHECK(ndr_push_nbt_browse_payload(ndr
, NDR_SCALARS
, &r
->payload
));
4413 if (ndr_flags
& NDR_BUFFERS
) {
4415 ndr
->flags
= _flags_save_STRUCT
;
4417 return NDR_ERR_SUCCESS
;
4420 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_browse_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_packet
*r
)
4423 uint32_t _flags_save_STRUCT
= ndr
->flags
;
4424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
4425 if (ndr_flags
& NDR_SCALARS
) {
4426 NDR_CHECK(ndr_pull_align(ndr
, 4));
4427 NDR_CHECK(ndr_pull_nbt_browse_opcode(ndr
, NDR_SCALARS
, &r
->opcode
));
4428 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->payload
, r
->opcode
));
4429 NDR_CHECK(ndr_pull_nbt_browse_payload(ndr
, NDR_SCALARS
, &r
->payload
));
4431 if (ndr_flags
& NDR_BUFFERS
) {
4433 ndr
->flags
= _flags_save_STRUCT
;
4435 return NDR_ERR_SUCCESS
;
4438 _PUBLIC_
void ndr_print_nbt_browse_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_packet
*r
)
4440 ndr_print_struct(ndr
, name
, "nbt_browse_packet");
4442 uint32_t _flags_save_STRUCT
= ndr
->flags
;
4443 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
4445 ndr_print_nbt_browse_opcode(ndr
, "opcode", r
->opcode
);
4446 ndr_print_set_switch_value(ndr
, &r
->payload
, r
->opcode
);
4447 ndr_print_nbt_browse_payload(ndr
, "payload", &r
->payload
);
4449 ndr
->flags
= _flags_save_STRUCT
;