1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_nbt.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_svcctl.h"
9 #include "librpc/gen_ndr/ndr_samr.h"
10 static enum ndr_err_code
ndr_push_nbt_operation(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
12 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
13 return NDR_ERR_SUCCESS
;
16 static enum ndr_err_code
ndr_pull_nbt_operation(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
19 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
21 return NDR_ERR_SUCCESS
;
24 _PUBLIC_
void ndr_print_nbt_operation(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
26 ndr_print_uint16(ndr
, name
, r
);
28 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_RCODE", NBT_RCODE
, r
);
29 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_BROADCAST", NBT_FLAG_BROADCAST
, r
);
30 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_RECURSION_AVAIL", NBT_FLAG_RECURSION_AVAIL
, r
);
31 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_RECURSION_DESIRED", NBT_FLAG_RECURSION_DESIRED
, r
);
32 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_TRUNCATION", NBT_FLAG_TRUNCATION
, r
);
33 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_AUTHORITIVE", NBT_FLAG_AUTHORITIVE
, r
);
34 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_OPCODE", NBT_OPCODE
, r
);
35 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NBT_FLAG_REPLY", NBT_FLAG_REPLY
, r
);
39 static enum ndr_err_code
ndr_push_nbt_name_type(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_name_type r
)
41 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
42 return NDR_ERR_SUCCESS
;
45 static enum ndr_err_code
ndr_pull_nbt_name_type(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_name_type
*r
)
48 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
50 return NDR_ERR_SUCCESS
;
53 _PUBLIC_
void ndr_print_nbt_name_type(struct ndr_print
*ndr
, const char *name
, enum nbt_name_type r
)
55 const char *val
= NULL
;
58 case NBT_NAME_CLIENT
: val
= "NBT_NAME_CLIENT"; break;
59 case NBT_NAME_MS
: val
= "NBT_NAME_MS"; break;
60 case NBT_NAME_USER
: val
= "NBT_NAME_USER"; break;
61 case NBT_NAME_SERVER
: val
= "NBT_NAME_SERVER"; break;
62 case NBT_NAME_PDC
: val
= "NBT_NAME_PDC"; break;
63 case NBT_NAME_LOGON
: val
= "NBT_NAME_LOGON"; break;
64 case NBT_NAME_MASTER
: val
= "NBT_NAME_MASTER"; break;
65 case NBT_NAME_BROWSER
: val
= "NBT_NAME_BROWSER"; break;
67 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
70 _PUBLIC_
void ndr_print_nbt_name(struct ndr_print
*ndr
, const char *name
, const struct nbt_name
*r
)
72 ndr_print_struct(ndr
, name
, "nbt_name");
74 ndr_print_string(ndr
, "name", r
->name
);
75 ndr_print_string(ndr
, "scope", r
->scope
);
76 ndr_print_nbt_name_type(ndr
, "type", r
->type
);
80 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_qclass(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_qclass r
)
82 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
83 return NDR_ERR_SUCCESS
;
86 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_qclass(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_qclass
*r
)
89 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
91 return NDR_ERR_SUCCESS
;
94 _PUBLIC_
void ndr_print_nbt_qclass(struct ndr_print
*ndr
, const char *name
, enum nbt_qclass r
)
96 const char *val
= NULL
;
99 case NBT_QCLASS_IP
: val
= "NBT_QCLASS_IP"; break;
101 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
104 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_qtype(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_qtype r
)
106 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
107 return NDR_ERR_SUCCESS
;
110 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_qtype(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_qtype
*r
)
113 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
115 return NDR_ERR_SUCCESS
;
118 _PUBLIC_
void ndr_print_nbt_qtype(struct ndr_print
*ndr
, const char *name
, enum nbt_qtype r
)
120 const char *val
= NULL
;
123 case NBT_QTYPE_ADDRESS
: val
= "NBT_QTYPE_ADDRESS"; break;
124 case NBT_QTYPE_NAMESERVICE
: val
= "NBT_QTYPE_NAMESERVICE"; break;
125 case NBT_QTYPE_NULL
: val
= "NBT_QTYPE_NULL"; break;
126 case NBT_QTYPE_NETBIOS
: val
= "NBT_QTYPE_NETBIOS"; break;
127 case NBT_QTYPE_STATUS
: val
= "NBT_QTYPE_STATUS"; break;
129 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
132 static enum ndr_err_code
ndr_push_nbt_name_question(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_name_question
*r
)
134 if (ndr_flags
& NDR_SCALARS
) {
135 NDR_CHECK(ndr_push_align(ndr
, 4));
136 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
137 NDR_CHECK(ndr_push_nbt_qtype(ndr
, NDR_SCALARS
, r
->question_type
));
138 NDR_CHECK(ndr_push_nbt_qclass(ndr
, NDR_SCALARS
, r
->question_class
));
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", (int)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", (int)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 _PUBLIC_
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 _PUBLIC_
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_pull_nbt_res_rec(struct ndr_pull
*ndr
, int ndr_flags
, 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_pull_align(ndr
, 4));
599 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->name
));
600 NDR_CHECK(ndr_pull_nbt_qtype(ndr
, NDR_SCALARS
, &r
->rr_type
));
601 NDR_CHECK(ndr_pull_nbt_qclass(ndr
, NDR_SCALARS
, &r
->rr_class
));
602 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ttl
));
603 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->rdata
, r
->rr_type
));
604 NDR_CHECK(ndr_pull_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 _PUBLIC_
void ndr_print_nbt_res_rec(struct ndr_print
*ndr
, const char *name
, const struct nbt_res_rec
*r
)
615 ndr_print_struct(ndr
, name
, "nbt_res_rec");
617 uint32_t _flags_save_STRUCT
= ndr
->flags
;
618 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
620 ndr_print_nbt_name(ndr
, "name", &r
->name
);
621 ndr_print_nbt_qtype(ndr
, "rr_type", r
->rr_type
);
622 ndr_print_nbt_qclass(ndr
, "rr_class", r
->rr_class
);
623 ndr_print_uint32(ndr
, "ttl", r
->ttl
);
624 ndr_print_set_switch_value(ndr
, &r
->rdata
, r
->rr_type
);
625 ndr_print_nbt_rdata(ndr
, "rdata", &r
->rdata
);
627 ndr
->flags
= _flags_save_STRUCT
;
631 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_name_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_name_packet
*r
)
633 uint32_t cntr_questions_0
;
634 uint32_t cntr_answers_0
;
635 uint32_t cntr_nsrecs_0
;
636 uint32_t cntr_additional_0
;
638 uint32_t _flags_save_STRUCT
= ndr
->flags
;
639 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
640 if (ndr_flags
& NDR_SCALARS
) {
641 NDR_CHECK(ndr_push_align(ndr
, 4));
642 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->name_trn_id
));
643 NDR_CHECK(ndr_push_nbt_operation(ndr
, NDR_SCALARS
, r
->operation
));
644 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->qdcount
));
645 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ancount
));
646 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nscount
));
647 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->arcount
));
648 for (cntr_questions_0
= 0; cntr_questions_0
< r
->qdcount
; cntr_questions_0
++) {
649 NDR_CHECK(ndr_push_nbt_name_question(ndr
, NDR_SCALARS
, &r
->questions
[cntr_questions_0
]));
651 for (cntr_answers_0
= 0; cntr_answers_0
< r
->ancount
; cntr_answers_0
++) {
652 NDR_CHECK(ndr_push_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->answers
[cntr_answers_0
]));
654 for (cntr_nsrecs_0
= 0; cntr_nsrecs_0
< r
->nscount
; cntr_nsrecs_0
++) {
655 NDR_CHECK(ndr_push_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->nsrecs
[cntr_nsrecs_0
]));
657 for (cntr_additional_0
= 0; cntr_additional_0
< r
->arcount
; cntr_additional_0
++) {
658 NDR_CHECK(ndr_push_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->additional
[cntr_additional_0
]));
661 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
662 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
663 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->padding
));
664 ndr
->flags
= _flags_save_DATA_BLOB
;
667 if (ndr_flags
& NDR_BUFFERS
) {
669 ndr
->flags
= _flags_save_STRUCT
;
671 return NDR_ERR_SUCCESS
;
674 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_name_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_name_packet
*r
)
676 uint32_t cntr_questions_0
;
677 TALLOC_CTX
*_mem_save_questions_0
;
678 uint32_t cntr_answers_0
;
679 TALLOC_CTX
*_mem_save_answers_0
;
680 uint32_t cntr_nsrecs_0
;
681 TALLOC_CTX
*_mem_save_nsrecs_0
;
682 uint32_t cntr_additional_0
;
683 TALLOC_CTX
*_mem_save_additional_0
;
685 uint32_t _flags_save_STRUCT
= ndr
->flags
;
686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
687 if (ndr_flags
& NDR_SCALARS
) {
688 NDR_CHECK(ndr_pull_align(ndr
, 4));
689 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->name_trn_id
));
690 NDR_CHECK(ndr_pull_nbt_operation(ndr
, NDR_SCALARS
, &r
->operation
));
691 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->qdcount
));
692 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ancount
));
693 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nscount
));
694 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->arcount
));
695 NDR_PULL_ALLOC_N(ndr
, r
->questions
, r
->qdcount
);
696 _mem_save_questions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
697 NDR_PULL_SET_MEM_CTX(ndr
, r
->questions
, 0);
698 for (cntr_questions_0
= 0; cntr_questions_0
< r
->qdcount
; cntr_questions_0
++) {
699 NDR_CHECK(ndr_pull_nbt_name_question(ndr
, NDR_SCALARS
, &r
->questions
[cntr_questions_0
]));
701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_questions_0
, 0);
702 NDR_PULL_ALLOC_N(ndr
, r
->answers
, r
->ancount
);
703 _mem_save_answers_0
= NDR_PULL_GET_MEM_CTX(ndr
);
704 NDR_PULL_SET_MEM_CTX(ndr
, r
->answers
, 0);
705 for (cntr_answers_0
= 0; cntr_answers_0
< r
->ancount
; cntr_answers_0
++) {
706 NDR_CHECK(ndr_pull_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->answers
[cntr_answers_0
]));
708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_answers_0
, 0);
709 NDR_PULL_ALLOC_N(ndr
, r
->nsrecs
, r
->nscount
);
710 _mem_save_nsrecs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
711 NDR_PULL_SET_MEM_CTX(ndr
, r
->nsrecs
, 0);
712 for (cntr_nsrecs_0
= 0; cntr_nsrecs_0
< r
->nscount
; cntr_nsrecs_0
++) {
713 NDR_CHECK(ndr_pull_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->nsrecs
[cntr_nsrecs_0
]));
715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nsrecs_0
, 0);
716 NDR_PULL_ALLOC_N(ndr
, r
->additional
, r
->arcount
);
717 _mem_save_additional_0
= NDR_PULL_GET_MEM_CTX(ndr
);
718 NDR_PULL_SET_MEM_CTX(ndr
, r
->additional
, 0);
719 for (cntr_additional_0
= 0; cntr_additional_0
< r
->arcount
; cntr_additional_0
++) {
720 NDR_CHECK(ndr_pull_nbt_res_rec(ndr
, NDR_SCALARS
, &r
->additional
[cntr_additional_0
]));
722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_additional_0
, 0);
724 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
725 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
726 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->padding
));
727 ndr
->flags
= _flags_save_DATA_BLOB
;
730 if (ndr_flags
& NDR_BUFFERS
) {
732 ndr
->flags
= _flags_save_STRUCT
;
734 return NDR_ERR_SUCCESS
;
737 _PUBLIC_
void ndr_print_nbt_name_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_name_packet
*r
)
739 uint32_t cntr_questions_0
;
740 uint32_t cntr_answers_0
;
741 uint32_t cntr_nsrecs_0
;
742 uint32_t cntr_additional_0
;
743 ndr_print_struct(ndr
, name
, "nbt_name_packet");
745 uint32_t _flags_save_STRUCT
= ndr
->flags
;
746 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
748 ndr_print_uint16(ndr
, "name_trn_id", r
->name_trn_id
);
749 ndr_print_nbt_operation(ndr
, "operation", r
->operation
);
750 ndr_print_uint16(ndr
, "qdcount", r
->qdcount
);
751 ndr_print_uint16(ndr
, "ancount", r
->ancount
);
752 ndr_print_uint16(ndr
, "nscount", r
->nscount
);
753 ndr_print_uint16(ndr
, "arcount", r
->arcount
);
754 ndr
->print(ndr
, "%s: ARRAY(%d)", "questions", (int)r
->qdcount
);
756 for (cntr_questions_0
=0;cntr_questions_0
<r
->qdcount
;cntr_questions_0
++) {
758 if (asprintf(&idx_0
, "[%d]", cntr_questions_0
) != -1) {
759 ndr_print_nbt_name_question(ndr
, "questions", &r
->questions
[cntr_questions_0
]);
764 ndr
->print(ndr
, "%s: ARRAY(%d)", "answers", (int)r
->ancount
);
766 for (cntr_answers_0
=0;cntr_answers_0
<r
->ancount
;cntr_answers_0
++) {
768 if (asprintf(&idx_0
, "[%d]", cntr_answers_0
) != -1) {
769 ndr_print_nbt_res_rec(ndr
, "answers", &r
->answers
[cntr_answers_0
]);
774 ndr
->print(ndr
, "%s: ARRAY(%d)", "nsrecs", (int)r
->nscount
);
776 for (cntr_nsrecs_0
=0;cntr_nsrecs_0
<r
->nscount
;cntr_nsrecs_0
++) {
778 if (asprintf(&idx_0
, "[%d]", cntr_nsrecs_0
) != -1) {
779 ndr_print_nbt_res_rec(ndr
, "nsrecs", &r
->nsrecs
[cntr_nsrecs_0
]);
784 ndr
->print(ndr
, "%s: ARRAY(%d)", "additional", (int)r
->arcount
);
786 for (cntr_additional_0
=0;cntr_additional_0
<r
->arcount
;cntr_additional_0
++) {
788 if (asprintf(&idx_0
, "[%d]", cntr_additional_0
) != -1) {
789 ndr_print_nbt_res_rec(ndr
, "additional", &r
->additional
[cntr_additional_0
]);
794 ndr_print_DATA_BLOB(ndr
, "padding", r
->padding
);
796 ndr
->flags
= _flags_save_STRUCT
;
800 static enum ndr_err_code
ndr_push_dgram_msg_type(struct ndr_push
*ndr
, int ndr_flags
, enum dgram_msg_type r
)
802 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
803 return NDR_ERR_SUCCESS
;
806 static enum ndr_err_code
ndr_pull_dgram_msg_type(struct ndr_pull
*ndr
, int ndr_flags
, enum dgram_msg_type
*r
)
809 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
811 return NDR_ERR_SUCCESS
;
814 _PUBLIC_
void ndr_print_dgram_msg_type(struct ndr_print
*ndr
, const char *name
, enum dgram_msg_type r
)
816 const char *val
= NULL
;
819 case DGRAM_DIRECT_UNIQUE
: val
= "DGRAM_DIRECT_UNIQUE"; break;
820 case DGRAM_DIRECT_GROUP
: val
= "DGRAM_DIRECT_GROUP"; break;
821 case DGRAM_BCAST
: val
= "DGRAM_BCAST"; break;
822 case DGRAM_ERROR
: val
= "DGRAM_ERROR"; break;
823 case DGRAM_QUERY
: val
= "DGRAM_QUERY"; break;
824 case DGRAM_QUERY_POSITIVE
: val
= "DGRAM_QUERY_POSITIVE"; break;
825 case DGRAM_QUERY_NEGATIVE
: val
= "DGRAM_QUERY_NEGATIVE"; break;
827 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
830 static enum ndr_err_code
ndr_push_dgram_flags(struct ndr_push
*ndr
, int ndr_flags
, uint8_t r
)
832 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
833 return NDR_ERR_SUCCESS
;
836 static enum ndr_err_code
ndr_pull_dgram_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint8_t *r
)
839 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
841 return NDR_ERR_SUCCESS
;
844 _PUBLIC_
void ndr_print_dgram_flags(struct ndr_print
*ndr
, const char *name
, uint8_t r
)
846 ndr_print_uint8(ndr
, name
, r
);
848 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "DGRAM_FLAG_MORE", DGRAM_FLAG_MORE
, r
);
849 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "DGRAM_FLAG_FIRST", DGRAM_FLAG_FIRST
, r
);
850 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "DGRAM_FLAG_NODE_TYPE", DGRAM_FLAG_NODE_TYPE
, r
);
854 static enum ndr_err_code
ndr_push_smb_command(struct ndr_push
*ndr
, int ndr_flags
, enum smb_command r
)
856 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
857 return NDR_ERR_SUCCESS
;
860 static enum ndr_err_code
ndr_pull_smb_command(struct ndr_pull
*ndr
, int ndr_flags
, enum smb_command
*r
)
863 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
865 return NDR_ERR_SUCCESS
;
868 _PUBLIC_
void ndr_print_smb_command(struct ndr_print
*ndr
, const char *name
, enum smb_command r
)
870 const char *val
= NULL
;
873 case SMB_TRANSACTION
: val
= "SMB_TRANSACTION"; break;
875 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
878 static enum ndr_err_code
ndr_push_smb_trans_body(struct ndr_push
*ndr
, int ndr_flags
, const struct smb_trans_body
*r
)
880 if (ndr_flags
& NDR_SCALARS
) {
881 NDR_CHECK(ndr_push_align(ndr
, 4));
882 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, 17));
883 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->total_param_count
));
884 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->total_data_count
));
885 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_param_count
));
886 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->max_data_count
));
887 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->max_setup_count
));
888 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pad
));
889 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->trans_flags
));
890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timeout
));
891 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->reserved
));
892 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->param_count
));
893 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->param_offset
));
894 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->data_count
));
895 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->data_offset
));
896 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, 3));
897 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pad2
));
898 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->opcode
));
899 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->priority
));
900 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->_class
));
901 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, strlen(r
->mailslot_name
) + 1 + r
->data
.length
));
903 uint32_t _flags_save_string
= ndr
->flags
;
904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
905 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mailslot_name
));
906 ndr
->flags
= _flags_save_string
;
909 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
910 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
911 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
912 ndr
->flags
= _flags_save_DATA_BLOB
;
915 if (ndr_flags
& NDR_BUFFERS
) {
917 return NDR_ERR_SUCCESS
;
920 static enum ndr_err_code
ndr_pull_smb_trans_body(struct ndr_pull
*ndr
, int ndr_flags
, struct smb_trans_body
*r
)
922 if (ndr_flags
& NDR_SCALARS
) {
923 NDR_CHECK(ndr_pull_align(ndr
, 4));
924 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->wct
));
925 if (r
->wct
< 17 || r
->wct
> 17) {
926 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
928 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->total_param_count
));
929 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->total_data_count
));
930 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_param_count
));
931 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->max_data_count
));
932 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->max_setup_count
));
933 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pad
));
934 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->trans_flags
));
935 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timeout
));
936 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->reserved
));
937 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->param_count
));
938 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->param_offset
));
939 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->data_count
));
940 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->data_offset
));
941 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->setup_count
));
942 if (r
->setup_count
< 3 || r
->setup_count
> 3) {
943 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
945 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pad2
));
946 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->opcode
));
947 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->priority
));
948 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->_class
));
949 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->byte_count
));
951 uint32_t _flags_save_string
= ndr
->flags
;
952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
953 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mailslot_name
));
954 ndr
->flags
= _flags_save_string
;
957 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
959 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
960 ndr
->flags
= _flags_save_DATA_BLOB
;
963 if (ndr_flags
& NDR_BUFFERS
) {
965 return NDR_ERR_SUCCESS
;
968 _PUBLIC_
void ndr_print_smb_trans_body(struct ndr_print
*ndr
, const char *name
, const struct smb_trans_body
*r
)
970 ndr_print_struct(ndr
, name
, "smb_trans_body");
972 ndr_print_uint8(ndr
, "wct", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?17:r
->wct
);
973 ndr_print_uint16(ndr
, "total_param_count", r
->total_param_count
);
974 ndr_print_uint16(ndr
, "total_data_count", r
->total_data_count
);
975 ndr_print_uint16(ndr
, "max_param_count", r
->max_param_count
);
976 ndr_print_uint16(ndr
, "max_data_count", r
->max_data_count
);
977 ndr_print_uint8(ndr
, "max_setup_count", r
->max_setup_count
);
978 ndr_print_uint8(ndr
, "pad", r
->pad
);
979 ndr_print_uint16(ndr
, "trans_flags", r
->trans_flags
);
980 ndr_print_uint32(ndr
, "timeout", r
->timeout
);
981 ndr_print_uint16(ndr
, "reserved", r
->reserved
);
982 ndr_print_uint16(ndr
, "param_count", r
->param_count
);
983 ndr_print_uint16(ndr
, "param_offset", r
->param_offset
);
984 ndr_print_uint16(ndr
, "data_count", r
->data_count
);
985 ndr_print_uint16(ndr
, "data_offset", r
->data_offset
);
986 ndr_print_uint8(ndr
, "setup_count", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?3:r
->setup_count
);
987 ndr_print_uint8(ndr
, "pad2", r
->pad2
);
988 ndr_print_uint16(ndr
, "opcode", r
->opcode
);
989 ndr_print_uint16(ndr
, "priority", r
->priority
);
990 ndr_print_uint16(ndr
, "_class", r
->_class
);
991 ndr_print_uint16(ndr
, "byte_count", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen(r
->mailslot_name
) + 1 + r
->data
.length
:r
->byte_count
);
992 ndr_print_string(ndr
, "mailslot_name", r
->mailslot_name
);
993 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
997 static enum ndr_err_code
ndr_push_smb_body(struct ndr_push
*ndr
, int ndr_flags
, const union smb_body
*r
)
999 if (ndr_flags
& NDR_SCALARS
) {
1000 int level
= ndr_push_get_switch_value(ndr
, r
);
1002 case SMB_TRANSACTION
: {
1003 NDR_CHECK(ndr_push_smb_trans_body(ndr
, NDR_SCALARS
, &r
->trans
));
1007 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1010 if (ndr_flags
& NDR_BUFFERS
) {
1011 int level
= ndr_push_get_switch_value(ndr
, r
);
1013 case SMB_TRANSACTION
:
1017 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1020 return NDR_ERR_SUCCESS
;
1023 static enum ndr_err_code
ndr_pull_smb_body(struct ndr_pull
*ndr
, int ndr_flags
, union smb_body
*r
)
1026 level
= ndr_pull_get_switch_value(ndr
, r
);
1027 if (ndr_flags
& NDR_SCALARS
) {
1029 case SMB_TRANSACTION
: {
1030 NDR_CHECK(ndr_pull_smb_trans_body(ndr
, NDR_SCALARS
, &r
->trans
));
1034 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1037 if (ndr_flags
& NDR_BUFFERS
) {
1039 case SMB_TRANSACTION
:
1043 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1046 return NDR_ERR_SUCCESS
;
1049 _PUBLIC_
void ndr_print_smb_body(struct ndr_print
*ndr
, const char *name
, const union smb_body
*r
)
1052 level
= ndr_print_get_switch_value(ndr
, r
);
1053 ndr_print_union(ndr
, name
, level
, "smb_body");
1055 case SMB_TRANSACTION
:
1056 ndr_print_smb_trans_body(ndr
, "trans", &r
->trans
);
1060 ndr_print_bad_level(ndr
, name
, level
);
1064 _PUBLIC_
enum ndr_err_code
ndr_push_dgram_smb_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct dgram_smb_packet
*r
)
1067 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1068 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_LITTLE_ENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1069 if (ndr_flags
& NDR_SCALARS
) {
1070 NDR_CHECK(ndr_push_align(ndr
, 4));
1071 NDR_CHECK(ndr_push_smb_command(ndr
, NDR_SCALARS
, r
->smb_command
));
1072 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->err_class
));
1073 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->pad
));
1074 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->err_code
));
1075 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->flags
));
1076 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->flags2
));
1077 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->pid_high
));
1078 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->signature
, 8));
1079 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->reserved
));
1080 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->tid
));
1081 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->pid
));
1082 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->vuid
));
1083 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->mid
));
1084 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->body
, r
->smb_command
));
1085 NDR_CHECK(ndr_push_smb_body(ndr
, NDR_SCALARS
, &r
->body
));
1087 if (ndr_flags
& NDR_BUFFERS
) {
1089 ndr
->flags
= _flags_save_STRUCT
;
1091 return NDR_ERR_SUCCESS
;
1094 _PUBLIC_
enum ndr_err_code
ndr_pull_dgram_smb_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct dgram_smb_packet
*r
)
1097 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1098 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_LITTLE_ENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1099 if (ndr_flags
& NDR_SCALARS
) {
1100 NDR_CHECK(ndr_pull_align(ndr
, 4));
1101 NDR_CHECK(ndr_pull_smb_command(ndr
, NDR_SCALARS
, &r
->smb_command
));
1102 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->err_class
));
1103 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->pad
));
1104 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->err_code
));
1105 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->flags
));
1106 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->flags2
));
1107 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->pid_high
));
1108 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->signature
, 8));
1109 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->reserved
));
1110 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->tid
));
1111 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->pid
));
1112 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->vuid
));
1113 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->mid
));
1114 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->body
, r
->smb_command
));
1115 NDR_CHECK(ndr_pull_smb_body(ndr
, NDR_SCALARS
, &r
->body
));
1117 if (ndr_flags
& NDR_BUFFERS
) {
1119 ndr
->flags
= _flags_save_STRUCT
;
1121 return NDR_ERR_SUCCESS
;
1124 _PUBLIC_
void ndr_print_dgram_smb_packet(struct ndr_print
*ndr
, const char *name
, const struct dgram_smb_packet
*r
)
1126 ndr_print_struct(ndr
, name
, "dgram_smb_packet");
1128 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_LITTLE_ENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1131 ndr_print_smb_command(ndr
, "smb_command", r
->smb_command
);
1132 ndr_print_uint8(ndr
, "err_class", r
->err_class
);
1133 ndr_print_uint8(ndr
, "pad", r
->pad
);
1134 ndr_print_uint16(ndr
, "err_code", r
->err_code
);
1135 ndr_print_uint8(ndr
, "flags", r
->flags
);
1136 ndr_print_uint16(ndr
, "flags2", r
->flags2
);
1137 ndr_print_uint16(ndr
, "pid_high", r
->pid_high
);
1138 ndr_print_array_uint8(ndr
, "signature", r
->signature
, 8);
1139 ndr_print_uint16(ndr
, "reserved", r
->reserved
);
1140 ndr_print_uint16(ndr
, "tid", r
->tid
);
1141 ndr_print_uint16(ndr
, "pid", r
->pid
);
1142 ndr_print_uint16(ndr
, "vuid", r
->vuid
);
1143 ndr_print_uint16(ndr
, "mid", r
->mid
);
1144 ndr_print_set_switch_value(ndr
, &r
->body
, r
->smb_command
);
1145 ndr_print_smb_body(ndr
, "body", &r
->body
);
1147 ndr
->flags
= _flags_save_STRUCT
;
1151 static enum ndr_err_code
ndr_push_dgram_message_body(struct ndr_push
*ndr
, int ndr_flags
, const union dgram_message_body
*r
)
1153 if (ndr_flags
& NDR_SCALARS
) {
1154 int level
= ndr_push_get_switch_value(ndr
, r
);
1157 NDR_CHECK(ndr_push_dgram_smb_packet(ndr
, NDR_SCALARS
, &r
->smb
));
1161 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1164 if (ndr_flags
& NDR_BUFFERS
) {
1165 int level
= ndr_push_get_switch_value(ndr
, r
);
1171 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1174 return NDR_ERR_SUCCESS
;
1177 static enum ndr_err_code
ndr_pull_dgram_message_body(struct ndr_pull
*ndr
, int ndr_flags
, union dgram_message_body
*r
)
1180 level
= ndr_pull_get_switch_value(ndr
, r
);
1181 if (ndr_flags
& NDR_SCALARS
) {
1184 NDR_CHECK(ndr_pull_dgram_smb_packet(ndr
, NDR_SCALARS
, &r
->smb
));
1188 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1191 if (ndr_flags
& NDR_BUFFERS
) {
1197 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1200 return NDR_ERR_SUCCESS
;
1203 _PUBLIC_
void ndr_print_dgram_message_body(struct ndr_print
*ndr
, const char *name
, const union dgram_message_body
*r
)
1206 level
= ndr_print_get_switch_value(ndr
, r
);
1207 ndr_print_union(ndr
, name
, level
, "dgram_message_body");
1210 ndr_print_dgram_smb_packet(ndr
, "smb", &r
->smb
);
1214 ndr_print_bad_level(ndr
, name
, level
);
1218 static enum ndr_err_code
ndr_push_dgram_message(struct ndr_push
*ndr
, int ndr_flags
, const struct dgram_message
*r
)
1220 if (ndr_flags
& NDR_SCALARS
) {
1221 NDR_CHECK(ndr_push_align(ndr
, 4));
1222 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
1223 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->offset
));
1224 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->source_name
));
1225 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dgram_body_type
));
1227 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->body
, r
->dgram_body_type
));
1228 NDR_CHECK(ndr_push_dgram_message_body(ndr
, NDR_SCALARS
, &r
->body
));
1230 if (ndr_flags
& NDR_BUFFERS
) {
1232 return NDR_ERR_SUCCESS
;
1235 static enum ndr_err_code
ndr_pull_dgram_message(struct ndr_pull
*ndr
, int ndr_flags
, struct dgram_message
*r
)
1237 if (ndr_flags
& NDR_SCALARS
) {
1238 NDR_CHECK(ndr_pull_align(ndr
, 4));
1239 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
1240 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->offset
));
1241 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->source_name
));
1242 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1243 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dgram_body_type
));
1244 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->body
, r
->dgram_body_type
));
1245 NDR_CHECK(ndr_pull_dgram_message_body(ndr
, NDR_SCALARS
, &r
->body
));
1247 if (ndr_flags
& NDR_BUFFERS
) {
1249 return NDR_ERR_SUCCESS
;
1252 _PUBLIC_
void ndr_print_dgram_message(struct ndr_print
*ndr
, const char *name
, const struct dgram_message
*r
)
1254 ndr_print_struct(ndr
, name
, "dgram_message");
1256 ndr_print_uint16(ndr
, "length", r
->length
);
1257 ndr_print_uint16(ndr
, "offset", r
->offset
);
1258 ndr_print_nbt_name(ndr
, "source_name", &r
->source_name
);
1259 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1260 ndr_print_uint32(ndr
, "dgram_body_type", r
->dgram_body_type
);
1261 ndr_print_set_switch_value(ndr
, &r
->body
, r
->dgram_body_type
);
1262 ndr_print_dgram_message_body(ndr
, "body", &r
->body
);
1266 static enum ndr_err_code
ndr_push_dgram_err_code(struct ndr_push
*ndr
, int ndr_flags
, enum dgram_err_code r
)
1268 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
1269 return NDR_ERR_SUCCESS
;
1272 static enum ndr_err_code
ndr_pull_dgram_err_code(struct ndr_pull
*ndr
, int ndr_flags
, enum dgram_err_code
*r
)
1275 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
1277 return NDR_ERR_SUCCESS
;
1280 _PUBLIC_
void ndr_print_dgram_err_code(struct ndr_print
*ndr
, const char *name
, enum dgram_err_code r
)
1282 const char *val
= NULL
;
1285 case DGRAM_ERROR_NAME_NOT_PRESENT
: val
= "DGRAM_ERROR_NAME_NOT_PRESENT"; break;
1286 case DGRAM_ERROR_INVALID_SOURCE
: val
= "DGRAM_ERROR_INVALID_SOURCE"; break;
1287 case DGRAM_ERROR_INVALID_DEST
: val
= "DGRAM_ERROR_INVALID_DEST"; break;
1289 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1292 static enum ndr_err_code
ndr_push_dgram_data(struct ndr_push
*ndr
, int ndr_flags
, const union dgram_data
*r
)
1294 if (ndr_flags
& NDR_SCALARS
) {
1295 int level
= ndr_push_get_switch_value(ndr
, r
);
1297 case DGRAM_DIRECT_UNIQUE
: {
1298 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1301 case DGRAM_DIRECT_GROUP
: {
1302 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1306 NDR_CHECK(ndr_push_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1310 NDR_CHECK(ndr_push_dgram_err_code(ndr
, NDR_SCALARS
, r
->error
));
1314 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1317 case DGRAM_QUERY_POSITIVE
: {
1318 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1321 case DGRAM_QUERY_NEGATIVE
: {
1322 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1326 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1329 if (ndr_flags
& NDR_BUFFERS
) {
1330 int level
= ndr_push_get_switch_value(ndr
, r
);
1332 case DGRAM_DIRECT_UNIQUE
:
1335 case DGRAM_DIRECT_GROUP
:
1347 case DGRAM_QUERY_POSITIVE
:
1350 case DGRAM_QUERY_NEGATIVE
:
1354 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1357 return NDR_ERR_SUCCESS
;
1360 static enum ndr_err_code
ndr_pull_dgram_data(struct ndr_pull
*ndr
, int ndr_flags
, union dgram_data
*r
)
1363 level
= ndr_pull_get_switch_value(ndr
, r
);
1364 if (ndr_flags
& NDR_SCALARS
) {
1366 case DGRAM_DIRECT_UNIQUE
: {
1367 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1370 case DGRAM_DIRECT_GROUP
: {
1371 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1375 NDR_CHECK(ndr_pull_dgram_message(ndr
, NDR_SCALARS
, &r
->msg
));
1379 NDR_CHECK(ndr_pull_dgram_err_code(ndr
, NDR_SCALARS
, &r
->error
));
1383 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1386 case DGRAM_QUERY_POSITIVE
: {
1387 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1390 case DGRAM_QUERY_NEGATIVE
: {
1391 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->dest_name
));
1395 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1398 if (ndr_flags
& NDR_BUFFERS
) {
1400 case DGRAM_DIRECT_UNIQUE
:
1403 case DGRAM_DIRECT_GROUP
:
1415 case DGRAM_QUERY_POSITIVE
:
1418 case DGRAM_QUERY_NEGATIVE
:
1422 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1425 return NDR_ERR_SUCCESS
;
1428 _PUBLIC_
void ndr_print_dgram_data(struct ndr_print
*ndr
, const char *name
, const union dgram_data
*r
)
1431 level
= ndr_print_get_switch_value(ndr
, r
);
1432 ndr_print_union(ndr
, name
, level
, "dgram_data");
1434 case DGRAM_DIRECT_UNIQUE
:
1435 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1438 case DGRAM_DIRECT_GROUP
:
1439 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1443 ndr_print_dgram_message(ndr
, "msg", &r
->msg
);
1447 ndr_print_dgram_err_code(ndr
, "error", r
->error
);
1451 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1454 case DGRAM_QUERY_POSITIVE
:
1455 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1458 case DGRAM_QUERY_NEGATIVE
:
1459 ndr_print_nbt_name(ndr
, "dest_name", &r
->dest_name
);
1463 ndr_print_bad_level(ndr
, name
, level
);
1467 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_dgram_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_dgram_packet
*r
)
1470 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1471 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1472 if (ndr_flags
& NDR_SCALARS
) {
1473 NDR_CHECK(ndr_push_align(ndr
, 4));
1474 NDR_CHECK(ndr_push_dgram_msg_type(ndr
, NDR_SCALARS
, r
->msg_type
));
1475 NDR_CHECK(ndr_push_dgram_flags(ndr
, NDR_SCALARS
, r
->flags
));
1476 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->dgram_id
));
1477 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->src_addr
));
1478 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->src_port
));
1479 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->msg_type
));
1480 NDR_CHECK(ndr_push_dgram_data(ndr
, NDR_SCALARS
, &r
->data
));
1482 if (ndr_flags
& NDR_BUFFERS
) {
1484 ndr
->flags
= _flags_save_STRUCT
;
1486 return NDR_ERR_SUCCESS
;
1489 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_dgram_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_dgram_packet
*r
)
1492 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1493 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1494 if (ndr_flags
& NDR_SCALARS
) {
1495 NDR_CHECK(ndr_pull_align(ndr
, 4));
1496 NDR_CHECK(ndr_pull_dgram_msg_type(ndr
, NDR_SCALARS
, &r
->msg_type
));
1497 NDR_CHECK(ndr_pull_dgram_flags(ndr
, NDR_SCALARS
, &r
->flags
));
1498 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->dgram_id
));
1499 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->src_addr
));
1500 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->src_port
));
1501 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->msg_type
));
1502 NDR_CHECK(ndr_pull_dgram_data(ndr
, NDR_SCALARS
, &r
->data
));
1504 if (ndr_flags
& NDR_BUFFERS
) {
1506 ndr
->flags
= _flags_save_STRUCT
;
1508 return NDR_ERR_SUCCESS
;
1511 _PUBLIC_
void ndr_print_nbt_dgram_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_dgram_packet
*r
)
1513 ndr_print_struct(ndr
, name
, "nbt_dgram_packet");
1515 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
|LIBNDR_FLAG_BIGENDIAN
|LIBNDR_PRINT_ARRAY_HEX
);
1518 ndr_print_dgram_msg_type(ndr
, "msg_type", r
->msg_type
);
1519 ndr_print_dgram_flags(ndr
, "flags", r
->flags
);
1520 ndr_print_uint16(ndr
, "dgram_id", r
->dgram_id
);
1521 ndr_print_ipv4address(ndr
, "src_addr", r
->src_addr
);
1522 ndr_print_uint16(ndr
, "src_port", r
->src_port
);
1523 ndr_print_set_switch_value(ndr
, &r
->data
, r
->msg_type
);
1524 ndr_print_dgram_data(ndr
, "data", &r
->data
);
1526 ndr
->flags
= _flags_save_STRUCT
;
1530 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_sockaddr(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_sockaddr
*r
)
1532 if (ndr_flags
& NDR_SCALARS
) {
1533 NDR_CHECK(ndr_push_align(ndr
, 4));
1534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sockaddr_family
));
1536 uint32_t _flags_save_ipv4address
= ndr
->flags
;
1537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
1538 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->pdc_ip
));
1539 ndr
->flags
= _flags_save_ipv4address
;
1542 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1543 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1544 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->remaining
));
1545 ndr
->flags
= _flags_save_DATA_BLOB
;
1548 if (ndr_flags
& NDR_BUFFERS
) {
1550 return NDR_ERR_SUCCESS
;
1553 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_sockaddr(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_sockaddr
*r
)
1555 if (ndr_flags
& NDR_SCALARS
) {
1556 NDR_CHECK(ndr_pull_align(ndr
, 4));
1557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sockaddr_family
));
1559 uint32_t _flags_save_ipv4address
= ndr
->flags
;
1560 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
1561 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->pdc_ip
));
1562 ndr
->flags
= _flags_save_ipv4address
;
1565 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1567 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->remaining
));
1568 ndr
->flags
= _flags_save_DATA_BLOB
;
1571 if (ndr_flags
& NDR_BUFFERS
) {
1573 return NDR_ERR_SUCCESS
;
1576 _PUBLIC_
void ndr_print_nbt_sockaddr(struct ndr_print
*ndr
, const char *name
, const struct nbt_sockaddr
*r
)
1578 ndr_print_struct(ndr
, name
, "nbt_sockaddr");
1580 ndr_print_uint32(ndr
, "sockaddr_family", r
->sockaddr_family
);
1581 ndr_print_ipv4address(ndr
, "pdc_ip", r
->pdc_ip
);
1582 ndr_print_DATA_BLOB(ndr
, "remaining", r
->remaining
);
1586 _PUBLIC_
size_t ndr_size_nbt_sockaddr(const struct nbt_sockaddr
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1588 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_nbt_sockaddr
, ic
);
1591 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_server_type(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1594 return NDR_ERR_SUCCESS
;
1597 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_server_type(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1600 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1602 return NDR_ERR_SUCCESS
;
1605 _PUBLIC_
void ndr_print_nbt_server_type(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1607 ndr_print_uint32(ndr
, name
, r
);
1609 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_PDC", NBT_SERVER_PDC
, r
);
1610 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_GC", NBT_SERVER_GC
, r
);
1611 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_LDAP", NBT_SERVER_LDAP
, r
);
1612 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_DS", NBT_SERVER_DS
, r
);
1613 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_KDC", NBT_SERVER_KDC
, r
);
1614 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_TIMESERV", NBT_SERVER_TIMESERV
, r
);
1615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_CLOSEST", NBT_SERVER_CLOSEST
, r
);
1616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_WRITABLE", NBT_SERVER_WRITABLE
, r
);
1617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_GOOD_TIMESERV", NBT_SERVER_GOOD_TIMESERV
, r
);
1618 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_NDNC", NBT_SERVER_NDNC
, r
);
1619 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_SELECT_SECRET_DOMAIN_6", NBT_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
1620 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_FULL_SECRET_DOMAIN_6", NBT_SERVER_FULL_SECRET_DOMAIN_6
, r
);
1621 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NBT_SERVER_DNS_FOREST", NBT_SERVER_DNS_FOREST
, r
);
1625 _PUBLIC_
enum ndr_err_code
ndr_push_netlogon_nt_version_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1628 return NDR_ERR_SUCCESS
;
1631 _PUBLIC_
enum ndr_err_code
ndr_pull_netlogon_nt_version_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1634 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1636 return NDR_ERR_SUCCESS
;
1639 _PUBLIC_
void ndr_print_netlogon_nt_version_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1641 ndr_print_uint32(ndr
, name
, r
);
1643 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_1", NETLOGON_NT_VERSION_1
, r
);
1644 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_5", NETLOGON_NT_VERSION_5
, r
);
1645 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX", NETLOGON_NT_VERSION_5EX
, r
);
1646 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_5EX_WITH_IP", NETLOGON_NT_VERSION_5EX_WITH_IP
, r
);
1647 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE", NETLOGON_NT_VERSION_WITH_CLOSEST_SITE
, r
);
1648 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_AVIOD_NT4EMUL", NETLOGON_NT_VERSION_AVIOD_NT4EMUL
, r
);
1649 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_PDC", NETLOGON_NT_VERSION_PDC
, r
);
1650 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_IP", NETLOGON_NT_VERSION_IP
, r
);
1651 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_LOCAL", NETLOGON_NT_VERSION_LOCAL
, r
);
1652 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NT_VERSION_GC", NETLOGON_NT_VERSION_GC
, r
);
1656 _PUBLIC_
enum ndr_err_code
ndr_push_netlogon_command(struct ndr_push
*ndr
, int ndr_flags
, enum netlogon_command r
)
1658 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1659 return NDR_ERR_SUCCESS
;
1662 _PUBLIC_
enum ndr_err_code
ndr_pull_netlogon_command(struct ndr_pull
*ndr
, int ndr_flags
, enum netlogon_command
*r
)
1665 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1667 return NDR_ERR_SUCCESS
;
1670 _PUBLIC_
void ndr_print_netlogon_command(struct ndr_print
*ndr
, const char *name
, enum netlogon_command r
)
1672 const char *val
= NULL
;
1675 case LOGON_PRIMARY_QUERY
: val
= "LOGON_PRIMARY_QUERY"; break;
1676 case NETLOGON_ANNOUNCE_UAS
: val
= "NETLOGON_ANNOUNCE_UAS"; break;
1677 case NETLOGON_RESPONSE_FROM_PDC
: val
= "NETLOGON_RESPONSE_FROM_PDC"; break;
1678 case LOGON_SAM_LOGON_REQUEST
: val
= "LOGON_SAM_LOGON_REQUEST"; break;
1679 case LOGON_SAM_LOGON_RESPONSE
: val
= "LOGON_SAM_LOGON_RESPONSE"; break;
1680 case LOGON_SAM_LOGON_PAUSE_RESPONSE
: val
= "LOGON_SAM_LOGON_PAUSE_RESPONSE"; break;
1681 case LOGON_SAM_LOGON_USER_UNKNOWN
: val
= "LOGON_SAM_LOGON_USER_UNKNOWN"; break;
1682 case LOGON_SAM_LOGON_RESPONSE_EX
: val
= "LOGON_SAM_LOGON_RESPONSE_EX"; break;
1683 case LOGON_SAM_LOGON_PAUSE_RESPONSE_EX
: val
= "LOGON_SAM_LOGON_PAUSE_RESPONSE_EX"; break;
1684 case LOGON_SAM_LOGON_USER_UNKNOWN_EX
: val
= "LOGON_SAM_LOGON_USER_UNKNOWN_EX"; break;
1686 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1689 _PUBLIC_
void ndr_print_NETLOGON_SAM_LOGON_REQUEST(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_SAM_LOGON_REQUEST
*r
)
1691 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_REQUEST");
1693 ndr_print_uint16(ndr
, "request_count", r
->request_count
);
1694 ndr_print_string(ndr
, "computer_name", r
->computer_name
);
1695 ndr_print_string(ndr
, "user_name", r
->user_name
);
1696 ndr_print_string(ndr
, "mailslot_name", r
->mailslot_name
);
1697 ndr_print_samr_AcctFlags(ndr
, "acct_control", r
->acct_control
);
1698 ndr_print_uint32(ndr
, "sid_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_dom_sid0(&r
->sid
, ndr
->flags
):r
->sid_size
);
1699 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
1700 ndr_print_dom_sid0(ndr
, "sid", &r
->sid
);
1701 ndr_print_netlogon_nt_version_flags(ndr
, "nt_version", r
->nt_version
);
1702 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
1703 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
1707 _PUBLIC_
enum ndr_err_code
ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_push
*ndr
, int ndr_flags
, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40
*r
)
1710 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1711 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1712 if (ndr_flags
& NDR_SCALARS
) {
1713 NDR_CHECK(ndr_push_align(ndr
, 4));
1714 NDR_CHECK(ndr_push_netlogon_command(ndr
, NDR_SCALARS
, r
->command
));
1716 uint32_t _flags_save_string
= ndr
->flags
;
1717 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1718 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server
));
1719 ndr
->flags
= _flags_save_string
;
1722 uint32_t _flags_save_string
= ndr
->flags
;
1723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1724 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
1725 ndr
->flags
= _flags_save_string
;
1728 uint32_t _flags_save_string
= ndr
->flags
;
1729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1730 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain
));
1731 ndr
->flags
= _flags_save_string
;
1733 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, r
->nt_version
));
1734 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
1735 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
1737 if (ndr_flags
& NDR_BUFFERS
) {
1739 ndr
->flags
= _flags_save_STRUCT
;
1741 return NDR_ERR_SUCCESS
;
1744 _PUBLIC_
enum ndr_err_code
ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_pull
*ndr
, int ndr_flags
, struct NETLOGON_SAM_LOGON_RESPONSE_NT40
*r
)
1747 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1749 if (ndr_flags
& NDR_SCALARS
) {
1750 NDR_CHECK(ndr_pull_align(ndr
, 4));
1751 NDR_CHECK(ndr_pull_netlogon_command(ndr
, NDR_SCALARS
, &r
->command
));
1753 uint32_t _flags_save_string
= ndr
->flags
;
1754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1755 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server
));
1756 ndr
->flags
= _flags_save_string
;
1759 uint32_t _flags_save_string
= ndr
->flags
;
1760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1761 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
1762 ndr
->flags
= _flags_save_string
;
1765 uint32_t _flags_save_string
= ndr
->flags
;
1766 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1767 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->domain
));
1768 ndr
->flags
= _flags_save_string
;
1770 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, &r
->nt_version
));
1771 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
1772 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
1774 if (ndr_flags
& NDR_BUFFERS
) {
1776 ndr
->flags
= _flags_save_STRUCT
;
1778 return NDR_ERR_SUCCESS
;
1781 _PUBLIC_
void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_NT40(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_SAM_LOGON_RESPONSE_NT40
*r
)
1783 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_RESPONSE_NT40");
1785 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1786 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1788 ndr_print_netlogon_command(ndr
, "command", r
->command
);
1789 ndr_print_string(ndr
, "server", r
->server
);
1790 ndr_print_string(ndr
, "user_name", r
->user_name
);
1791 ndr_print_string(ndr
, "domain", r
->domain
);
1792 ndr_print_netlogon_nt_version_flags(ndr
, "nt_version", r
->nt_version
);
1793 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
1794 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
1796 ndr
->flags
= _flags_save_STRUCT
;
1800 _PUBLIC_
enum ndr_err_code
ndr_push_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_push
*ndr
, int ndr_flags
, const struct NETLOGON_SAM_LOGON_RESPONSE
*r
)
1803 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1804 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1805 if (ndr_flags
& NDR_SCALARS
) {
1806 NDR_CHECK(ndr_push_align(ndr
, 4));
1807 NDR_CHECK(ndr_push_netlogon_command(ndr
, NDR_SCALARS
, r
->command
));
1809 uint32_t _flags_save_string
= ndr
->flags
;
1810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1811 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
1812 ndr
->flags
= _flags_save_string
;
1815 uint32_t _flags_save_string
= ndr
->flags
;
1816 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1817 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
1818 ndr
->flags
= _flags_save_string
;
1821 uint32_t _flags_save_string
= ndr
->flags
;
1822 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1823 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain_name
));
1824 ndr
->flags
= _flags_save_string
;
1826 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
1827 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->zero_uuid
));
1828 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->forest
));
1829 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->dns_domain
));
1830 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_dns_name
));
1831 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->pdc_ip
));
1832 NDR_CHECK(ndr_push_nbt_server_type(ndr
, NDR_SCALARS
, r
->server_type
));
1833 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, r
->nt_version
));
1834 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
1835 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
1837 if (ndr_flags
& NDR_BUFFERS
) {
1839 ndr
->flags
= _flags_save_STRUCT
;
1841 return NDR_ERR_SUCCESS
;
1844 _PUBLIC_
enum ndr_err_code
ndr_pull_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_pull
*ndr
, int ndr_flags
, struct NETLOGON_SAM_LOGON_RESPONSE
*r
)
1847 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1849 if (ndr_flags
& NDR_SCALARS
) {
1850 NDR_CHECK(ndr_pull_align(ndr
, 4));
1851 NDR_CHECK(ndr_pull_netlogon_command(ndr
, NDR_SCALARS
, &r
->command
));
1853 uint32_t _flags_save_string
= ndr
->flags
;
1854 ndr_set_flags(&ndr
->flags
, 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_string
= ndr
->flags
;
1860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1861 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
1862 ndr
->flags
= _flags_save_string
;
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
->domain_name
));
1868 ndr
->flags
= _flags_save_string
;
1870 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
1871 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->zero_uuid
));
1872 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->forest
));
1873 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->dns_domain
));
1874 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_dns_name
));
1875 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->pdc_ip
));
1876 NDR_CHECK(ndr_pull_nbt_server_type(ndr
, NDR_SCALARS
, &r
->server_type
));
1877 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, &r
->nt_version
));
1878 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
1879 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
1881 if (ndr_flags
& NDR_BUFFERS
) {
1883 ndr
->flags
= _flags_save_STRUCT
;
1885 return NDR_ERR_SUCCESS
;
1888 _PUBLIC_
void ndr_print_NETLOGON_SAM_LOGON_RESPONSE(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_SAM_LOGON_RESPONSE
*r
)
1890 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_RESPONSE");
1892 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1895 ndr_print_netlogon_command(ndr
, "command", r
->command
);
1896 ndr_print_string(ndr
, "pdc_name", r
->pdc_name
);
1897 ndr_print_string(ndr
, "user_name", r
->user_name
);
1898 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
1899 ndr_print_GUID(ndr
, "domain_uuid", &r
->domain_uuid
);
1900 ndr_print_GUID(ndr
, "zero_uuid", &r
->zero_uuid
);
1901 ndr_print_nbt_string(ndr
, "forest", r
->forest
);
1902 ndr_print_nbt_string(ndr
, "dns_domain", r
->dns_domain
);
1903 ndr_print_nbt_string(ndr
, "pdc_dns_name", r
->pdc_dns_name
);
1904 ndr_print_ipv4address(ndr
, "pdc_ip", r
->pdc_ip
);
1905 ndr_print_nbt_server_type(ndr
, "server_type", r
->server_type
);
1906 ndr_print_netlogon_nt_version_flags(ndr
, "nt_version", r
->nt_version
);
1907 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
1908 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
1910 ndr
->flags
= _flags_save_STRUCT
;
1914 _PUBLIC_
enum ndr_err_code
ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_push
*ndr
, int ndr_flags
, const struct NETLOGON_SAM_LOGON_RESPONSE_EX
*r
)
1917 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1918 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1919 if (ndr_flags
& NDR_SCALARS
) {
1920 NDR_CHECK(ndr_push_align(ndr
, 4));
1921 NDR_CHECK(ndr_push_netlogon_command(ndr
, NDR_SCALARS
, r
->command
));
1922 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->sbz
));
1923 NDR_CHECK(ndr_push_nbt_server_type(ndr
, NDR_SCALARS
, r
->server_type
));
1924 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
1925 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->forest
));
1926 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->dns_domain
));
1927 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_dns_name
));
1928 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->domain
));
1929 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
1930 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->user_name
));
1931 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->server_site
));
1932 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->client_site
));
1933 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, ndr_size_nbt_sockaddr(&r
->sockaddr
, ndr
->iconv_convenience
, ndr
->flags
)));
1935 struct ndr_push
*_ndr_sockaddr
;
1936 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_sockaddr
, 0, ndr_size_nbt_sockaddr(&r
->sockaddr
, ndr
->iconv_convenience
, ndr
->flags
)));
1937 NDR_CHECK(ndr_push_nbt_sockaddr(_ndr_sockaddr
, NDR_SCALARS
, &r
->sockaddr
));
1938 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_sockaddr
, 0, ndr_size_nbt_sockaddr(&r
->sockaddr
, ndr
->iconv_convenience
, ndr
->flags
)));
1940 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->next_closest_site
));
1941 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, r
->nt_version
));
1942 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
1943 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
1945 if (ndr_flags
& NDR_BUFFERS
) {
1947 ndr
->flags
= _flags_save_STRUCT
;
1949 return NDR_ERR_SUCCESS
;
1952 _PUBLIC_
enum ndr_err_code
ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_pull
*ndr
, int ndr_flags
, struct NETLOGON_SAM_LOGON_RESPONSE_EX
*r
)
1955 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1957 if (ndr_flags
& NDR_SCALARS
) {
1958 NDR_CHECK(ndr_pull_align(ndr
, 4));
1959 NDR_CHECK(ndr_pull_netlogon_command(ndr
, NDR_SCALARS
, &r
->command
));
1960 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->sbz
));
1961 NDR_CHECK(ndr_pull_nbt_server_type(ndr
, NDR_SCALARS
, &r
->server_type
));
1962 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_uuid
));
1963 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->forest
));
1964 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->dns_domain
));
1965 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_dns_name
));
1966 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->domain
));
1967 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
1968 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->user_name
));
1969 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->server_site
));
1970 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->client_site
));
1971 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->sockaddr_size
));
1973 struct ndr_pull
*_ndr_sockaddr
;
1974 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_sockaddr
, 0, r
->sockaddr_size
));
1975 NDR_CHECK(ndr_pull_nbt_sockaddr(_ndr_sockaddr
, NDR_SCALARS
, &r
->sockaddr
));
1976 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_sockaddr
, 0, r
->sockaddr_size
));
1978 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->next_closest_site
));
1979 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, &r
->nt_version
));
1980 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
1981 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
1983 if (ndr_flags
& NDR_BUFFERS
) {
1985 ndr
->flags
= _flags_save_STRUCT
;
1987 return NDR_ERR_SUCCESS
;
1990 _PUBLIC_
void ndr_print_NETLOGON_SAM_LOGON_RESPONSE_EX(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_SAM_LOGON_RESPONSE_EX
*r
)
1992 ndr_print_struct(ndr
, name
, "NETLOGON_SAM_LOGON_RESPONSE_EX");
1994 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1995 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
1997 ndr_print_netlogon_command(ndr
, "command", r
->command
);
1998 ndr_print_uint16(ndr
, "sbz", r
->sbz
);
1999 ndr_print_nbt_server_type(ndr
, "server_type", r
->server_type
);
2000 ndr_print_GUID(ndr
, "domain_uuid", &r
->domain_uuid
);
2001 ndr_print_nbt_string(ndr
, "forest", r
->forest
);
2002 ndr_print_nbt_string(ndr
, "dns_domain", r
->dns_domain
);
2003 ndr_print_nbt_string(ndr
, "pdc_dns_name", r
->pdc_dns_name
);
2004 ndr_print_nbt_string(ndr
, "domain", r
->domain
);
2005 ndr_print_nbt_string(ndr
, "pdc_name", r
->pdc_name
);
2006 ndr_print_nbt_string(ndr
, "user_name", r
->user_name
);
2007 ndr_print_nbt_string(ndr
, "server_site", r
->server_site
);
2008 ndr_print_nbt_string(ndr
, "client_site", r
->client_site
);
2009 ndr_print_uint8(ndr
, "sockaddr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_nbt_sockaddr(&r
->sockaddr
, ndr
->iconv_convenience
, ndr
->flags
):r
->sockaddr_size
);
2010 ndr_print_nbt_sockaddr(ndr
, "sockaddr", &r
->sockaddr
);
2011 ndr_print_nbt_string(ndr
, "next_closest_site", r
->next_closest_site
);
2012 ndr_print_netlogon_nt_version_flags(ndr
, "nt_version", r
->nt_version
);
2013 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2014 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2016 ndr
->flags
= _flags_save_STRUCT
;
2020 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
)
2022 if (ndr_flags
& NDR_SCALARS
) {
2023 NDR_CHECK(ndr_push_align(ndr
, 4));
2025 uint32_t _flags_save_string
= ndr
->flags
;
2026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2027 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->computer_name
));
2028 ndr
->flags
= _flags_save_string
;
2031 uint32_t _flags_save_string
= ndr
->flags
;
2032 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2033 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mailslot_name
));
2034 ndr
->flags
= _flags_save_string
;
2037 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2038 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2039 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
2040 ndr
->flags
= _flags_save_DATA_BLOB
;
2043 uint32_t _flags_save_string
= ndr
->flags
;
2044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2045 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_name
));
2046 ndr
->flags
= _flags_save_string
;
2048 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, r
->nt_version
));
2049 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2050 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2052 if (ndr_flags
& NDR_BUFFERS
) {
2054 return NDR_ERR_SUCCESS
;
2057 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
)
2059 if (ndr_flags
& NDR_SCALARS
) {
2060 NDR_CHECK(ndr_pull_align(ndr
, 4));
2062 uint32_t _flags_save_string
= ndr
->flags
;
2063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2064 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->computer_name
));
2065 ndr
->flags
= _flags_save_string
;
2068 uint32_t _flags_save_string
= ndr
->flags
;
2069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2070 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mailslot_name
));
2071 ndr
->flags
= _flags_save_string
;
2074 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2076 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
2077 ndr
->flags
= _flags_save_DATA_BLOB
;
2080 uint32_t _flags_save_string
= ndr
->flags
;
2081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2082 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_name
));
2083 ndr
->flags
= _flags_save_string
;
2085 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, &r
->nt_version
));
2086 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2087 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2089 if (ndr_flags
& NDR_BUFFERS
) {
2091 return NDR_ERR_SUCCESS
;
2094 _PUBLIC_
void ndr_print_nbt_netlogon_query_for_pdc(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_query_for_pdc
*r
)
2096 ndr_print_struct(ndr
, name
, "nbt_netlogon_query_for_pdc");
2098 ndr_print_string(ndr
, "computer_name", r
->computer_name
);
2099 ndr_print_string(ndr
, "mailslot_name", r
->mailslot_name
);
2100 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
2101 ndr_print_string(ndr
, "unicode_name", r
->unicode_name
);
2102 ndr_print_netlogon_nt_version_flags(ndr
, "nt_version", r
->nt_version
);
2103 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2104 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2108 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_netlogon_response_from_pdc(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_netlogon_response_from_pdc
*r
)
2111 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2112 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2113 if (ndr_flags
& NDR_SCALARS
) {
2114 NDR_CHECK(ndr_push_align(ndr
, 4));
2115 NDR_CHECK(ndr_push_netlogon_command(ndr
, NDR_SCALARS
, r
->command
));
2117 uint32_t _flags_save_string
= ndr
->flags
;
2118 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2119 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2120 ndr
->flags
= _flags_save_string
;
2123 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2124 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2125 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
2126 ndr
->flags
= _flags_save_DATA_BLOB
;
2129 uint32_t _flags_save_string
= ndr
->flags
;
2130 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2131 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_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_NULLTERM
);
2137 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain_name
));
2138 ndr
->flags
= _flags_save_string
;
2140 NDR_CHECK(ndr_push_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, r
->nt_version
));
2141 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lmnt_token
));
2142 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm20_token
));
2144 if (ndr_flags
& NDR_BUFFERS
) {
2146 ndr
->flags
= _flags_save_STRUCT
;
2148 return NDR_ERR_SUCCESS
;
2151 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_netlogon_response_from_pdc(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_netlogon_response_from_pdc
*r
)
2154 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2155 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2156 if (ndr_flags
& NDR_SCALARS
) {
2157 NDR_CHECK(ndr_pull_align(ndr
, 4));
2158 NDR_CHECK(ndr_pull_netlogon_command(ndr
, NDR_SCALARS
, &r
->command
));
2160 uint32_t _flags_save_string
= ndr
->flags
;
2161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2162 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2163 ndr
->flags
= _flags_save_string
;
2166 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2168 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
2169 ndr
->flags
= _flags_save_DATA_BLOB
;
2172 uint32_t _flags_save_string
= ndr
->flags
;
2173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2174 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_pdc_name
));
2175 ndr
->flags
= _flags_save_string
;
2178 uint32_t _flags_save_string
= ndr
->flags
;
2179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2180 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->domain_name
));
2181 ndr
->flags
= _flags_save_string
;
2183 NDR_CHECK(ndr_pull_netlogon_nt_version_flags(ndr
, NDR_SCALARS
, &r
->nt_version
));
2184 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lmnt_token
));
2185 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm20_token
));
2187 if (ndr_flags
& NDR_BUFFERS
) {
2189 ndr
->flags
= _flags_save_STRUCT
;
2191 return NDR_ERR_SUCCESS
;
2194 _PUBLIC_
void ndr_print_nbt_netlogon_response_from_pdc(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_response_from_pdc
*r
)
2196 ndr_print_struct(ndr
, name
, "nbt_netlogon_response_from_pdc");
2198 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2199 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2201 ndr_print_netlogon_command(ndr
, "command", r
->command
);
2202 ndr_print_string(ndr
, "pdc_name", r
->pdc_name
);
2203 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
2204 ndr_print_string(ndr
, "unicode_pdc_name", r
->unicode_pdc_name
);
2205 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
2206 ndr_print_netlogon_nt_version_flags(ndr
, "nt_version", r
->nt_version
);
2207 ndr_print_uint16(ndr
, "lmnt_token", r
->lmnt_token
);
2208 ndr_print_uint16(ndr
, "lm20_token", r
->lm20_token
);
2210 ndr
->flags
= _flags_save_STRUCT
;
2214 static enum ndr_err_code
ndr_push_nbt_db_change_info(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_db_change_info
*r
)
2216 if (ndr_flags
& NDR_SCALARS
) {
2217 NDR_CHECK(ndr_push_align(ndr
, 8));
2218 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->db_index
));
2219 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->serial
));
2220 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timestamp
));
2222 if (ndr_flags
& NDR_BUFFERS
) {
2224 return NDR_ERR_SUCCESS
;
2227 static enum ndr_err_code
ndr_pull_nbt_db_change_info(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_db_change_info
*r
)
2229 if (ndr_flags
& NDR_SCALARS
) {
2230 NDR_CHECK(ndr_pull_align(ndr
, 8));
2231 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->db_index
));
2232 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->serial
));
2233 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timestamp
));
2235 if (ndr_flags
& NDR_BUFFERS
) {
2237 return NDR_ERR_SUCCESS
;
2240 _PUBLIC_
void ndr_print_nbt_db_change_info(struct ndr_print
*ndr
, const char *name
, const struct nbt_db_change_info
*r
)
2242 ndr_print_struct(ndr
, name
, "nbt_db_change_info");
2244 ndr_print_netr_SamDatabaseID(ndr
, "db_index", r
->db_index
);
2245 ndr_print_hyper(ndr
, "serial", r
->serial
);
2246 ndr_print_NTTIME(ndr
, "timestamp", r
->timestamp
);
2250 static enum ndr_err_code
ndr_push_NETLOGON_DB_CHANGE(struct ndr_push
*ndr
, int ndr_flags
, const struct NETLOGON_DB_CHANGE
*r
)
2252 uint32_t cntr_dbchange_0
;
2253 if (ndr_flags
& NDR_SCALARS
) {
2254 NDR_CHECK(ndr_push_align(ndr
, 8));
2255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_lo
));
2256 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
2257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pulse
));
2258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->random
));
2260 uint32_t _flags_save_string
= ndr
->flags
;
2261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2262 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->pdc_name
));
2263 ndr
->flags
= _flags_save_string
;
2266 uint32_t _flags_save_string
= ndr
->flags
;
2267 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2268 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->domain
));
2269 ndr
->flags
= _flags_save_string
;
2272 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2274 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->_pad
));
2275 ndr
->flags
= _flags_save_DATA_BLOB
;
2278 uint32_t _flags_save_string
= ndr
->flags
;
2279 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2280 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_pdc_name
));
2281 ndr
->flags
= _flags_save_string
;
2284 uint32_t _flags_save_string
= ndr
->flags
;
2285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2286 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->unicode_domain
));
2287 ndr
->flags
= _flags_save_string
;
2289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->db_count
));
2290 for (cntr_dbchange_0
= 0; cntr_dbchange_0
< r
->db_count
; cntr_dbchange_0
++) {
2291 NDR_CHECK(ndr_push_nbt_db_change_info(ndr
, NDR_SCALARS
, &r
->dbchange
[cntr_dbchange_0
]));
2293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
2295 struct ndr_push
*_ndr_sid
;
2296 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_sid
, 0, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
2297 NDR_CHECK(ndr_push_dom_sid0(_ndr_sid
, NDR_SCALARS
|NDR_BUFFERS
, &r
->sid
));
2298 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_sid
, 0, ndr_size_dom_sid0(&r
->sid
, ndr
->flags
)));
2300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->message_format_version
));
2301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->message_token
));
2303 if (ndr_flags
& NDR_BUFFERS
) {
2305 return NDR_ERR_SUCCESS
;
2308 static enum ndr_err_code
ndr_pull_NETLOGON_DB_CHANGE(struct ndr_pull
*ndr
, int ndr_flags
, struct NETLOGON_DB_CHANGE
*r
)
2310 uint32_t cntr_dbchange_0
;
2311 TALLOC_CTX
*_mem_save_dbchange_0
;
2312 if (ndr_flags
& NDR_SCALARS
) {
2313 NDR_CHECK(ndr_pull_align(ndr
, 8));
2314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_lo
));
2315 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
2316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pulse
));
2317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->random
));
2319 uint32_t _flags_save_string
= ndr
->flags
;
2320 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2321 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->pdc_name
));
2322 ndr
->flags
= _flags_save_string
;
2325 uint32_t _flags_save_string
= ndr
->flags
;
2326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2327 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->domain
));
2328 ndr
->flags
= _flags_save_string
;
2331 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
2332 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN2
);
2333 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->_pad
));
2334 ndr
->flags
= _flags_save_DATA_BLOB
;
2337 uint32_t _flags_save_string
= ndr
->flags
;
2338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2339 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_pdc_name
));
2340 ndr
->flags
= _flags_save_string
;
2343 uint32_t _flags_save_string
= ndr
->flags
;
2344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2345 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->unicode_domain
));
2346 ndr
->flags
= _flags_save_string
;
2348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->db_count
));
2349 NDR_PULL_ALLOC_N(ndr
, r
->dbchange
, r
->db_count
);
2350 _mem_save_dbchange_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2351 NDR_PULL_SET_MEM_CTX(ndr
, r
->dbchange
, 0);
2352 for (cntr_dbchange_0
= 0; cntr_dbchange_0
< r
->db_count
; cntr_dbchange_0
++) {
2353 NDR_CHECK(ndr_pull_nbt_db_change_info(ndr
, NDR_SCALARS
, &r
->dbchange
[cntr_dbchange_0
]));
2355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dbchange_0
, 0);
2356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sid_size
));
2358 struct ndr_pull
*_ndr_sid
;
2359 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_sid
, 0, r
->sid_size
));
2360 NDR_CHECK(ndr_pull_dom_sid0(_ndr_sid
, NDR_SCALARS
|NDR_BUFFERS
, &r
->sid
));
2361 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_sid
, 0, r
->sid_size
));
2363 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->message_format_version
));
2364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->message_token
));
2366 if (ndr_flags
& NDR_BUFFERS
) {
2368 return NDR_ERR_SUCCESS
;
2371 _PUBLIC_
void ndr_print_NETLOGON_DB_CHANGE(struct ndr_print
*ndr
, const char *name
, const struct NETLOGON_DB_CHANGE
*r
)
2373 uint32_t cntr_dbchange_0
;
2374 ndr_print_struct(ndr
, name
, "NETLOGON_DB_CHANGE");
2376 ndr_print_uint32(ndr
, "serial_lo", r
->serial_lo
);
2377 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
2378 ndr_print_uint32(ndr
, "pulse", r
->pulse
);
2379 ndr_print_uint32(ndr
, "random", r
->random
);
2380 ndr_print_string(ndr
, "pdc_name", r
->pdc_name
);
2381 ndr_print_string(ndr
, "domain", r
->domain
);
2382 ndr_print_DATA_BLOB(ndr
, "_pad", r
->_pad
);
2383 ndr_print_string(ndr
, "unicode_pdc_name", r
->unicode_pdc_name
);
2384 ndr_print_string(ndr
, "unicode_domain", r
->unicode_domain
);
2385 ndr_print_uint32(ndr
, "db_count", r
->db_count
);
2386 ndr
->print(ndr
, "%s: ARRAY(%d)", "dbchange", (int)r
->db_count
);
2388 for (cntr_dbchange_0
=0;cntr_dbchange_0
<r
->db_count
;cntr_dbchange_0
++) {
2390 if (asprintf(&idx_0
, "[%d]", cntr_dbchange_0
) != -1) {
2391 ndr_print_nbt_db_change_info(ndr
, "dbchange", &r
->dbchange
[cntr_dbchange_0
]);
2396 ndr_print_uint32(ndr
, "sid_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_dom_sid0(&r
->sid
, ndr
->flags
):r
->sid_size
);
2397 ndr_print_dom_sid0(ndr
, "sid", &r
->sid
);
2398 ndr_print_uint32(ndr
, "message_format_version", r
->message_format_version
);
2399 ndr_print_uint32(ndr
, "message_token", r
->message_token
);
2403 static enum ndr_err_code
ndr_push_nbt_netlogon_request(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_netlogon_request
*r
)
2405 if (ndr_flags
& NDR_SCALARS
) {
2406 int level
= ndr_push_get_switch_value(ndr
, r
);
2408 case LOGON_SAM_LOGON_REQUEST
: {
2409 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_SCALARS
, &r
->logon
));
2412 case LOGON_PRIMARY_QUERY
: {
2413 NDR_CHECK(ndr_push_nbt_netlogon_query_for_pdc(ndr
, NDR_SCALARS
, &r
->pdc
));
2416 case NETLOGON_ANNOUNCE_UAS
: {
2417 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr
, NDR_SCALARS
, &r
->uas
));
2421 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2424 if (ndr_flags
& NDR_BUFFERS
) {
2425 int level
= ndr_push_get_switch_value(ndr
, r
);
2427 case LOGON_SAM_LOGON_REQUEST
:
2428 NDR_CHECK(ndr_push_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_BUFFERS
, &r
->logon
));
2431 case LOGON_PRIMARY_QUERY
:
2434 case NETLOGON_ANNOUNCE_UAS
:
2435 NDR_CHECK(ndr_push_NETLOGON_DB_CHANGE(ndr
, NDR_BUFFERS
, &r
->uas
));
2439 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2442 return NDR_ERR_SUCCESS
;
2445 static enum ndr_err_code
ndr_pull_nbt_netlogon_request(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_netlogon_request
*r
)
2448 level
= ndr_pull_get_switch_value(ndr
, r
);
2449 if (ndr_flags
& NDR_SCALARS
) {
2451 case LOGON_SAM_LOGON_REQUEST
: {
2452 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_SCALARS
, &r
->logon
));
2455 case LOGON_PRIMARY_QUERY
: {
2456 NDR_CHECK(ndr_pull_nbt_netlogon_query_for_pdc(ndr
, NDR_SCALARS
, &r
->pdc
));
2459 case NETLOGON_ANNOUNCE_UAS
: {
2460 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr
, NDR_SCALARS
, &r
->uas
));
2464 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2467 if (ndr_flags
& NDR_BUFFERS
) {
2469 case LOGON_SAM_LOGON_REQUEST
:
2470 NDR_CHECK(ndr_pull_NETLOGON_SAM_LOGON_REQUEST(ndr
, NDR_BUFFERS
, &r
->logon
));
2473 case LOGON_PRIMARY_QUERY
:
2476 case NETLOGON_ANNOUNCE_UAS
:
2477 NDR_CHECK(ndr_pull_NETLOGON_DB_CHANGE(ndr
, NDR_BUFFERS
, &r
->uas
));
2481 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
2484 return NDR_ERR_SUCCESS
;
2487 _PUBLIC_
void ndr_print_nbt_netlogon_request(struct ndr_print
*ndr
, const char *name
, const union nbt_netlogon_request
*r
)
2490 level
= ndr_print_get_switch_value(ndr
, r
);
2491 ndr_print_union(ndr
, name
, level
, "nbt_netlogon_request");
2493 case LOGON_SAM_LOGON_REQUEST
:
2494 ndr_print_NETLOGON_SAM_LOGON_REQUEST(ndr
, "logon", &r
->logon
);
2497 case LOGON_PRIMARY_QUERY
:
2498 ndr_print_nbt_netlogon_query_for_pdc(ndr
, "pdc", &r
->pdc
);
2501 case NETLOGON_ANNOUNCE_UAS
:
2502 ndr_print_NETLOGON_DB_CHANGE(ndr
, "uas", &r
->uas
);
2506 ndr_print_bad_level(ndr
, name
, level
);
2510 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_netlogon_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_netlogon_packet
*r
)
2513 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2514 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2515 if (ndr_flags
& NDR_SCALARS
) {
2516 NDR_CHECK(ndr_push_align(ndr
, 8));
2517 NDR_CHECK(ndr_push_netlogon_command(ndr
, NDR_SCALARS
, r
->command
));
2518 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->req
, r
->command
));
2519 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr
, NDR_SCALARS
, &r
->req
));
2521 if (ndr_flags
& NDR_BUFFERS
) {
2522 NDR_CHECK(ndr_push_nbt_netlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
2524 ndr
->flags
= _flags_save_STRUCT
;
2526 return NDR_ERR_SUCCESS
;
2529 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_netlogon_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_netlogon_packet
*r
)
2532 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2533 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2534 if (ndr_flags
& NDR_SCALARS
) {
2535 NDR_CHECK(ndr_pull_align(ndr
, 8));
2536 NDR_CHECK(ndr_pull_netlogon_command(ndr
, NDR_SCALARS
, &r
->command
));
2537 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->req
, r
->command
));
2538 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr
, NDR_SCALARS
, &r
->req
));
2540 if (ndr_flags
& NDR_BUFFERS
) {
2541 NDR_CHECK(ndr_pull_nbt_netlogon_request(ndr
, NDR_BUFFERS
, &r
->req
));
2543 ndr
->flags
= _flags_save_STRUCT
;
2545 return NDR_ERR_SUCCESS
;
2548 _PUBLIC_
void ndr_print_nbt_netlogon_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_netlogon_packet
*r
)
2550 ndr_print_struct(ndr
, name
, "nbt_netlogon_packet");
2552 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
2555 ndr_print_netlogon_command(ndr
, "command", r
->command
);
2556 ndr_print_set_switch_value(ndr
, &r
->req
, r
->command
);
2557 ndr_print_nbt_netlogon_request(ndr
, "req", &r
->req
);
2559 ndr
->flags
= _flags_save_STRUCT
;
2563 static enum ndr_err_code
ndr_push_nbt_browse_opcode(struct ndr_push
*ndr
, int ndr_flags
, enum nbt_browse_opcode r
)
2565 NDR_CHECK(ndr_push_enum_uint8(ndr
, NDR_SCALARS
, r
));
2566 return NDR_ERR_SUCCESS
;
2569 static enum ndr_err_code
ndr_pull_nbt_browse_opcode(struct ndr_pull
*ndr
, int ndr_flags
, enum nbt_browse_opcode
*r
)
2572 NDR_CHECK(ndr_pull_enum_uint8(ndr
, NDR_SCALARS
, &v
));
2574 return NDR_ERR_SUCCESS
;
2577 _PUBLIC_
void ndr_print_nbt_browse_opcode(struct ndr_print
*ndr
, const char *name
, enum nbt_browse_opcode r
)
2579 const char *val
= NULL
;
2582 case HostAnnouncement
: val
= "HostAnnouncement"; break;
2583 case AnnouncementRequest
: val
= "AnnouncementRequest"; break;
2584 case Election
: val
= "Election"; break;
2585 case GetBackupListReq
: val
= "GetBackupListReq"; break;
2586 case GetBackupListResp
: val
= "GetBackupListResp"; break;
2587 case BecomeBackup
: val
= "BecomeBackup"; break;
2588 case DomainAnnouncement
: val
= "DomainAnnouncement"; break;
2589 case MasterAnnouncement
: val
= "MasterAnnouncement"; break;
2590 case ResetBrowserState
: val
= "ResetBrowserState"; break;
2591 case LocalMasterAnnouncement
: val
= "LocalMasterAnnouncement"; break;
2593 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
2596 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
)
2598 if (ndr_flags
& NDR_SCALARS
) {
2599 NDR_CHECK(ndr_push_align(ndr
, 4));
2600 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->UpdateCount
));
2601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Periodicity
));
2602 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
2603 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMajor
));
2604 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMinor
));
2605 NDR_CHECK(ndr_push_svcctl_ServerType(ndr
, NDR_SCALARS
, r
->ServerType
));
2606 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMajorVer
));
2607 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMinorVer
));
2608 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Signature
));
2610 uint32_t _flags_save_string
= ndr
->flags
;
2611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2612 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->Comment
));
2613 ndr
->flags
= _flags_save_string
;
2616 if (ndr_flags
& NDR_BUFFERS
) {
2618 return NDR_ERR_SUCCESS
;
2621 static enum ndr_err_code
ndr_pull_nbt_browse_host_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_host_announcement
*r
)
2623 if (ndr_flags
& NDR_SCALARS
) {
2624 NDR_CHECK(ndr_pull_align(ndr
, 4));
2625 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->UpdateCount
));
2626 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Periodicity
));
2627 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
2628 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMajor
));
2629 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMinor
));
2630 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr
, NDR_SCALARS
, &r
->ServerType
));
2631 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMajorVer
));
2632 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMinorVer
));
2633 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Signature
));
2635 uint32_t _flags_save_string
= ndr
->flags
;
2636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2637 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->Comment
));
2638 ndr
->flags
= _flags_save_string
;
2641 if (ndr_flags
& NDR_BUFFERS
) {
2643 return NDR_ERR_SUCCESS
;
2646 _PUBLIC_
void ndr_print_nbt_browse_host_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_host_announcement
*r
)
2648 ndr_print_struct(ndr
, name
, "nbt_browse_host_announcement");
2650 ndr_print_uint8(ndr
, "UpdateCount", r
->UpdateCount
);
2651 ndr_print_uint32(ndr
, "Periodicity", r
->Periodicity
);
2652 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
2653 ndr_print_uint8(ndr
, "OSMajor", r
->OSMajor
);
2654 ndr_print_uint8(ndr
, "OSMinor", r
->OSMinor
);
2655 ndr_print_svcctl_ServerType(ndr
, "ServerType", r
->ServerType
);
2656 ndr_print_uint8(ndr
, "BroMajorVer", r
->BroMajorVer
);
2657 ndr_print_uint8(ndr
, "BroMinorVer", r
->BroMinorVer
);
2658 ndr_print_uint16(ndr
, "Signature", r
->Signature
);
2659 ndr_print_string(ndr
, "Comment", r
->Comment
);
2663 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
)
2665 if (ndr_flags
& NDR_SCALARS
) {
2666 NDR_CHECK(ndr_push_align(ndr
, 4));
2667 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Unused
));
2669 uint32_t _flags_save_string
= ndr
->flags
;
2670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2671 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->ResponseName
));
2672 ndr
->flags
= _flags_save_string
;
2675 if (ndr_flags
& NDR_BUFFERS
) {
2677 return NDR_ERR_SUCCESS
;
2680 static enum ndr_err_code
ndr_pull_nbt_browse_announcement_request(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_announcement_request
*r
)
2682 if (ndr_flags
& NDR_SCALARS
) {
2683 NDR_CHECK(ndr_pull_align(ndr
, 4));
2684 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Unused
));
2686 uint32_t _flags_save_string
= ndr
->flags
;
2687 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2688 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->ResponseName
));
2689 ndr
->flags
= _flags_save_string
;
2692 if (ndr_flags
& NDR_BUFFERS
) {
2694 return NDR_ERR_SUCCESS
;
2697 _PUBLIC_
void ndr_print_nbt_browse_announcement_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_announcement_request
*r
)
2699 ndr_print_struct(ndr
, name
, "nbt_browse_announcement_request");
2701 ndr_print_uint8(ndr
, "Unused", r
->Unused
);
2702 ndr_print_string(ndr
, "ResponseName", r
->ResponseName
);
2706 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
)
2708 if (ndr_flags
& NDR_SCALARS
) {
2709 NDR_CHECK(ndr_push_align(ndr
, 4));
2710 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Version
));
2711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Criteria
));
2712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->UpTime
));
2713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Reserved
));
2715 uint32_t _flags_save_string
= ndr
->flags
;
2716 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2717 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->ServerName
));
2718 ndr
->flags
= _flags_save_string
;
2721 if (ndr_flags
& NDR_BUFFERS
) {
2723 return NDR_ERR_SUCCESS
;
2726 static enum ndr_err_code
ndr_pull_nbt_browse_election_request(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_election_request
*r
)
2728 if (ndr_flags
& NDR_SCALARS
) {
2729 NDR_CHECK(ndr_pull_align(ndr
, 4));
2730 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Version
));
2731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Criteria
));
2732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->UpTime
));
2733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Reserved
));
2735 uint32_t _flags_save_string
= ndr
->flags
;
2736 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2737 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->ServerName
));
2738 ndr
->flags
= _flags_save_string
;
2741 if (ndr_flags
& NDR_BUFFERS
) {
2743 return NDR_ERR_SUCCESS
;
2746 _PUBLIC_
void ndr_print_nbt_browse_election_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_election_request
*r
)
2748 ndr_print_struct(ndr
, name
, "nbt_browse_election_request");
2750 ndr_print_uint8(ndr
, "Version", r
->Version
);
2751 ndr_print_uint32(ndr
, "Criteria", r
->Criteria
);
2752 ndr_print_uint32(ndr
, "UpTime", r
->UpTime
);
2753 ndr_print_uint32(ndr
, "Reserved", r
->Reserved
);
2754 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
2758 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
)
2760 if (ndr_flags
& NDR_SCALARS
) {
2761 NDR_CHECK(ndr_push_align(ndr
, 4));
2762 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->ReqCount
));
2763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Token
));
2765 if (ndr_flags
& NDR_BUFFERS
) {
2767 return NDR_ERR_SUCCESS
;
2770 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
)
2772 if (ndr_flags
& NDR_SCALARS
) {
2773 NDR_CHECK(ndr_pull_align(ndr
, 4));
2774 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->ReqCount
));
2775 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Token
));
2777 if (ndr_flags
& NDR_BUFFERS
) {
2779 return NDR_ERR_SUCCESS
;
2782 _PUBLIC_
void ndr_print_nbt_browse_backup_list_request(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_backup_list_request
*r
)
2784 ndr_print_struct(ndr
, name
, "nbt_browse_backup_list_request");
2786 ndr_print_uint8(ndr
, "ReqCount", r
->ReqCount
);
2787 ndr_print_uint32(ndr
, "Token", r
->Token
);
2791 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
)
2793 uint32_t cntr_BackupServerList_0
;
2794 if (ndr_flags
& NDR_SCALARS
) {
2795 NDR_CHECK(ndr_push_align(ndr
, 4));
2796 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BackupCount
));
2797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Token
));
2798 for (cntr_BackupServerList_0
= 0; cntr_BackupServerList_0
< r
->BackupCount
; cntr_BackupServerList_0
++) {
2799 NDR_CHECK(ndr_push_nbt_name(ndr
, NDR_SCALARS
, &r
->BackupServerList
[cntr_BackupServerList_0
]));
2802 if (ndr_flags
& NDR_BUFFERS
) {
2804 return NDR_ERR_SUCCESS
;
2807 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
)
2809 uint32_t cntr_BackupServerList_0
;
2810 TALLOC_CTX
*_mem_save_BackupServerList_0
;
2811 if (ndr_flags
& NDR_SCALARS
) {
2812 NDR_CHECK(ndr_pull_align(ndr
, 4));
2813 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BackupCount
));
2814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Token
));
2815 NDR_PULL_ALLOC_N(ndr
, r
->BackupServerList
, r
->BackupCount
);
2816 _mem_save_BackupServerList_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2817 NDR_PULL_SET_MEM_CTX(ndr
, r
->BackupServerList
, 0);
2818 for (cntr_BackupServerList_0
= 0; cntr_BackupServerList_0
< r
->BackupCount
; cntr_BackupServerList_0
++) {
2819 NDR_CHECK(ndr_pull_nbt_name(ndr
, NDR_SCALARS
, &r
->BackupServerList
[cntr_BackupServerList_0
]));
2821 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_BackupServerList_0
, 0);
2823 if (ndr_flags
& NDR_BUFFERS
) {
2825 return NDR_ERR_SUCCESS
;
2828 _PUBLIC_
void ndr_print_nbt_browse_backup_list_response(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_backup_list_response
*r
)
2830 uint32_t cntr_BackupServerList_0
;
2831 ndr_print_struct(ndr
, name
, "nbt_browse_backup_list_response");
2833 ndr_print_uint8(ndr
, "BackupCount", r
->BackupCount
);
2834 ndr_print_uint32(ndr
, "Token", r
->Token
);
2835 ndr
->print(ndr
, "%s: ARRAY(%d)", "BackupServerList", (int)r
->BackupCount
);
2837 for (cntr_BackupServerList_0
=0;cntr_BackupServerList_0
<r
->BackupCount
;cntr_BackupServerList_0
++) {
2839 if (asprintf(&idx_0
, "[%d]", cntr_BackupServerList_0
) != -1) {
2840 ndr_print_nbt_name(ndr
, "BackupServerList", &r
->BackupServerList
[cntr_BackupServerList_0
]);
2848 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
)
2850 if (ndr_flags
& NDR_SCALARS
) {
2851 NDR_CHECK(ndr_push_align(ndr
, 4));
2853 uint32_t _flags_save_string
= ndr
->flags
;
2854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2855 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->BrowserName
));
2856 ndr
->flags
= _flags_save_string
;
2859 if (ndr_flags
& NDR_BUFFERS
) {
2861 return NDR_ERR_SUCCESS
;
2864 static enum ndr_err_code
ndr_pull_nbt_browse_become_backup(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_become_backup
*r
)
2866 if (ndr_flags
& NDR_SCALARS
) {
2867 NDR_CHECK(ndr_pull_align(ndr
, 4));
2869 uint32_t _flags_save_string
= ndr
->flags
;
2870 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2871 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->BrowserName
));
2872 ndr
->flags
= _flags_save_string
;
2875 if (ndr_flags
& NDR_BUFFERS
) {
2877 return NDR_ERR_SUCCESS
;
2880 _PUBLIC_
void ndr_print_nbt_browse_become_backup(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_become_backup
*r
)
2882 ndr_print_struct(ndr
, name
, "nbt_browse_become_backup");
2884 ndr_print_string(ndr
, "BrowserName", r
->BrowserName
);
2888 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
)
2890 if (ndr_flags
& NDR_SCALARS
) {
2891 NDR_CHECK(ndr_push_align(ndr
, 4));
2892 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->UpdateCount
));
2893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Periodicity
));
2894 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
2895 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMajor
));
2896 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMinor
));
2897 NDR_CHECK(ndr_push_svcctl_ServerType(ndr
, NDR_SCALARS
, r
->ServerType
));
2898 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MysteriousField
));
2900 uint32_t _flags_save_string
= ndr
->flags
;
2901 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2902 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->Comment
));
2903 ndr
->flags
= _flags_save_string
;
2906 if (ndr_flags
& NDR_BUFFERS
) {
2908 return NDR_ERR_SUCCESS
;
2911 static enum ndr_err_code
ndr_pull_nbt_browse_domain_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_domain_announcement
*r
)
2913 if (ndr_flags
& NDR_SCALARS
) {
2914 NDR_CHECK(ndr_pull_align(ndr
, 4));
2915 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->UpdateCount
));
2916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Periodicity
));
2917 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
2918 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMajor
));
2919 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMinor
));
2920 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr
, NDR_SCALARS
, &r
->ServerType
));
2921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MysteriousField
));
2923 uint32_t _flags_save_string
= ndr
->flags
;
2924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2925 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->Comment
));
2926 ndr
->flags
= _flags_save_string
;
2929 if (ndr_flags
& NDR_BUFFERS
) {
2931 return NDR_ERR_SUCCESS
;
2934 _PUBLIC_
void ndr_print_nbt_browse_domain_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_domain_announcement
*r
)
2936 ndr_print_struct(ndr
, name
, "nbt_browse_domain_announcement");
2938 ndr_print_uint8(ndr
, "UpdateCount", r
->UpdateCount
);
2939 ndr_print_uint32(ndr
, "Periodicity", r
->Periodicity
);
2940 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
2941 ndr_print_uint8(ndr
, "OSMajor", r
->OSMajor
);
2942 ndr_print_uint8(ndr
, "OSMinor", r
->OSMinor
);
2943 ndr_print_svcctl_ServerType(ndr
, "ServerType", r
->ServerType
);
2944 ndr_print_uint32(ndr
, "MysteriousField", r
->MysteriousField
);
2945 ndr_print_string(ndr
, "Comment", r
->Comment
);
2949 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
)
2951 if (ndr_flags
& NDR_SCALARS
) {
2952 NDR_CHECK(ndr_push_align(ndr
, 4));
2954 uint32_t _flags_save_string
= ndr
->flags
;
2955 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2956 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->ServerName
));
2957 ndr
->flags
= _flags_save_string
;
2960 if (ndr_flags
& NDR_BUFFERS
) {
2962 return NDR_ERR_SUCCESS
;
2965 static enum ndr_err_code
ndr_pull_nbt_browse_master_announcement(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_master_announcement
*r
)
2967 if (ndr_flags
& NDR_SCALARS
) {
2968 NDR_CHECK(ndr_pull_align(ndr
, 4));
2970 uint32_t _flags_save_string
= ndr
->flags
;
2971 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
2972 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->ServerName
));
2973 ndr
->flags
= _flags_save_string
;
2976 if (ndr_flags
& NDR_BUFFERS
) {
2978 return NDR_ERR_SUCCESS
;
2981 _PUBLIC_
void ndr_print_nbt_browse_master_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_master_announcement
*r
)
2983 ndr_print_struct(ndr
, name
, "nbt_browse_master_announcement");
2985 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
2989 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
)
2991 if (ndr_flags
& NDR_SCALARS
) {
2992 NDR_CHECK(ndr_push_align(ndr
, 1));
2993 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Command
));
2995 if (ndr_flags
& NDR_BUFFERS
) {
2997 return NDR_ERR_SUCCESS
;
3000 static enum ndr_err_code
ndr_pull_nbt_browse_reset_state(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_reset_state
*r
)
3002 if (ndr_flags
& NDR_SCALARS
) {
3003 NDR_CHECK(ndr_pull_align(ndr
, 1));
3004 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Command
));
3006 if (ndr_flags
& NDR_BUFFERS
) {
3008 return NDR_ERR_SUCCESS
;
3011 _PUBLIC_
void ndr_print_nbt_browse_reset_state(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_reset_state
*r
)
3013 ndr_print_struct(ndr
, name
, "nbt_browse_reset_state");
3015 ndr_print_uint8(ndr
, "Command", r
->Command
);
3019 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
)
3021 if (ndr_flags
& NDR_SCALARS
) {
3022 NDR_CHECK(ndr_push_align(ndr
, 4));
3023 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->UpdateCount
));
3024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->Periodicity
));
3025 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
3026 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMajor
));
3027 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->OSMinor
));
3028 NDR_CHECK(ndr_push_svcctl_ServerType(ndr
, NDR_SCALARS
, r
->ServerType
));
3029 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMajorVer
));
3030 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->BroMinorVer
));
3031 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Signature
));
3033 uint32_t _flags_save_string
= ndr
->flags
;
3034 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3035 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->Comment
));
3036 ndr
->flags
= _flags_save_string
;
3039 if (ndr_flags
& NDR_BUFFERS
) {
3041 return NDR_ERR_SUCCESS
;
3044 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
)
3046 if (ndr_flags
& NDR_SCALARS
) {
3047 NDR_CHECK(ndr_pull_align(ndr
, 4));
3048 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->UpdateCount
));
3049 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->Periodicity
));
3050 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ServerName
, 16, sizeof(uint8_t), CH_DOS
));
3051 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMajor
));
3052 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->OSMinor
));
3053 NDR_CHECK(ndr_pull_svcctl_ServerType(ndr
, NDR_SCALARS
, &r
->ServerType
));
3054 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMajorVer
));
3055 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->BroMinorVer
));
3056 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Signature
));
3058 uint32_t _flags_save_string
= ndr
->flags
;
3059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
3060 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->Comment
));
3061 ndr
->flags
= _flags_save_string
;
3064 if (ndr_flags
& NDR_BUFFERS
) {
3066 return NDR_ERR_SUCCESS
;
3069 _PUBLIC_
void ndr_print_nbt_browse_local_master_announcement(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_local_master_announcement
*r
)
3071 ndr_print_struct(ndr
, name
, "nbt_browse_local_master_announcement");
3073 ndr_print_uint8(ndr
, "UpdateCount", r
->UpdateCount
);
3074 ndr_print_uint32(ndr
, "Periodicity", r
->Periodicity
);
3075 ndr_print_string(ndr
, "ServerName", r
->ServerName
);
3076 ndr_print_uint8(ndr
, "OSMajor", r
->OSMajor
);
3077 ndr_print_uint8(ndr
, "OSMinor", r
->OSMinor
);
3078 ndr_print_svcctl_ServerType(ndr
, "ServerType", r
->ServerType
);
3079 ndr_print_uint8(ndr
, "BroMajorVer", r
->BroMajorVer
);
3080 ndr_print_uint8(ndr
, "BroMinorVer", r
->BroMinorVer
);
3081 ndr_print_uint16(ndr
, "Signature", r
->Signature
);
3082 ndr_print_string(ndr
, "Comment", r
->Comment
);
3086 static enum ndr_err_code
ndr_push_nbt_browse_payload(struct ndr_push
*ndr
, int ndr_flags
, const union nbt_browse_payload
*r
)
3088 if (ndr_flags
& NDR_SCALARS
) {
3089 int level
= ndr_push_get_switch_value(ndr
, r
);
3091 case HostAnnouncement
: {
3092 NDR_CHECK(ndr_push_nbt_browse_host_announcement(ndr
, NDR_SCALARS
, &r
->host_annoucement
));
3095 case AnnouncementRequest
: {
3096 NDR_CHECK(ndr_push_nbt_browse_announcement_request(ndr
, NDR_SCALARS
, &r
->announcement_request
));
3100 NDR_CHECK(ndr_push_nbt_browse_election_request(ndr
, NDR_SCALARS
, &r
->election_request
));
3103 case GetBackupListReq
: {
3104 NDR_CHECK(ndr_push_nbt_browse_backup_list_request(ndr
, NDR_SCALARS
, &r
->backup_list_request
));
3107 case GetBackupListResp
: {
3108 NDR_CHECK(ndr_push_nbt_browse_backup_list_response(ndr
, NDR_SCALARS
, &r
->backup_list_response
));
3111 case BecomeBackup
: {
3112 NDR_CHECK(ndr_push_nbt_browse_become_backup(ndr
, NDR_SCALARS
, &r
->become_backup
));
3115 case DomainAnnouncement
: {
3116 NDR_CHECK(ndr_push_nbt_browse_domain_announcement(ndr
, NDR_SCALARS
, &r
->domain_announcement
));
3119 case MasterAnnouncement
: {
3120 NDR_CHECK(ndr_push_nbt_browse_master_announcement(ndr
, NDR_SCALARS
, &r
->master_announcement
));
3123 case ResetBrowserState
: {
3124 NDR_CHECK(ndr_push_nbt_browse_reset_state(ndr
, NDR_SCALARS
, &r
->reset_browser_state
));
3127 case LocalMasterAnnouncement
: {
3128 NDR_CHECK(ndr_push_nbt_browse_local_master_announcement(ndr
, NDR_SCALARS
, &r
->local_master_announcement
));
3132 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3135 if (ndr_flags
& NDR_BUFFERS
) {
3136 int level
= ndr_push_get_switch_value(ndr
, r
);
3138 case HostAnnouncement
:
3141 case AnnouncementRequest
:
3147 case GetBackupListReq
:
3150 case GetBackupListResp
:
3156 case DomainAnnouncement
:
3159 case MasterAnnouncement
:
3162 case ResetBrowserState
:
3165 case LocalMasterAnnouncement
:
3169 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3172 return NDR_ERR_SUCCESS
;
3175 static enum ndr_err_code
ndr_pull_nbt_browse_payload(struct ndr_pull
*ndr
, int ndr_flags
, union nbt_browse_payload
*r
)
3178 level
= ndr_pull_get_switch_value(ndr
, r
);
3179 if (ndr_flags
& NDR_SCALARS
) {
3181 case HostAnnouncement
: {
3182 NDR_CHECK(ndr_pull_nbt_browse_host_announcement(ndr
, NDR_SCALARS
, &r
->host_annoucement
));
3185 case AnnouncementRequest
: {
3186 NDR_CHECK(ndr_pull_nbt_browse_announcement_request(ndr
, NDR_SCALARS
, &r
->announcement_request
));
3190 NDR_CHECK(ndr_pull_nbt_browse_election_request(ndr
, NDR_SCALARS
, &r
->election_request
));
3193 case GetBackupListReq
: {
3194 NDR_CHECK(ndr_pull_nbt_browse_backup_list_request(ndr
, NDR_SCALARS
, &r
->backup_list_request
));
3197 case GetBackupListResp
: {
3198 NDR_CHECK(ndr_pull_nbt_browse_backup_list_response(ndr
, NDR_SCALARS
, &r
->backup_list_response
));
3201 case BecomeBackup
: {
3202 NDR_CHECK(ndr_pull_nbt_browse_become_backup(ndr
, NDR_SCALARS
, &r
->become_backup
));
3205 case DomainAnnouncement
: {
3206 NDR_CHECK(ndr_pull_nbt_browse_domain_announcement(ndr
, NDR_SCALARS
, &r
->domain_announcement
));
3209 case MasterAnnouncement
: {
3210 NDR_CHECK(ndr_pull_nbt_browse_master_announcement(ndr
, NDR_SCALARS
, &r
->master_announcement
));
3213 case ResetBrowserState
: {
3214 NDR_CHECK(ndr_pull_nbt_browse_reset_state(ndr
, NDR_SCALARS
, &r
->reset_browser_state
));
3217 case LocalMasterAnnouncement
: {
3218 NDR_CHECK(ndr_pull_nbt_browse_local_master_announcement(ndr
, NDR_SCALARS
, &r
->local_master_announcement
));
3222 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3225 if (ndr_flags
& NDR_BUFFERS
) {
3227 case HostAnnouncement
:
3230 case AnnouncementRequest
:
3236 case GetBackupListReq
:
3239 case GetBackupListResp
:
3245 case DomainAnnouncement
:
3248 case MasterAnnouncement
:
3251 case ResetBrowserState
:
3254 case LocalMasterAnnouncement
:
3258 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3261 return NDR_ERR_SUCCESS
;
3264 _PUBLIC_
void ndr_print_nbt_browse_payload(struct ndr_print
*ndr
, const char *name
, const union nbt_browse_payload
*r
)
3267 level
= ndr_print_get_switch_value(ndr
, r
);
3268 ndr_print_union(ndr
, name
, level
, "nbt_browse_payload");
3270 case HostAnnouncement
:
3271 ndr_print_nbt_browse_host_announcement(ndr
, "host_annoucement", &r
->host_annoucement
);
3274 case AnnouncementRequest
:
3275 ndr_print_nbt_browse_announcement_request(ndr
, "announcement_request", &r
->announcement_request
);
3279 ndr_print_nbt_browse_election_request(ndr
, "election_request", &r
->election_request
);
3282 case GetBackupListReq
:
3283 ndr_print_nbt_browse_backup_list_request(ndr
, "backup_list_request", &r
->backup_list_request
);
3286 case GetBackupListResp
:
3287 ndr_print_nbt_browse_backup_list_response(ndr
, "backup_list_response", &r
->backup_list_response
);
3291 ndr_print_nbt_browse_become_backup(ndr
, "become_backup", &r
->become_backup
);
3294 case DomainAnnouncement
:
3295 ndr_print_nbt_browse_domain_announcement(ndr
, "domain_announcement", &r
->domain_announcement
);
3298 case MasterAnnouncement
:
3299 ndr_print_nbt_browse_master_announcement(ndr
, "master_announcement", &r
->master_announcement
);
3302 case ResetBrowserState
:
3303 ndr_print_nbt_browse_reset_state(ndr
, "reset_browser_state", &r
->reset_browser_state
);
3306 case LocalMasterAnnouncement
:
3307 ndr_print_nbt_browse_local_master_announcement(ndr
, "local_master_announcement", &r
->local_master_announcement
);
3311 ndr_print_bad_level(ndr
, name
, level
);
3315 _PUBLIC_
enum ndr_err_code
ndr_push_nbt_browse_packet(struct ndr_push
*ndr
, int ndr_flags
, const struct nbt_browse_packet
*r
)
3318 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3320 if (ndr_flags
& NDR_SCALARS
) {
3321 NDR_CHECK(ndr_push_align(ndr
, 4));
3322 NDR_CHECK(ndr_push_nbt_browse_opcode(ndr
, NDR_SCALARS
, r
->opcode
));
3323 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->payload
, r
->opcode
));
3324 NDR_CHECK(ndr_push_nbt_browse_payload(ndr
, NDR_SCALARS
, &r
->payload
));
3326 if (ndr_flags
& NDR_BUFFERS
) {
3328 ndr
->flags
= _flags_save_STRUCT
;
3330 return NDR_ERR_SUCCESS
;
3333 _PUBLIC_
enum ndr_err_code
ndr_pull_nbt_browse_packet(struct ndr_pull
*ndr
, int ndr_flags
, struct nbt_browse_packet
*r
)
3336 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3337 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3338 if (ndr_flags
& NDR_SCALARS
) {
3339 NDR_CHECK(ndr_pull_align(ndr
, 4));
3340 NDR_CHECK(ndr_pull_nbt_browse_opcode(ndr
, NDR_SCALARS
, &r
->opcode
));
3341 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->payload
, r
->opcode
));
3342 NDR_CHECK(ndr_pull_nbt_browse_payload(ndr
, NDR_SCALARS
, &r
->payload
));
3344 if (ndr_flags
& NDR_BUFFERS
) {
3346 ndr
->flags
= _flags_save_STRUCT
;
3348 return NDR_ERR_SUCCESS
;
3351 _PUBLIC_
void ndr_print_nbt_browse_packet(struct ndr_print
*ndr
, const char *name
, const struct nbt_browse_packet
*r
)
3353 ndr_print_struct(ndr
, name
, "nbt_browse_packet");
3355 uint32_t _flags_save_STRUCT
= ndr
->flags
;
3356 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_NOALIGN
);
3358 ndr_print_nbt_browse_opcode(ndr
, "opcode", r
->opcode
);
3359 ndr_print_set_switch_value(ndr
, &r
->payload
, r
->opcode
);
3360 ndr_print_nbt_browse_payload(ndr
, "payload", &r
->payload
);
3362 ndr
->flags
= _flags_save_STRUCT
;