1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_netlogon.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_security.h"
10 #include "librpc/gen_ndr/ndr_nbt.h"
11 static enum ndr_err_code
ndr_push_netr_UasInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasInfo
*r
)
13 if (ndr_flags
& NDR_SCALARS
) {
14 NDR_CHECK(ndr_push_align(ndr
, 4));
15 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
16 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priv
));
17 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_flags
));
18 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_count
));
19 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_pw_count
));
20 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logon
));
21 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logoff
));
22 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->logoff_time
));
23 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->kickoff_time
));
24 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->password_age
));
25 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_can_change
));
26 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_must_change
));
27 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer
));
28 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
29 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->script_path
));
30 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
32 if (ndr_flags
& NDR_BUFFERS
) {
33 if (r
->account_name
) {
34 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
35 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
36 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
37 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
40 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
41 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
42 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
43 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer
, ndr_charset_length(r
->computer
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
46 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
47 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
48 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
49 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
53 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
54 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
55 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->script_path
, ndr_charset_length(r
->script_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
58 return NDR_ERR_SUCCESS
;
61 static enum ndr_err_code
ndr_pull_netr_UasInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasInfo
*r
)
63 uint32_t _ptr_account_name
;
64 uint32_t size_account_name_1
= 0;
65 uint32_t length_account_name_1
= 0;
66 TALLOC_CTX
*_mem_save_account_name_0
;
67 uint32_t _ptr_computer
;
68 uint32_t size_computer_1
= 0;
69 uint32_t length_computer_1
= 0;
70 TALLOC_CTX
*_mem_save_computer_0
;
72 uint32_t size_domain_1
= 0;
73 uint32_t length_domain_1
= 0;
74 TALLOC_CTX
*_mem_save_domain_0
;
75 uint32_t _ptr_script_path
;
76 uint32_t size_script_path_1
= 0;
77 uint32_t length_script_path_1
= 0;
78 TALLOC_CTX
*_mem_save_script_path_0
;
79 if (ndr_flags
& NDR_SCALARS
) {
80 NDR_CHECK(ndr_pull_align(ndr
, 4));
81 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
82 if (_ptr_account_name
) {
83 NDR_PULL_ALLOC(ndr
, r
->account_name
);
85 r
->account_name
= NULL
;
87 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priv
));
88 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_flags
));
89 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_count
));
90 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_pw_count
));
91 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logon
));
92 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logoff
));
93 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->logoff_time
));
94 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->kickoff_time
));
95 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->password_age
));
96 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_can_change
));
97 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_must_change
));
98 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer
));
100 NDR_PULL_ALLOC(ndr
, r
->computer
);
104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
106 NDR_PULL_ALLOC(ndr
, r
->domain
);
110 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_script_path
));
111 if (_ptr_script_path
) {
112 NDR_PULL_ALLOC(ndr
, r
->script_path
);
114 r
->script_path
= NULL
;
116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
118 if (ndr_flags
& NDR_BUFFERS
) {
119 if (r
->account_name
) {
120 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
121 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
122 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
123 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
124 size_account_name_1
= ndr_get_array_size(ndr
, &r
->account_name
);
125 length_account_name_1
= ndr_get_array_length(ndr
, &r
->account_name
);
126 if (length_account_name_1
> size_account_name_1
) {
127 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_1
, length_account_name_1
);
129 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_1
, sizeof(uint16_t)));
130 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, length_account_name_1
, sizeof(uint16_t), CH_UTF16
));
131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
134 _mem_save_computer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
135 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer
, 0);
136 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer
));
137 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer
));
138 size_computer_1
= ndr_get_array_size(ndr
, &r
->computer
);
139 length_computer_1
= ndr_get_array_length(ndr
, &r
->computer
);
140 if (length_computer_1
> size_computer_1
) {
141 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_1
, length_computer_1
);
143 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_1
, sizeof(uint16_t)));
144 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer
, length_computer_1
, sizeof(uint16_t), CH_UTF16
));
145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_0
, 0);
148 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
149 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
150 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
151 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
152 size_domain_1
= ndr_get_array_size(ndr
, &r
->domain
);
153 length_domain_1
= ndr_get_array_length(ndr
, &r
->domain
);
154 if (length_domain_1
> size_domain_1
) {
155 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_1
, length_domain_1
);
157 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_1
, sizeof(uint16_t)));
158 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, length_domain_1
, sizeof(uint16_t), CH_UTF16
));
159 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
161 if (r
->script_path
) {
162 _mem_save_script_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
163 NDR_PULL_SET_MEM_CTX(ndr
, r
->script_path
, 0);
164 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->script_path
));
165 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->script_path
));
166 size_script_path_1
= ndr_get_array_size(ndr
, &r
->script_path
);
167 length_script_path_1
= ndr_get_array_length(ndr
, &r
->script_path
);
168 if (length_script_path_1
> size_script_path_1
) {
169 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_script_path_1
, length_script_path_1
);
171 NDR_CHECK(ndr_check_string_terminator(ndr
, length_script_path_1
, sizeof(uint16_t)));
172 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->script_path
, length_script_path_1
, sizeof(uint16_t), CH_UTF16
));
173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_script_path_0
, 0);
176 return NDR_ERR_SUCCESS
;
179 _PUBLIC_
void ndr_print_netr_UasInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasInfo
*r
)
181 ndr_print_struct(ndr
, name
, "netr_UasInfo");
183 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
185 if (r
->account_name
) {
186 ndr_print_string(ndr
, "account_name", r
->account_name
);
189 ndr_print_uint32(ndr
, "priv", r
->priv
);
190 ndr_print_uint32(ndr
, "auth_flags", r
->auth_flags
);
191 ndr_print_uint32(ndr
, "logon_count", r
->logon_count
);
192 ndr_print_uint32(ndr
, "bad_pw_count", r
->bad_pw_count
);
193 ndr_print_time_t(ndr
, "last_logon", r
->last_logon
);
194 ndr_print_time_t(ndr
, "last_logoff", r
->last_logoff
);
195 ndr_print_time_t(ndr
, "logoff_time", r
->logoff_time
);
196 ndr_print_time_t(ndr
, "kickoff_time", r
->kickoff_time
);
197 ndr_print_uint32(ndr
, "password_age", r
->password_age
);
198 ndr_print_time_t(ndr
, "pw_can_change", r
->pw_can_change
);
199 ndr_print_time_t(ndr
, "pw_must_change", r
->pw_must_change
);
200 ndr_print_ptr(ndr
, "computer", r
->computer
);
203 ndr_print_string(ndr
, "computer", r
->computer
);
206 ndr_print_ptr(ndr
, "domain", r
->domain
);
209 ndr_print_string(ndr
, "domain", r
->domain
);
212 ndr_print_ptr(ndr
, "script_path", r
->script_path
);
214 if (r
->script_path
) {
215 ndr_print_string(ndr
, "script_path", r
->script_path
);
218 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
222 static enum ndr_err_code
ndr_push_netr_UasLogoffInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasLogoffInfo
*r
)
224 if (ndr_flags
& NDR_SCALARS
) {
225 NDR_CHECK(ndr_push_align(ndr
, 4));
226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->duration
));
227 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
229 if (ndr_flags
& NDR_BUFFERS
) {
231 return NDR_ERR_SUCCESS
;
234 static enum ndr_err_code
ndr_pull_netr_UasLogoffInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasLogoffInfo
*r
)
236 if (ndr_flags
& NDR_SCALARS
) {
237 NDR_CHECK(ndr_pull_align(ndr
, 4));
238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->duration
));
239 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
241 if (ndr_flags
& NDR_BUFFERS
) {
243 return NDR_ERR_SUCCESS
;
246 _PUBLIC_
void ndr_print_netr_UasLogoffInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasLogoffInfo
*r
)
248 ndr_print_struct(ndr
, name
, "netr_UasLogoffInfo");
250 ndr_print_uint32(ndr
, "duration", r
->duration
);
251 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
255 _PUBLIC_
enum ndr_err_code
ndr_push_netr_AcctLockStr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AcctLockStr
*r
)
257 if (ndr_flags
& NDR_SCALARS
) {
258 NDR_CHECK(ndr_push_align(ndr
, 4));
259 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->lockout_duration
));
260 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reset_count
));
261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_attempt_lockout
));
262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
));
264 if (ndr_flags
& NDR_BUFFERS
) {
266 return NDR_ERR_SUCCESS
;
269 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_AcctLockStr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AcctLockStr
*r
)
271 if (ndr_flags
& NDR_SCALARS
) {
272 NDR_CHECK(ndr_pull_align(ndr
, 4));
273 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->lockout_duration
));
274 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reset_count
));
275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_attempt_lockout
));
276 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
278 if (ndr_flags
& NDR_BUFFERS
) {
280 return NDR_ERR_SUCCESS
;
283 _PUBLIC_
void ndr_print_netr_AcctLockStr(struct ndr_print
*ndr
, const char *name
, const struct netr_AcctLockStr
*r
)
285 ndr_print_struct(ndr
, name
, "netr_AcctLockStr");
287 ndr_print_dlong(ndr
, "lockout_duration", r
->lockout_duration
);
288 ndr_print_udlong(ndr
, "reset_count", r
->reset_count
);
289 ndr_print_uint32(ndr
, "bad_attempt_lockout", r
->bad_attempt_lockout
);
290 ndr_print_uint32(ndr
, "dummy", r
->dummy
);
294 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonParameterControl(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
297 return NDR_ERR_SUCCESS
;
300 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonParameterControl(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
305 return NDR_ERR_SUCCESS
;
308 _PUBLIC_
void ndr_print_netr_LogonParameterControl(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
310 ndr_print_uint32(ndr
, name
, r
);
312 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED
, r
);
313 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS
, r
);
314 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS
, r
);
315 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT
, r
);
316 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH
, r
);
317 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
, r
);
321 static enum ndr_err_code
ndr_push_netr_IdentityInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_IdentityInfo
*r
)
323 if (ndr_flags
& NDR_SCALARS
) {
324 NDR_CHECK(ndr_push_align(ndr
, 4));
325 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
326 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr
, NDR_SCALARS
, r
->parameter_control
));
327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_low
));
328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_high
));
329 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
330 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
332 if (ndr_flags
& NDR_BUFFERS
) {
333 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
334 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
335 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
337 return NDR_ERR_SUCCESS
;
340 static enum ndr_err_code
ndr_pull_netr_IdentityInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_IdentityInfo
*r
)
342 if (ndr_flags
& NDR_SCALARS
) {
343 NDR_CHECK(ndr_pull_align(ndr
, 4));
344 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
345 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr
, NDR_SCALARS
, &r
->parameter_control
));
346 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_low
));
347 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_high
));
348 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
349 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
351 if (ndr_flags
& NDR_BUFFERS
) {
352 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
353 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
354 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
356 return NDR_ERR_SUCCESS
;
359 _PUBLIC_
void ndr_print_netr_IdentityInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_IdentityInfo
*r
)
361 ndr_print_struct(ndr
, name
, "netr_IdentityInfo");
363 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
364 ndr_print_netr_LogonParameterControl(ndr
, "parameter_control", r
->parameter_control
);
365 ndr_print_uint32(ndr
, "logon_id_low", r
->logon_id_low
);
366 ndr_print_uint32(ndr
, "logon_id_high", r
->logon_id_high
);
367 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
368 ndr_print_lsa_String(ndr
, "workstation", &r
->workstation
);
372 static enum ndr_err_code
ndr_push_netr_PasswordInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordInfo
*r
)
374 if (ndr_flags
& NDR_SCALARS
) {
375 NDR_CHECK(ndr_push_align(ndr
, 4));
376 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
377 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
378 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
380 if (ndr_flags
& NDR_BUFFERS
) {
381 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
383 return NDR_ERR_SUCCESS
;
386 static enum ndr_err_code
ndr_pull_netr_PasswordInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordInfo
*r
)
388 if (ndr_flags
& NDR_SCALARS
) {
389 NDR_CHECK(ndr_pull_align(ndr
, 4));
390 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
391 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
392 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
394 if (ndr_flags
& NDR_BUFFERS
) {
395 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
397 return NDR_ERR_SUCCESS
;
400 _PUBLIC_
void ndr_print_netr_PasswordInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordInfo
*r
)
402 ndr_print_struct(ndr
, name
, "netr_PasswordInfo");
404 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
405 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
406 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
410 static enum ndr_err_code
ndr_push_netr_ChallengeResponse(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChallengeResponse
*r
)
413 uint32_t _flags_save_STRUCT
= ndr
->flags
;
414 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
415 if (ndr_flags
& NDR_SCALARS
) {
416 NDR_CHECK(ndr_push_align(ndr
, 4));
417 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
418 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
419 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
421 if (ndr_flags
& NDR_BUFFERS
) {
423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
426 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
429 ndr
->flags
= _flags_save_STRUCT
;
431 return NDR_ERR_SUCCESS
;
434 static enum ndr_err_code
ndr_pull_netr_ChallengeResponse(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChallengeResponse
*r
)
437 uint32_t size_data_1
= 0;
438 uint32_t length_data_1
= 0;
439 TALLOC_CTX
*_mem_save_data_0
;
441 uint32_t _flags_save_STRUCT
= ndr
->flags
;
442 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
443 if (ndr_flags
& NDR_SCALARS
) {
444 NDR_CHECK(ndr_pull_align(ndr
, 4));
445 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
446 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
449 NDR_PULL_ALLOC(ndr
, r
->data
);
454 if (ndr_flags
& NDR_BUFFERS
) {
456 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
457 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
458 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
459 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
460 size_data_1
= ndr_get_array_size(ndr
, &r
->data
);
461 length_data_1
= ndr_get_array_length(ndr
, &r
->data
);
462 if (length_data_1
> size_data_1
) {
463 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_1
, length_data_1
);
465 NDR_PULL_ALLOC_N(ndr
, r
->data
, size_data_1
);
466 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, length_data_1
));
467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
470 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
473 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
));
476 ndr
->flags
= _flags_save_STRUCT
;
478 return NDR_ERR_SUCCESS
;
481 _PUBLIC_
void ndr_print_netr_ChallengeResponse(struct ndr_print
*ndr
, const char *name
, const struct netr_ChallengeResponse
*r
)
483 ndr_print_struct(ndr
, name
, "netr_ChallengeResponse");
485 uint32_t _flags_save_STRUCT
= ndr
->flags
;
486 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
488 ndr_print_uint16(ndr
, "length", r
->length
);
489 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
490 ndr_print_ptr(ndr
, "data", r
->data
);
493 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
497 ndr
->flags
= _flags_save_STRUCT
;
501 static enum ndr_err_code
ndr_push_netr_NetworkInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NetworkInfo
*r
)
504 uint32_t _flags_save_STRUCT
= ndr
->flags
;
505 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
506 if (ndr_flags
& NDR_SCALARS
) {
507 NDR_CHECK(ndr_push_align(ndr
, 4));
508 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
509 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
510 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
511 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
513 if (ndr_flags
& NDR_BUFFERS
) {
514 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
515 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
516 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
518 ndr
->flags
= _flags_save_STRUCT
;
520 return NDR_ERR_SUCCESS
;
523 static enum ndr_err_code
ndr_pull_netr_NetworkInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NetworkInfo
*r
)
525 uint32_t size_challenge_0
= 0;
527 uint32_t _flags_save_STRUCT
= ndr
->flags
;
528 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
529 if (ndr_flags
& NDR_SCALARS
) {
530 NDR_CHECK(ndr_pull_align(ndr
, 4));
531 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
532 size_challenge_0
= 8;
533 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, size_challenge_0
));
534 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
535 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
537 if (ndr_flags
& NDR_BUFFERS
) {
538 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
539 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
540 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
542 ndr
->flags
= _flags_save_STRUCT
;
544 return NDR_ERR_SUCCESS
;
547 _PUBLIC_
void ndr_print_netr_NetworkInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_NetworkInfo
*r
)
549 ndr_print_struct(ndr
, name
, "netr_NetworkInfo");
551 uint32_t _flags_save_STRUCT
= ndr
->flags
;
552 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
554 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
555 ndr_print_array_uint8(ndr
, "challenge", r
->challenge
, 8);
556 ndr_print_netr_ChallengeResponse(ndr
, "nt", &r
->nt
);
557 ndr_print_netr_ChallengeResponse(ndr
, "lm", &r
->lm
);
559 ndr
->flags
= _flags_save_STRUCT
;
563 static enum ndr_err_code
ndr_push_netr_GenericInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GenericInfo
*r
)
566 uint32_t _flags_save_STRUCT
= ndr
->flags
;
567 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
568 if (ndr_flags
& NDR_SCALARS
) {
569 NDR_CHECK(ndr_push_align(ndr
, 4));
570 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
571 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->package_name
));
572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
573 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
575 if (ndr_flags
& NDR_BUFFERS
) {
576 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
577 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->package_name
));
579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
580 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
583 ndr
->flags
= _flags_save_STRUCT
;
585 return NDR_ERR_SUCCESS
;
588 static enum ndr_err_code
ndr_pull_netr_GenericInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GenericInfo
*r
)
591 uint32_t size_data_1
= 0;
592 TALLOC_CTX
*_mem_save_data_0
;
594 uint32_t _flags_save_STRUCT
= ndr
->flags
;
595 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
596 if (ndr_flags
& NDR_SCALARS
) {
597 NDR_CHECK(ndr_pull_align(ndr
, 4));
598 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
599 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->package_name
));
600 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
601 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
603 NDR_PULL_ALLOC(ndr
, r
->data
);
608 if (ndr_flags
& NDR_BUFFERS
) {
609 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
610 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->package_name
));
612 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
613 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
614 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
615 size_data_1
= ndr_get_array_size(ndr
, &r
->data
);
616 NDR_PULL_ALLOC_N(ndr
, r
->data
, size_data_1
);
617 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_1
));
618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
621 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
624 ndr
->flags
= _flags_save_STRUCT
;
626 return NDR_ERR_SUCCESS
;
629 _PUBLIC_
void ndr_print_netr_GenericInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_GenericInfo
*r
)
631 ndr_print_struct(ndr
, name
, "netr_GenericInfo");
633 uint32_t _flags_save_STRUCT
= ndr
->flags
;
634 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
636 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
637 ndr_print_lsa_String(ndr
, "package_name", &r
->package_name
);
638 ndr_print_uint32(ndr
, "length", r
->length
);
639 ndr_print_ptr(ndr
, "data", r
->data
);
642 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
646 ndr
->flags
= _flags_save_STRUCT
;
650 static enum ndr_err_code
ndr_push_netr_LogonInfoClass(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonInfoClass r
)
652 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
653 return NDR_ERR_SUCCESS
;
656 static enum ndr_err_code
ndr_pull_netr_LogonInfoClass(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonInfoClass
*r
)
659 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
661 return NDR_ERR_SUCCESS
;
664 _PUBLIC_
void ndr_print_netr_LogonInfoClass(struct ndr_print
*ndr
, const char *name
, enum netr_LogonInfoClass r
)
666 const char *val
= NULL
;
669 case NetlogonInteractiveInformation
: val
= "NetlogonInteractiveInformation"; break;
670 case NetlogonNetworkInformation
: val
= "NetlogonNetworkInformation"; break;
671 case NetlogonServiceInformation
: val
= "NetlogonServiceInformation"; break;
672 case NetlogonGenericInformation
: val
= "NetlogonGenericInformation"; break;
673 case NetlogonInteractiveTransitiveInformation
: val
= "NetlogonInteractiveTransitiveInformation"; break;
674 case NetlogonNetworkTransitiveInformation
: val
= "NetlogonNetworkTransitiveInformation"; break;
675 case NetlogonServiceTransitiveInformation
: val
= "NetlogonServiceTransitiveInformation"; break;
677 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
680 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonLevel(struct ndr_push
*ndr
, int ndr_flags
, const union netr_LogonLevel
*r
)
682 if (ndr_flags
& NDR_SCALARS
) {
683 int level
= ndr_push_get_switch_value(ndr
, r
);
684 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, level
));
686 case NetlogonInteractiveInformation
: {
687 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
690 case NetlogonNetworkInformation
: {
691 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
694 case NetlogonServiceInformation
: {
695 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
698 case NetlogonGenericInformation
: {
699 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
702 case NetlogonInteractiveTransitiveInformation
: {
703 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
706 case NetlogonNetworkTransitiveInformation
: {
707 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
710 case NetlogonServiceTransitiveInformation
: {
711 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
715 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
718 if (ndr_flags
& NDR_BUFFERS
) {
719 int level
= ndr_push_get_switch_value(ndr
, r
);
721 case NetlogonInteractiveInformation
:
723 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
727 case NetlogonNetworkInformation
:
729 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
733 case NetlogonServiceInformation
:
735 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
739 case NetlogonGenericInformation
:
741 NDR_CHECK(ndr_push_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
745 case NetlogonInteractiveTransitiveInformation
:
747 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
751 case NetlogonNetworkTransitiveInformation
:
753 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
757 case NetlogonServiceTransitiveInformation
:
759 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
764 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
767 return NDR_ERR_SUCCESS
;
770 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonLevel(struct ndr_pull
*ndr
, int ndr_flags
, union netr_LogonLevel
*r
)
774 TALLOC_CTX
*_mem_save_password_0
;
775 uint32_t _ptr_password
;
776 TALLOC_CTX
*_mem_save_network_0
;
777 uint32_t _ptr_network
;
778 TALLOC_CTX
*_mem_save_generic_0
;
779 uint32_t _ptr_generic
;
780 level
= ndr_pull_get_switch_value(ndr
, r
);
781 if (ndr_flags
& NDR_SCALARS
) {
782 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
783 if (_level
!= level
) {
784 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
787 case NetlogonInteractiveInformation
: {
788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
790 NDR_PULL_ALLOC(ndr
, r
->password
);
796 case NetlogonNetworkInformation
: {
797 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
799 NDR_PULL_ALLOC(ndr
, r
->network
);
805 case NetlogonServiceInformation
: {
806 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
808 NDR_PULL_ALLOC(ndr
, r
->password
);
814 case NetlogonGenericInformation
: {
815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
817 NDR_PULL_ALLOC(ndr
, r
->generic
);
823 case NetlogonInteractiveTransitiveInformation
: {
824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
826 NDR_PULL_ALLOC(ndr
, r
->password
);
832 case NetlogonNetworkTransitiveInformation
: {
833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
835 NDR_PULL_ALLOC(ndr
, r
->network
);
841 case NetlogonServiceTransitiveInformation
: {
842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
844 NDR_PULL_ALLOC(ndr
, r
->password
);
851 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
854 if (ndr_flags
& NDR_BUFFERS
) {
856 case NetlogonInteractiveInformation
:
858 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
859 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
860 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
865 case NetlogonNetworkInformation
:
867 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
868 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
869 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
870 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
874 case NetlogonServiceInformation
:
876 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
877 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
878 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
883 case NetlogonGenericInformation
:
885 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
886 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
887 NDR_CHECK(ndr_pull_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
888 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
892 case NetlogonInteractiveTransitiveInformation
:
894 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
895 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
896 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
901 case NetlogonNetworkTransitiveInformation
:
903 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
904 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
905 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
910 case NetlogonServiceTransitiveInformation
:
912 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
913 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
914 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
915 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
920 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
923 return NDR_ERR_SUCCESS
;
926 _PUBLIC_
void ndr_print_netr_LogonLevel(struct ndr_print
*ndr
, const char *name
, const union netr_LogonLevel
*r
)
929 level
= ndr_print_get_switch_value(ndr
, r
);
930 ndr_print_union(ndr
, name
, level
, "netr_LogonLevel");
932 case NetlogonInteractiveInformation
:
933 ndr_print_ptr(ndr
, "password", r
->password
);
936 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
941 case NetlogonNetworkInformation
:
942 ndr_print_ptr(ndr
, "network", r
->network
);
945 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
950 case NetlogonServiceInformation
:
951 ndr_print_ptr(ndr
, "password", r
->password
);
954 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
959 case NetlogonGenericInformation
:
960 ndr_print_ptr(ndr
, "generic", r
->generic
);
963 ndr_print_netr_GenericInfo(ndr
, "generic", r
->generic
);
968 case NetlogonInteractiveTransitiveInformation
:
969 ndr_print_ptr(ndr
, "password", r
->password
);
972 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
977 case NetlogonNetworkTransitiveInformation
:
978 ndr_print_ptr(ndr
, "network", r
->network
);
981 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
986 case NetlogonServiceTransitiveInformation
:
987 ndr_print_ptr(ndr
, "password", r
->password
);
990 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
996 ndr_print_bad_level(ndr
, name
, level
);
1000 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UserSessionKey
*r
)
1003 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1004 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1005 if (ndr_flags
& NDR_SCALARS
) {
1006 NDR_CHECK(ndr_push_align(ndr
, 1));
1007 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
1009 if (ndr_flags
& NDR_BUFFERS
) {
1011 ndr
->flags
= _flags_save_STRUCT
;
1013 return NDR_ERR_SUCCESS
;
1016 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UserSessionKey
*r
)
1018 uint32_t size_key_0
= 0;
1020 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1021 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1022 if (ndr_flags
& NDR_SCALARS
) {
1023 NDR_CHECK(ndr_pull_align(ndr
, 1));
1025 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, size_key_0
));
1027 if (ndr_flags
& NDR_BUFFERS
) {
1029 ndr
->flags
= _flags_save_STRUCT
;
1031 return NDR_ERR_SUCCESS
;
1034 _PUBLIC_
void ndr_print_netr_UserSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_UserSessionKey
*r
)
1036 ndr_print_struct(ndr
, name
, "netr_UserSessionKey");
1038 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1039 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1041 ndr_print_array_uint8(ndr
, "key", r
->key
, 16);
1043 ndr
->flags
= _flags_save_STRUCT
;
1047 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LMSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LMSessionKey
*r
)
1050 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1051 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1052 if (ndr_flags
& NDR_SCALARS
) {
1053 NDR_CHECK(ndr_push_align(ndr
, 1));
1054 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
1056 if (ndr_flags
& NDR_BUFFERS
) {
1058 ndr
->flags
= _flags_save_STRUCT
;
1060 return NDR_ERR_SUCCESS
;
1063 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LMSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LMSessionKey
*r
)
1065 uint32_t size_key_0
= 0;
1067 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1068 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1069 if (ndr_flags
& NDR_SCALARS
) {
1070 NDR_CHECK(ndr_pull_align(ndr
, 1));
1072 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, size_key_0
));
1074 if (ndr_flags
& NDR_BUFFERS
) {
1076 ndr
->flags
= _flags_save_STRUCT
;
1078 return NDR_ERR_SUCCESS
;
1081 _PUBLIC_
void ndr_print_netr_LMSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_LMSessionKey
*r
)
1083 ndr_print_struct(ndr
, name
, "netr_LMSessionKey");
1085 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1086 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1088 ndr_print_array_uint8(ndr
, "key", r
->key
, 8);
1090 ndr
->flags
= _flags_save_STRUCT
;
1094 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1097 return NDR_ERR_SUCCESS
;
1100 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1103 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1105 return NDR_ERR_SUCCESS
;
1108 _PUBLIC_
void ndr_print_netr_UserFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1110 ndr_print_uint32(ndr
, name
, r
);
1112 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST
, r
);
1113 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION
, r
);
1114 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT
, r
);
1115 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD
, r
);
1116 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS
, r
);
1117 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY
, r
);
1118 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT
, r
);
1119 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED
, r
);
1120 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS
, r
);
1121 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED
, r
);
1122 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON
, r
);
1126 static enum ndr_err_code
ndr_push_netr_SamBaseInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamBaseInfo
*r
)
1128 uint32_t cntr_unknown_0
;
1129 if (ndr_flags
& NDR_SCALARS
) {
1130 NDR_CHECK(ndr_push_align(ndr
, 4));
1131 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
1132 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
1133 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
1134 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
1135 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
1136 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
1137 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1138 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1139 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1140 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1141 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1142 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1143 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
1144 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
1145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
1146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
1147 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1148 NDR_CHECK(ndr_push_netr_UserFlags(ndr
, NDR_SCALARS
, r
->user_flags
));
1149 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1150 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1151 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1152 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
1153 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1154 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
1155 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1156 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
1159 if (ndr_flags
& NDR_BUFFERS
) {
1160 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1161 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1162 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1163 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1164 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1165 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1166 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1167 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1168 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1169 if (r
->domain_sid
) {
1170 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1173 return NDR_ERR_SUCCESS
;
1176 static enum ndr_err_code
ndr_pull_netr_SamBaseInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamBaseInfo
*r
)
1178 uint32_t _ptr_domain_sid
;
1179 TALLOC_CTX
*_mem_save_domain_sid_0
;
1180 uint32_t size_unknown_0
= 0;
1181 uint32_t cntr_unknown_0
;
1182 if (ndr_flags
& NDR_SCALARS
) {
1183 NDR_CHECK(ndr_pull_align(ndr
, 4));
1184 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
1185 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
1186 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
1187 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
1188 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
1189 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
1190 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1191 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1192 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1193 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1194 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1195 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1196 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
1197 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
1198 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
1199 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
1200 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1201 NDR_CHECK(ndr_pull_netr_UserFlags(ndr
, NDR_SCALARS
, &r
->user_flags
));
1202 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1203 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1204 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
1206 if (_ptr_domain_sid
) {
1207 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
1209 r
->domain_sid
= NULL
;
1211 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1212 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
1214 for (cntr_unknown_0
= 0; cntr_unknown_0
< size_unknown_0
; cntr_unknown_0
++) {
1215 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
1218 if (ndr_flags
& NDR_BUFFERS
) {
1219 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1220 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1221 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1222 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1223 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1224 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1225 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1226 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1227 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1228 if (r
->domain_sid
) {
1229 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1230 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
1231 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1232 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
1235 return NDR_ERR_SUCCESS
;
1238 _PUBLIC_
void ndr_print_netr_SamBaseInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_SamBaseInfo
*r
)
1240 uint32_t cntr_unknown_0
;
1241 ndr_print_struct(ndr
, name
, "netr_SamBaseInfo");
1243 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
1244 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
1245 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
1246 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
1247 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
1248 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
1249 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1250 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1251 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
1252 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
1253 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
1254 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
1255 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
1256 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
1257 ndr_print_uint32(ndr
, "rid", r
->rid
);
1258 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1259 ndr_print_samr_RidWithAttributeArray(ndr
, "groups", &r
->groups
);
1260 ndr_print_netr_UserFlags(ndr
, "user_flags", r
->user_flags
);
1261 ndr_print_netr_UserSessionKey(ndr
, "key", &r
->key
);
1262 ndr_print_lsa_StringLarge(ndr
, "logon_server", &r
->logon_server
);
1263 ndr_print_lsa_StringLarge(ndr
, "domain", &r
->domain
);
1264 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
1266 if (r
->domain_sid
) {
1267 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
1270 ndr_print_netr_LMSessionKey(ndr
, "LMSessKey", &r
->LMSessKey
);
1271 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
1272 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)7);
1274 for (cntr_unknown_0
=0;cntr_unknown_0
<7;cntr_unknown_0
++) {
1276 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
1277 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1285 static enum ndr_err_code
ndr_push_netr_SamInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo2
*r
)
1287 if (ndr_flags
& NDR_SCALARS
) {
1288 NDR_CHECK(ndr_push_align(ndr
, 4));
1289 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1291 if (ndr_flags
& NDR_BUFFERS
) {
1292 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1294 return NDR_ERR_SUCCESS
;
1297 static enum ndr_err_code
ndr_pull_netr_SamInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo2
*r
)
1299 if (ndr_flags
& NDR_SCALARS
) {
1300 NDR_CHECK(ndr_pull_align(ndr
, 4));
1301 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1303 if (ndr_flags
& NDR_BUFFERS
) {
1304 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1306 return NDR_ERR_SUCCESS
;
1309 _PUBLIC_
void ndr_print_netr_SamInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo2
*r
)
1311 ndr_print_struct(ndr
, name
, "netr_SamInfo2");
1313 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1317 static enum ndr_err_code
ndr_push_netr_SidAttr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SidAttr
*r
)
1319 if (ndr_flags
& NDR_SCALARS
) {
1320 NDR_CHECK(ndr_push_align(ndr
, 4));
1321 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
1322 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1324 if (ndr_flags
& NDR_BUFFERS
) {
1326 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1329 return NDR_ERR_SUCCESS
;
1332 static enum ndr_err_code
ndr_pull_netr_SidAttr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SidAttr
*r
)
1335 TALLOC_CTX
*_mem_save_sid_0
;
1336 if (ndr_flags
& NDR_SCALARS
) {
1337 NDR_CHECK(ndr_pull_align(ndr
, 4));
1338 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
1340 NDR_PULL_ALLOC(ndr
, r
->sid
);
1344 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1346 if (ndr_flags
& NDR_BUFFERS
) {
1348 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1349 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
1350 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
1354 return NDR_ERR_SUCCESS
;
1357 _PUBLIC_
void ndr_print_netr_SidAttr(struct ndr_print
*ndr
, const char *name
, const struct netr_SidAttr
*r
)
1359 ndr_print_struct(ndr
, name
, "netr_SidAttr");
1361 ndr_print_ptr(ndr
, "sid", r
->sid
);
1364 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
1367 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1371 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SamInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo3
*r
)
1373 uint32_t cntr_sids_1
;
1374 if (ndr_flags
& NDR_SCALARS
) {
1375 NDR_CHECK(ndr_push_align(ndr
, 4));
1376 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1378 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1380 if (ndr_flags
& NDR_BUFFERS
) {
1381 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1384 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1385 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1387 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1388 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1392 return NDR_ERR_SUCCESS
;
1395 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SamInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo3
*r
)
1398 uint32_t size_sids_1
= 0;
1399 uint32_t cntr_sids_1
;
1400 TALLOC_CTX
*_mem_save_sids_0
;
1401 TALLOC_CTX
*_mem_save_sids_1
;
1402 if (ndr_flags
& NDR_SCALARS
) {
1403 NDR_CHECK(ndr_pull_align(ndr
, 4));
1404 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1405 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1406 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1408 NDR_PULL_ALLOC(ndr
, r
->sids
);
1413 if (ndr_flags
& NDR_BUFFERS
) {
1414 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1416 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1417 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1418 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1419 size_sids_1
= ndr_get_array_size(ndr
, &r
->sids
);
1420 NDR_PULL_ALLOC_N(ndr
, r
->sids
, size_sids_1
);
1421 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1422 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1423 for (cntr_sids_1
= 0; cntr_sids_1
< size_sids_1
; cntr_sids_1
++) {
1424 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1426 for (cntr_sids_1
= 0; cntr_sids_1
< size_sids_1
; cntr_sids_1
++) {
1427 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1433 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1436 return NDR_ERR_SUCCESS
;
1439 _PUBLIC_
void ndr_print_netr_SamInfo3(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo3
*r
)
1441 uint32_t cntr_sids_1
;
1442 ndr_print_struct(ndr
, name
, "netr_SamInfo3");
1444 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1445 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1446 ndr_print_ptr(ndr
, "sids", r
->sids
);
1449 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1451 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1453 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1454 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1464 static enum ndr_err_code
ndr_push_netr_SamInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo6
*r
)
1466 uint32_t cntr_sids_1
;
1467 uint32_t cntr_unknown4_0
;
1468 if (ndr_flags
& NDR_SCALARS
) {
1469 NDR_CHECK(ndr_push_align(ndr
, 4));
1470 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1472 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1473 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1474 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1475 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
[cntr_unknown4_0
]));
1479 if (ndr_flags
& NDR_BUFFERS
) {
1480 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1483 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1484 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1486 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1487 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1490 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1491 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1493 return NDR_ERR_SUCCESS
;
1496 static enum ndr_err_code
ndr_pull_netr_SamInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo6
*r
)
1499 uint32_t size_sids_1
= 0;
1500 uint32_t cntr_sids_1
;
1501 TALLOC_CTX
*_mem_save_sids_0
;
1502 TALLOC_CTX
*_mem_save_sids_1
;
1503 uint32_t size_unknown4_0
= 0;
1504 uint32_t cntr_unknown4_0
;
1505 if (ndr_flags
& NDR_SCALARS
) {
1506 NDR_CHECK(ndr_pull_align(ndr
, 4));
1507 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1508 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1511 NDR_PULL_ALLOC(ndr
, r
->sids
);
1515 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1516 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1517 size_unknown4_0
= 20;
1518 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< size_unknown4_0
; cntr_unknown4_0
++) {
1519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
[cntr_unknown4_0
]));
1522 if (ndr_flags
& NDR_BUFFERS
) {
1523 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1525 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1526 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1527 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1528 size_sids_1
= ndr_get_array_size(ndr
, &r
->sids
);
1529 NDR_PULL_ALLOC_N(ndr
, r
->sids
, size_sids_1
);
1530 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1531 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1532 for (cntr_sids_1
= 0; cntr_sids_1
< size_sids_1
; cntr_sids_1
++) {
1533 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1535 for (cntr_sids_1
= 0; cntr_sids_1
< size_sids_1
; cntr_sids_1
++) {
1536 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1538 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1539 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1541 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1542 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1544 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1547 return NDR_ERR_SUCCESS
;
1550 _PUBLIC_
void ndr_print_netr_SamInfo6(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo6
*r
)
1552 uint32_t cntr_sids_1
;
1553 uint32_t cntr_unknown4_0
;
1554 ndr_print_struct(ndr
, name
, "netr_SamInfo6");
1556 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1557 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1558 ndr_print_ptr(ndr
, "sids", r
->sids
);
1561 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1563 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1565 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1566 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1573 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
1574 ndr_print_lsa_String(ndr
, "principle", &r
->principle
);
1575 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown4", (int)20);
1577 for (cntr_unknown4_0
=0;cntr_unknown4_0
<20;cntr_unknown4_0
++) {
1579 if (asprintf(&idx_0
, "[%d]", cntr_unknown4_0
) != -1) {
1580 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
[cntr_unknown4_0
]);
1588 static enum ndr_err_code
ndr_push_netr_PacInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PacInfo
*r
)
1590 uint32_t cntr_expansionroom_0
;
1591 if (ndr_flags
& NDR_SCALARS
) {
1592 NDR_CHECK(ndr_push_align(ndr
, 4));
1593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1594 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1595 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1596 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1597 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1599 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->auth
));
1600 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1601 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->expansionroom
[cntr_expansionroom_0
]));
1604 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1605 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1606 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1607 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1609 if (ndr_flags
& NDR_BUFFERS
) {
1611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1612 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, r
->pac_size
));
1614 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1615 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1616 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1619 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, r
->auth_size
));
1621 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1622 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1623 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1624 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1626 return NDR_ERR_SUCCESS
;
1629 static enum ndr_err_code
ndr_pull_netr_PacInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PacInfo
*r
)
1632 uint32_t size_pac_1
= 0;
1633 TALLOC_CTX
*_mem_save_pac_0
;
1635 uint32_t size_auth_1
= 0;
1636 TALLOC_CTX
*_mem_save_auth_0
;
1637 uint32_t size_expansionroom_0
= 0;
1638 uint32_t cntr_expansionroom_0
;
1639 if (ndr_flags
& NDR_SCALARS
) {
1640 NDR_CHECK(ndr_pull_align(ndr
, 4));
1641 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pac_size
));
1642 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1644 NDR_PULL_ALLOC(ndr
, r
->pac
);
1648 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1649 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1650 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_size
));
1652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_auth
));
1654 NDR_PULL_ALLOC(ndr
, r
->auth
);
1658 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1659 size_expansionroom_0
= 10;
1660 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< size_expansionroom_0
; cntr_expansionroom_0
++) {
1661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->expansionroom
[cntr_expansionroom_0
]));
1663 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1664 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1665 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1666 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1668 if (ndr_flags
& NDR_BUFFERS
) {
1670 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1671 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1672 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pac
));
1673 size_pac_1
= ndr_get_array_size(ndr
, &r
->pac
);
1674 NDR_PULL_ALLOC_N(ndr
, r
->pac
, size_pac_1
);
1675 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, size_pac_1
));
1676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1678 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1679 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1680 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1682 _mem_save_auth_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1683 NDR_PULL_SET_MEM_CTX(ndr
, r
->auth
, 0);
1684 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->auth
));
1685 size_auth_1
= ndr_get_array_size(ndr
, &r
->auth
);
1686 NDR_PULL_ALLOC_N(ndr
, r
->auth
, size_auth_1
);
1687 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, size_auth_1
));
1688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_auth_0
, 0);
1690 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1691 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1692 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1693 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1695 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pac
, r
->pac_size
));
1698 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->auth
, r
->auth_size
));
1701 return NDR_ERR_SUCCESS
;
1704 _PUBLIC_
void ndr_print_netr_PacInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PacInfo
*r
)
1706 uint32_t cntr_expansionroom_0
;
1707 ndr_print_struct(ndr
, name
, "netr_PacInfo");
1709 ndr_print_uint32(ndr
, "pac_size", r
->pac_size
);
1710 ndr_print_ptr(ndr
, "pac", r
->pac
);
1713 ndr_print_array_uint8(ndr
, "pac", r
->pac
, r
->pac_size
);
1716 ndr_print_lsa_String(ndr
, "logon_domain", &r
->logon_domain
);
1717 ndr_print_lsa_String(ndr
, "logon_server", &r
->logon_server
);
1718 ndr_print_lsa_String(ndr
, "principal_name", &r
->principal_name
);
1719 ndr_print_uint32(ndr
, "auth_size", r
->auth_size
);
1720 ndr_print_ptr(ndr
, "auth", r
->auth
);
1723 ndr_print_array_uint8(ndr
, "auth", r
->auth
, r
->auth_size
);
1726 ndr_print_netr_UserSessionKey(ndr
, "user_session_key", &r
->user_session_key
);
1727 ndr
->print(ndr
, "%s: ARRAY(%d)", "expansionroom", (int)10);
1729 for (cntr_expansionroom_0
=0;cntr_expansionroom_0
<10;cntr_expansionroom_0
++) {
1731 if (asprintf(&idx_0
, "[%d]", cntr_expansionroom_0
) != -1) {
1732 ndr_print_uint32(ndr
, "expansionroom", r
->expansionroom
[cntr_expansionroom_0
]);
1737 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1738 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1739 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1740 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1744 static enum ndr_err_code
ndr_push_netr_GenericInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GenericInfo2
*r
)
1747 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1748 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1749 if (ndr_flags
& NDR_SCALARS
) {
1750 NDR_CHECK(ndr_push_align(ndr
, 4));
1751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
1752 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
1754 if (ndr_flags
& NDR_BUFFERS
) {
1756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
1757 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
1760 ndr
->flags
= _flags_save_STRUCT
;
1762 return NDR_ERR_SUCCESS
;
1765 static enum ndr_err_code
ndr_pull_netr_GenericInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GenericInfo2
*r
)
1768 uint32_t size_data_1
= 0;
1769 TALLOC_CTX
*_mem_save_data_0
;
1771 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1772 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1773 if (ndr_flags
& NDR_SCALARS
) {
1774 NDR_CHECK(ndr_pull_align(ndr
, 4));
1775 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
1776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
1778 NDR_PULL_ALLOC(ndr
, r
->data
);
1783 if (ndr_flags
& NDR_BUFFERS
) {
1785 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1786 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
1787 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
1788 size_data_1
= ndr_get_array_size(ndr
, &r
->data
);
1789 NDR_PULL_ALLOC_N(ndr
, r
->data
, size_data_1
);
1790 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_1
));
1791 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
1794 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
1797 ndr
->flags
= _flags_save_STRUCT
;
1799 return NDR_ERR_SUCCESS
;
1802 _PUBLIC_
void ndr_print_netr_GenericInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_GenericInfo2
*r
)
1804 ndr_print_struct(ndr
, name
, "netr_GenericInfo2");
1806 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1807 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1809 ndr_print_uint32(ndr
, "length", r
->length
);
1810 ndr_print_ptr(ndr
, "data", r
->data
);
1813 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
1817 ndr
->flags
= _flags_save_STRUCT
;
1821 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Validation(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Validation
*r
)
1823 if (ndr_flags
& NDR_SCALARS
) {
1824 int level
= ndr_push_get_switch_value(ndr
, r
);
1825 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
1827 case NetlogonValidationSamInfo
: {
1828 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam2
));
1831 case NetlogonValidationSamInfo2
: {
1832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam3
));
1836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1839 case NetlogonValidationGenericInfo2
: {
1840 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
1843 case NetlogonValidationSamInfo4
: {
1844 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam6
));
1848 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1851 if (ndr_flags
& NDR_BUFFERS
) {
1852 int level
= ndr_push_get_switch_value(ndr
, r
);
1854 case NetlogonValidationSamInfo
:
1856 NDR_CHECK(ndr_push_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1860 case NetlogonValidationSamInfo2
:
1862 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1868 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1872 case NetlogonValidationGenericInfo2
:
1874 NDR_CHECK(ndr_push_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1878 case NetlogonValidationSamInfo4
:
1880 NDR_CHECK(ndr_push_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1885 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1888 return NDR_ERR_SUCCESS
;
1891 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Validation(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Validation
*r
)
1895 TALLOC_CTX
*_mem_save_sam2_0
;
1897 TALLOC_CTX
*_mem_save_sam3_0
;
1899 TALLOC_CTX
*_mem_save_pac_0
;
1901 TALLOC_CTX
*_mem_save_generic_0
;
1902 uint32_t _ptr_generic
;
1903 TALLOC_CTX
*_mem_save_sam6_0
;
1905 level
= ndr_pull_get_switch_value(ndr
, r
);
1906 if (ndr_flags
& NDR_SCALARS
) {
1907 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1908 if (_level
!= level
) {
1909 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
1912 case NetlogonValidationSamInfo
: {
1913 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam2
));
1915 NDR_PULL_ALLOC(ndr
, r
->sam2
);
1921 case NetlogonValidationSamInfo2
: {
1922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam3
));
1924 NDR_PULL_ALLOC(ndr
, r
->sam3
);
1931 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1933 NDR_PULL_ALLOC(ndr
, r
->pac
);
1939 case NetlogonValidationGenericInfo2
: {
1940 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
1942 NDR_PULL_ALLOC(ndr
, r
->generic
);
1948 case NetlogonValidationSamInfo4
: {
1949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam6
));
1951 NDR_PULL_ALLOC(ndr
, r
->sam6
);
1958 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1961 if (ndr_flags
& NDR_BUFFERS
) {
1963 case NetlogonValidationSamInfo
:
1965 _mem_save_sam2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1966 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam2
, 0);
1967 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam2_0
, 0);
1972 case NetlogonValidationSamInfo2
:
1974 _mem_save_sam3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1975 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam3
, 0);
1976 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam3_0
, 0);
1983 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1984 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1985 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1990 case NetlogonValidationGenericInfo2
:
1992 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1993 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
1994 NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
1999 case NetlogonValidationSamInfo4
:
2001 _mem_save_sam6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2002 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam6
, 0);
2003 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
2004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam6_0
, 0);
2009 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
2012 return NDR_ERR_SUCCESS
;
2015 _PUBLIC_
void ndr_print_netr_Validation(struct ndr_print
*ndr
, const char *name
, const union netr_Validation
*r
)
2018 level
= ndr_print_get_switch_value(ndr
, r
);
2019 ndr_print_union(ndr
, name
, level
, "netr_Validation");
2021 case NetlogonValidationSamInfo
:
2022 ndr_print_ptr(ndr
, "sam2", r
->sam2
);
2025 ndr_print_netr_SamInfo2(ndr
, "sam2", r
->sam2
);
2030 case NetlogonValidationSamInfo2
:
2031 ndr_print_ptr(ndr
, "sam3", r
->sam3
);
2034 ndr_print_netr_SamInfo3(ndr
, "sam3", r
->sam3
);
2040 ndr_print_ptr(ndr
, "pac", r
->pac
);
2043 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
2048 case NetlogonValidationGenericInfo2
:
2049 ndr_print_ptr(ndr
, "generic", r
->generic
);
2052 ndr_print_netr_GenericInfo2(ndr
, "generic", r
->generic
);
2057 case NetlogonValidationSamInfo4
:
2058 ndr_print_ptr(ndr
, "sam6", r
->sam6
);
2061 ndr_print_netr_SamInfo6(ndr
, "sam6", r
->sam6
);
2067 ndr_print_bad_level(ndr
, name
, level
);
2071 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Credential(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Credential
*r
)
2074 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2075 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2076 if (ndr_flags
& NDR_SCALARS
) {
2077 NDR_CHECK(ndr_push_align(ndr
, 1));
2078 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
2080 if (ndr_flags
& NDR_BUFFERS
) {
2082 ndr
->flags
= _flags_save_STRUCT
;
2084 return NDR_ERR_SUCCESS
;
2087 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Credential(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Credential
*r
)
2089 uint32_t size_data_0
= 0;
2091 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2092 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2093 if (ndr_flags
& NDR_SCALARS
) {
2094 NDR_CHECK(ndr_pull_align(ndr
, 1));
2096 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_0
));
2098 if (ndr_flags
& NDR_BUFFERS
) {
2100 ndr
->flags
= _flags_save_STRUCT
;
2102 return NDR_ERR_SUCCESS
;
2105 _PUBLIC_
void ndr_print_netr_Credential(struct ndr_print
*ndr
, const char *name
, const struct netr_Credential
*r
)
2107 ndr_print_struct(ndr
, name
, "netr_Credential");
2109 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2110 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2112 ndr_print_array_uint8(ndr
, "data", r
->data
, 8);
2114 ndr
->flags
= _flags_save_STRUCT
;
2118 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Authenticator(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Authenticator
*r
)
2120 if (ndr_flags
& NDR_SCALARS
) {
2121 NDR_CHECK(ndr_push_align(ndr
, 4));
2122 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2123 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
2125 if (ndr_flags
& NDR_BUFFERS
) {
2127 return NDR_ERR_SUCCESS
;
2130 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Authenticator(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Authenticator
*r
)
2132 if (ndr_flags
& NDR_SCALARS
) {
2133 NDR_CHECK(ndr_pull_align(ndr
, 4));
2134 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2135 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
2137 if (ndr_flags
& NDR_BUFFERS
) {
2139 return NDR_ERR_SUCCESS
;
2142 _PUBLIC_
void ndr_print_netr_Authenticator(struct ndr_print
*ndr
, const char *name
, const struct netr_Authenticator
*r
)
2144 ndr_print_struct(ndr
, name
, "netr_Authenticator");
2146 ndr_print_netr_Credential(ndr
, "cred", &r
->cred
);
2147 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
2151 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_USER
*r
)
2153 if (ndr_flags
& NDR_SCALARS
) {
2154 NDR_CHECK(ndr_push_align(ndr
, 4));
2155 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
2156 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2157 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2158 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2159 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2165 if (ndr_flags
& NDR_BUFFERS
) {
2166 if (r
->account_name
) {
2167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
2169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
2172 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2173 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2174 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2175 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2177 return NDR_ERR_SUCCESS
;
2180 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_USER
*r
)
2182 uint32_t _ptr_account_name
;
2183 uint32_t size_account_name_1
= 0;
2184 uint32_t length_account_name_1
= 0;
2185 TALLOC_CTX
*_mem_save_account_name_0
;
2186 if (ndr_flags
& NDR_SCALARS
) {
2187 NDR_CHECK(ndr_pull_align(ndr
, 4));
2188 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
2189 if (_ptr_account_name
) {
2190 NDR_PULL_ALLOC(ndr
, r
->account_name
);
2192 r
->account_name
= NULL
;
2194 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2195 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2196 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2197 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2198 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2199 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2200 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2201 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2203 if (ndr_flags
& NDR_BUFFERS
) {
2204 if (r
->account_name
) {
2205 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2206 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
2207 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
2208 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
2209 size_account_name_1
= ndr_get_array_size(ndr
, &r
->account_name
);
2210 length_account_name_1
= ndr_get_array_length(ndr
, &r
->account_name
);
2211 if (length_account_name_1
> size_account_name_1
) {
2212 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_1
, length_account_name_1
);
2214 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_1
, sizeof(uint16_t)));
2215 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, length_account_name_1
, sizeof(uint16_t), CH_UTF16
));
2216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
2218 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2219 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2220 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2221 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2223 return NDR_ERR_SUCCESS
;
2226 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_USER
*r
)
2228 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_USER");
2230 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
2232 if (r
->account_name
) {
2233 ndr_print_string(ndr
, "account_name", r
->account_name
);
2236 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2237 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2238 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2239 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2240 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2241 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2242 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2243 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2247 static enum ndr_err_code
ndr_push_netr_USER_KEY16(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY16
*r
)
2249 if (ndr_flags
& NDR_SCALARS
) {
2250 NDR_CHECK(ndr_push_align(ndr
, 4));
2251 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2252 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
2254 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2256 if (ndr_flags
& NDR_BUFFERS
) {
2258 return NDR_ERR_SUCCESS
;
2261 static enum ndr_err_code
ndr_pull_netr_USER_KEY16(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY16
*r
)
2263 if (ndr_flags
& NDR_SCALARS
) {
2264 NDR_CHECK(ndr_pull_align(ndr
, 4));
2265 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
2266 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
2267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
2268 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2270 if (ndr_flags
& NDR_BUFFERS
) {
2272 return NDR_ERR_SUCCESS
;
2275 _PUBLIC_
void ndr_print_netr_USER_KEY16(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY16
*r
)
2277 ndr_print_struct(ndr
, name
, "netr_USER_KEY16");
2279 ndr_print_uint16(ndr
, "length", r
->length
);
2280 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
2281 ndr_print_uint32(ndr
, "flags", r
->flags
);
2282 ndr_print_samr_Password(ndr
, "pwd", &r
->pwd
);
2286 static enum ndr_err_code
ndr_push_netr_PasswordHistory(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordHistory
*r
)
2288 if (ndr_flags
& NDR_SCALARS
) {
2289 NDR_CHECK(ndr_push_align(ndr
, 4));
2290 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2291 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nt_flags
));
2293 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2294 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lm_flags
));
2296 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2297 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2299 if (ndr_flags
& NDR_BUFFERS
) {
2301 return NDR_ERR_SUCCESS
;
2304 static enum ndr_err_code
ndr_pull_netr_PasswordHistory(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordHistory
*r
)
2306 uint32_t size_nt_history_0
= 0;
2307 uint32_t size_lm_history_0
= 0;
2308 if (ndr_flags
& NDR_SCALARS
) {
2309 NDR_CHECK(ndr_pull_align(ndr
, 4));
2310 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_length
));
2311 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_size
));
2312 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nt_flags
));
2313 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_length
));
2314 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_size
));
2315 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lm_flags
));
2316 size_nt_history_0
= r
->nt_length
;
2317 NDR_PULL_ALLOC_N(ndr
, r
->nt_history
, size_nt_history_0
);
2318 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, size_nt_history_0
));
2319 size_lm_history_0
= r
->lm_length
;
2320 NDR_PULL_ALLOC_N(ndr
, r
->lm_history
, size_lm_history_0
);
2321 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, size_lm_history_0
));
2323 if (ndr_flags
& NDR_BUFFERS
) {
2325 return NDR_ERR_SUCCESS
;
2328 _PUBLIC_
void ndr_print_netr_PasswordHistory(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordHistory
*r
)
2330 ndr_print_struct(ndr
, name
, "netr_PasswordHistory");
2332 ndr_print_uint16(ndr
, "nt_length", r
->nt_length
);
2333 ndr_print_uint16(ndr
, "nt_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->nt_length
:r
->nt_size
);
2334 ndr_print_uint32(ndr
, "nt_flags", r
->nt_flags
);
2335 ndr_print_uint16(ndr
, "lm_length", r
->lm_length
);
2336 ndr_print_uint16(ndr
, "lm_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->lm_length
:r
->lm_size
);
2337 ndr_print_uint32(ndr
, "lm_flags", r
->lm_flags
);
2338 ndr_print_array_uint8(ndr
, "nt_history", r
->nt_history
, r
->nt_length
);
2339 ndr_print_array_uint8(ndr
, "lm_history", r
->lm_history
, r
->lm_length
);
2343 static enum ndr_err_code
ndr_push_netr_USER_KEYS2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS2
*r
)
2345 if (ndr_flags
& NDR_SCALARS
) {
2346 NDR_CHECK(ndr_push_align(ndr
, 4));
2347 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2348 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2349 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2351 if (ndr_flags
& NDR_BUFFERS
) {
2353 return NDR_ERR_SUCCESS
;
2356 static enum ndr_err_code
ndr_pull_netr_USER_KEYS2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS2
*r
)
2358 if (ndr_flags
& NDR_SCALARS
) {
2359 NDR_CHECK(ndr_pull_align(ndr
, 4));
2360 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2361 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2362 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2364 if (ndr_flags
& NDR_BUFFERS
) {
2366 return NDR_ERR_SUCCESS
;
2369 _PUBLIC_
void ndr_print_netr_USER_KEYS2(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS2
*r
)
2371 ndr_print_struct(ndr
, name
, "netr_USER_KEYS2");
2373 ndr_print_netr_USER_KEY16(ndr
, "lmpassword", &r
->lmpassword
);
2374 ndr_print_netr_USER_KEY16(ndr
, "ntpassword", &r
->ntpassword
);
2375 ndr_print_netr_PasswordHistory(ndr
, "history", &r
->history
);
2379 static enum ndr_err_code
ndr_push_netr_USER_KEY_UNION(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY_UNION
*r
)
2381 if (ndr_flags
& NDR_SCALARS
) {
2382 NDR_CHECK(ndr_push_align(ndr
, 4));
2383 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2385 if (ndr_flags
& NDR_BUFFERS
) {
2387 return NDR_ERR_SUCCESS
;
2390 static enum ndr_err_code
ndr_pull_netr_USER_KEY_UNION(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY_UNION
*r
)
2392 if (ndr_flags
& NDR_SCALARS
) {
2393 NDR_CHECK(ndr_pull_align(ndr
, 4));
2394 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2396 if (ndr_flags
& NDR_BUFFERS
) {
2398 return NDR_ERR_SUCCESS
;
2401 _PUBLIC_
void ndr_print_netr_USER_KEY_UNION(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY_UNION
*r
)
2403 ndr_print_struct(ndr
, name
, "netr_USER_KEY_UNION");
2405 ndr_print_netr_USER_KEYS2(ndr
, "keys2", &r
->keys2
);
2409 _PUBLIC_
enum ndr_err_code
ndr_push_netr_USER_KEYS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS
*r
)
2411 if (ndr_flags
& NDR_SCALARS
) {
2412 NDR_CHECK(ndr_push_align(ndr
, 4));
2413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2414 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2416 if (ndr_flags
& NDR_BUFFERS
) {
2418 return NDR_ERR_SUCCESS
;
2421 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_USER_KEYS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS
*r
)
2423 if (ndr_flags
& NDR_SCALARS
) {
2424 NDR_CHECK(ndr_pull_align(ndr
, 4));
2425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2426 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2428 if (ndr_flags
& NDR_BUFFERS
) {
2430 return NDR_ERR_SUCCESS
;
2433 _PUBLIC_
void ndr_print_netr_USER_KEYS(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS
*r
)
2435 ndr_print_struct(ndr
, name
, "netr_USER_KEYS");
2437 ndr_print_uint32(ndr
, "version", r
->version
);
2438 ndr_print_netr_USER_KEY_UNION(ndr
, "keys", &r
->keys
);
2442 static enum ndr_err_code
ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_PRIVATE_INFO
*r
)
2444 if (ndr_flags
& NDR_SCALARS
) {
2445 NDR_CHECK(ndr_push_align(ndr
, 4));
2446 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->SensitiveDataFlag
));
2447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2449 uint32_t _flags_save_uint8
= ndr
->flags
;
2450 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->SensitiveData
));
2452 ndr
->flags
= _flags_save_uint8
;
2455 if (ndr_flags
& NDR_BUFFERS
) {
2457 uint32_t _flags_save_uint8
= ndr
->flags
;
2458 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2459 if (r
->SensitiveData
) {
2460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2461 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, r
->DataLength
));
2463 ndr
->flags
= _flags_save_uint8
;
2466 return NDR_ERR_SUCCESS
;
2469 static enum ndr_err_code
ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_PRIVATE_INFO
*r
)
2471 uint32_t _ptr_SensitiveData
;
2472 uint32_t size_SensitiveData_1
= 0;
2473 TALLOC_CTX
*_mem_save_SensitiveData_0
;
2474 if (ndr_flags
& NDR_SCALARS
) {
2475 NDR_CHECK(ndr_pull_align(ndr
, 4));
2476 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->SensitiveDataFlag
));
2477 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->DataLength
));
2479 uint32_t _flags_save_uint8
= ndr
->flags
;
2480 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2481 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_SensitiveData
));
2482 if (_ptr_SensitiveData
) {
2483 NDR_PULL_ALLOC(ndr
, r
->SensitiveData
);
2485 r
->SensitiveData
= NULL
;
2487 ndr
->flags
= _flags_save_uint8
;
2490 if (ndr_flags
& NDR_BUFFERS
) {
2492 uint32_t _flags_save_uint8
= ndr
->flags
;
2493 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2494 if (r
->SensitiveData
) {
2495 _mem_save_SensitiveData_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2496 NDR_PULL_SET_MEM_CTX(ndr
, r
->SensitiveData
, 0);
2497 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->SensitiveData
));
2498 size_SensitiveData_1
= ndr_get_array_size(ndr
, &r
->SensitiveData
);
2499 NDR_PULL_ALLOC_N(ndr
, r
->SensitiveData
, size_SensitiveData_1
);
2500 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, size_SensitiveData_1
));
2501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_SensitiveData_0
, 0);
2503 ndr
->flags
= _flags_save_uint8
;
2505 if (r
->SensitiveData
) {
2506 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->SensitiveData
, r
->DataLength
));
2509 return NDR_ERR_SUCCESS
;
2512 _PUBLIC_
void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_PRIVATE_INFO
*r
)
2514 ndr_print_struct(ndr
, name
, "netr_USER_PRIVATE_INFO");
2516 ndr_print_uint8(ndr
, "SensitiveDataFlag", r
->SensitiveDataFlag
);
2517 ndr_print_uint32(ndr
, "DataLength", r
->DataLength
);
2518 ndr_print_ptr(ndr
, "SensitiveData", r
->SensitiveData
);
2520 if (r
->SensitiveData
) {
2521 ndr_print_array_uint8(ndr
, "SensitiveData", r
->SensitiveData
, r
->DataLength
);
2527 static enum ndr_err_code
ndr_push_netr_DELTA_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_USER
*r
)
2529 if (ndr_flags
& NDR_SCALARS
) {
2530 NDR_CHECK(ndr_push_align(ndr
, 4));
2531 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2532 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2535 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2536 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2537 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2538 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2539 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2540 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2541 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2542 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2543 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2544 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2545 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2546 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2547 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2548 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2549 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2550 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_present
));
2551 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_present
));
2552 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2553 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2554 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2555 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2556 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2557 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2559 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2560 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2561 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2562 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2563 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2564 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2569 if (ndr_flags
& NDR_BUFFERS
) {
2570 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2571 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2572 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2573 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2574 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2575 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2576 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2577 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2578 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2579 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2580 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2581 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2582 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2583 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2584 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2585 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2587 return NDR_ERR_SUCCESS
;
2590 static enum ndr_err_code
ndr_pull_netr_DELTA_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_USER
*r
)
2592 if (ndr_flags
& NDR_SCALARS
) {
2593 NDR_CHECK(ndr_pull_align(ndr
, 4));
2594 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2595 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2596 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2597 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2598 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2599 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2600 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2601 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2602 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2603 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2604 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2605 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2606 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2607 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2608 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2609 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2610 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2611 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2612 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2613 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_present
));
2614 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_present
));
2615 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2616 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2617 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2618 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2619 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2620 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2621 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2622 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2623 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2624 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2625 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2626 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2627 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2628 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2629 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2630 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2632 if (ndr_flags
& NDR_BUFFERS
) {
2633 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2634 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2635 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2636 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2637 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2638 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2639 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2640 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2641 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2642 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2643 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2644 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2645 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2646 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2647 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2648 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2650 return NDR_ERR_SUCCESS
;
2653 _PUBLIC_
void ndr_print_netr_DELTA_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_USER
*r
)
2655 ndr_print_struct(ndr
, name
, "netr_DELTA_USER");
2657 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2658 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2659 ndr_print_uint32(ndr
, "rid", r
->rid
);
2660 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2661 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2662 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2663 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2664 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2665 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2666 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2667 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2668 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2669 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2670 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2671 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2672 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2673 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2674 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
2675 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
2676 ndr_print_uint8(ndr
, "nt_password_present", r
->nt_password_present
);
2677 ndr_print_uint8(ndr
, "lm_password_present", r
->lm_password_present
);
2678 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2679 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2680 ndr_print_lsa_BinaryString(ndr
, "parameters", &r
->parameters
);
2681 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2682 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2683 ndr_print_netr_USER_PRIVATE_INFO(ndr
, "user_private_info", &r
->user_private_info
);
2684 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2685 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2686 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2687 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2688 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2689 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2690 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2691 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2692 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2693 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2697 static enum ndr_err_code
ndr_push_netr_DELTA_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DOMAIN
*r
)
2699 if (ndr_flags
& NDR_SCALARS
) {
2700 NDR_CHECK(ndr_push_align(ndr
, 4));
2701 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2702 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2703 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
2704 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
2705 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
2706 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
2707 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
2708 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2709 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
2710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2711 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2712 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2713 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2714 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2715 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_to_chgpass
));
2717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2721 if (ndr_flags
& NDR_BUFFERS
) {
2722 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2723 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2724 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2725 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2726 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2727 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2728 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2730 return NDR_ERR_SUCCESS
;
2733 static enum ndr_err_code
ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DOMAIN
*r
)
2735 if (ndr_flags
& NDR_SCALARS
) {
2736 NDR_CHECK(ndr_pull_align(ndr
, 4));
2737 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2738 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2739 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
2740 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
2741 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
2742 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
2743 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
2744 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
2745 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
2746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2747 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2748 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2749 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2750 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2751 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_to_chgpass
));
2753 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2757 if (ndr_flags
& NDR_BUFFERS
) {
2758 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2759 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2760 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2761 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2762 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2763 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2764 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2766 return NDR_ERR_SUCCESS
;
2769 _PUBLIC_
void ndr_print_netr_DELTA_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DOMAIN
*r
)
2771 ndr_print_struct(ndr
, name
, "netr_DELTA_DOMAIN");
2773 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
2774 ndr_print_lsa_String(ndr
, "oem_information", &r
->oem_information
);
2775 ndr_print_dlong(ndr
, "force_logoff_time", r
->force_logoff_time
);
2776 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
2777 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
2778 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
2779 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
2780 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
2781 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
2782 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2783 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2784 ndr_print_lsa_BinaryString(ndr
, "account_lockout", &r
->account_lockout
);
2785 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2786 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2787 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2788 ndr_print_uint32(ndr
, "logon_to_chgpass", r
->logon_to_chgpass
);
2789 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2790 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2791 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2795 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP
*r
)
2797 if (ndr_flags
& NDR_SCALARS
) {
2798 NDR_CHECK(ndr_push_align(ndr
, 4));
2799 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2801 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
2802 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2804 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2805 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2806 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2807 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2808 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2814 if (ndr_flags
& NDR_BUFFERS
) {
2815 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2816 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2817 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2818 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2819 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2820 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2821 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2823 return NDR_ERR_SUCCESS
;
2826 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP
*r
)
2828 if (ndr_flags
& NDR_SCALARS
) {
2829 NDR_CHECK(ndr_pull_align(ndr
, 4));
2830 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2831 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2832 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
2833 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2834 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2835 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2836 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2837 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2838 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2839 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2841 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2842 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2843 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2845 if (ndr_flags
& NDR_BUFFERS
) {
2846 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2847 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2848 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2849 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2850 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2851 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2852 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2854 return NDR_ERR_SUCCESS
;
2857 _PUBLIC_
void ndr_print_netr_DELTA_GROUP(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP
*r
)
2859 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP");
2861 ndr_print_lsa_String(ndr
, "group_name", &r
->group_name
);
2862 ndr_print_uint32(ndr
, "rid", r
->rid
);
2863 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
2864 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2865 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2866 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2867 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2868 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2869 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2870 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2871 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2872 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2873 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2874 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2878 static enum ndr_err_code
ndr_push_netr_DELTA_RENAME(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_RENAME
*r
)
2880 if (ndr_flags
& NDR_SCALARS
) {
2881 NDR_CHECK(ndr_push_align(ndr
, 4));
2882 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2883 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2884 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2885 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2886 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2887 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2893 if (ndr_flags
& NDR_BUFFERS
) {
2894 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2895 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2896 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2897 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2898 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2899 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2901 return NDR_ERR_SUCCESS
;
2904 static enum ndr_err_code
ndr_pull_netr_DELTA_RENAME(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_RENAME
*r
)
2906 if (ndr_flags
& NDR_SCALARS
) {
2907 NDR_CHECK(ndr_pull_align(ndr
, 4));
2908 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2909 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2910 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2911 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2912 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2913 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2914 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2915 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2919 if (ndr_flags
& NDR_BUFFERS
) {
2920 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2921 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2922 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2923 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2924 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2925 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2927 return NDR_ERR_SUCCESS
;
2930 _PUBLIC_
void ndr_print_netr_DELTA_RENAME(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_RENAME
*r
)
2932 ndr_print_struct(ndr
, name
, "netr_DELTA_RENAME");
2934 ndr_print_lsa_String(ndr
, "OldName", &r
->OldName
);
2935 ndr_print_lsa_String(ndr
, "NewName", &r
->NewName
);
2936 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2937 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2938 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2939 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2940 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2941 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2942 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2943 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2947 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP_MEMBER
*r
)
2949 uint32_t cntr_rids_1
;
2950 uint32_t cntr_attribs_1
;
2951 if (ndr_flags
& NDR_SCALARS
) {
2952 NDR_CHECK(ndr_push_align(ndr
, 4));
2953 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
2954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribs
));
2955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2961 if (ndr_flags
& NDR_BUFFERS
) {
2963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2964 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
2969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2970 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribs
[cntr_attribs_1
]));
2975 return NDR_ERR_SUCCESS
;
2978 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP_MEMBER
*r
)
2981 uint32_t size_rids_1
= 0;
2982 uint32_t cntr_rids_1
;
2983 TALLOC_CTX
*_mem_save_rids_0
;
2984 TALLOC_CTX
*_mem_save_rids_1
;
2985 uint32_t _ptr_attribs
;
2986 uint32_t size_attribs_1
= 0;
2987 uint32_t cntr_attribs_1
;
2988 TALLOC_CTX
*_mem_save_attribs_0
;
2989 TALLOC_CTX
*_mem_save_attribs_1
;
2990 if (ndr_flags
& NDR_SCALARS
) {
2991 NDR_CHECK(ndr_pull_align(ndr
, 4));
2992 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
2994 NDR_PULL_ALLOC(ndr
, r
->rids
);
2998 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribs
));
3000 NDR_PULL_ALLOC(ndr
, r
->attribs
);
3004 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_rids
));
3005 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
3006 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
3007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
3008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
3010 if (ndr_flags
& NDR_BUFFERS
) {
3012 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3013 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
3014 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
3015 size_rids_1
= ndr_get_array_size(ndr
, &r
->rids
);
3016 NDR_PULL_ALLOC_N(ndr
, r
->rids
, size_rids_1
);
3017 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3018 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
3019 for (cntr_rids_1
= 0; cntr_rids_1
< size_rids_1
; cntr_rids_1
++) {
3020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
3022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
3023 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
3026 _mem_save_attribs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3027 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
3028 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribs
));
3029 size_attribs_1
= ndr_get_array_size(ndr
, &r
->attribs
);
3030 NDR_PULL_ALLOC_N(ndr
, r
->attribs
, size_attribs_1
);
3031 _mem_save_attribs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3032 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
3033 for (cntr_attribs_1
= 0; cntr_attribs_1
< size_attribs_1
; cntr_attribs_1
++) {
3034 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribs
[cntr_attribs_1
]));
3036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_1
, 0);
3037 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_0
, 0);
3040 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->num_rids
));
3043 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attribs
, r
->num_rids
));
3046 return NDR_ERR_SUCCESS
;
3049 _PUBLIC_
void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP_MEMBER
*r
)
3051 uint32_t cntr_rids_1
;
3052 uint32_t cntr_attribs_1
;
3053 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP_MEMBER");
3055 ndr_print_ptr(ndr
, "rids", r
->rids
);
3058 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->num_rids
);
3060 for (cntr_rids_1
=0;cntr_rids_1
<r
->num_rids
;cntr_rids_1
++) {
3062 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
3063 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
3070 ndr_print_ptr(ndr
, "attribs", r
->attribs
);
3073 ndr
->print(ndr
, "%s: ARRAY(%d)", "attribs", (int)r
->num_rids
);
3075 for (cntr_attribs_1
=0;cntr_attribs_1
<r
->num_rids
;cntr_attribs_1
++) {
3077 if (asprintf(&idx_1
, "[%d]", cntr_attribs_1
) != -1) {
3078 ndr_print_uint32(ndr
, "attribs", r
->attribs
[cntr_attribs_1
]);
3085 ndr_print_uint32(ndr
, "num_rids", r
->num_rids
);
3086 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3087 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3088 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3089 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3093 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS
*r
)
3095 if (ndr_flags
& NDR_SCALARS
) {
3096 NDR_CHECK(ndr_push_align(ndr
, 4));
3097 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
3099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3100 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3101 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3102 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3103 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3104 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3110 if (ndr_flags
& NDR_BUFFERS
) {
3111 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3112 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3113 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3114 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3115 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3116 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3118 return NDR_ERR_SUCCESS
;
3121 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS
*r
)
3123 if (ndr_flags
& NDR_SCALARS
) {
3124 NDR_CHECK(ndr_pull_align(ndr
, 4));
3125 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
3127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3128 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3129 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3130 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3131 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3132 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3138 if (ndr_flags
& NDR_BUFFERS
) {
3139 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3140 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3141 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3142 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3143 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3144 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3146 return NDR_ERR_SUCCESS
;
3149 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS
*r
)
3151 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS");
3153 ndr_print_lsa_String(ndr
, "alias_name", &r
->alias_name
);
3154 ndr_print_uint32(ndr
, "rid", r
->rid
);
3155 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3156 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3157 ndr_print_lsa_String(ndr
, "description", &r
->description
);
3158 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3159 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3160 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3161 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3162 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3163 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3164 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3168 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
3170 if (ndr_flags
& NDR_SCALARS
) {
3171 NDR_CHECK(ndr_push_align(ndr
, 4));
3172 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
3174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
3175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
3176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
3178 if (ndr_flags
& NDR_BUFFERS
) {
3179 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3181 return NDR_ERR_SUCCESS
;
3184 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS_MEMBER
*r
)
3186 if (ndr_flags
& NDR_SCALARS
) {
3187 NDR_CHECK(ndr_pull_align(ndr
, 4));
3188 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
3190 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
3191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
3192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
3194 if (ndr_flags
& NDR_BUFFERS
) {
3195 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3197 return NDR_ERR_SUCCESS
;
3200 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
3202 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS_MEMBER");
3204 ndr_print_lsa_SidArray(ndr
, "sids", &r
->sids
);
3205 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3206 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3207 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3208 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3212 static enum ndr_err_code
ndr_push_netr_QUOTA_LIMITS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_QUOTA_LIMITS
*r
)
3214 if (ndr_flags
& NDR_SCALARS
) {
3215 NDR_CHECK(ndr_push_align(ndr
, 4));
3216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagedpoollimit
));
3217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nonpagedpoollimit
));
3218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minimumworkingsetsize
));
3219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maximumworkingsetsize
));
3220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagefilelimit
));
3221 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timelimit
));
3223 if (ndr_flags
& NDR_BUFFERS
) {
3225 return NDR_ERR_SUCCESS
;
3228 static enum ndr_err_code
ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_QUOTA_LIMITS
*r
)
3230 if (ndr_flags
& NDR_SCALARS
) {
3231 NDR_CHECK(ndr_pull_align(ndr
, 4));
3232 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagedpoollimit
));
3233 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nonpagedpoollimit
));
3234 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minimumworkingsetsize
));
3235 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maximumworkingsetsize
));
3236 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagefilelimit
));
3237 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timelimit
));
3239 if (ndr_flags
& NDR_BUFFERS
) {
3241 return NDR_ERR_SUCCESS
;
3244 _PUBLIC_
void ndr_print_netr_QUOTA_LIMITS(struct ndr_print
*ndr
, const char *name
, const struct netr_QUOTA_LIMITS
*r
)
3246 ndr_print_struct(ndr
, name
, "netr_QUOTA_LIMITS");
3248 ndr_print_uint32(ndr
, "pagedpoollimit", r
->pagedpoollimit
);
3249 ndr_print_uint32(ndr
, "nonpagedpoollimit", r
->nonpagedpoollimit
);
3250 ndr_print_uint32(ndr
, "minimumworkingsetsize", r
->minimumworkingsetsize
);
3251 ndr_print_uint32(ndr
, "maximumworkingsetsize", r
->maximumworkingsetsize
);
3252 ndr_print_uint32(ndr
, "pagefilelimit", r
->pagefilelimit
);
3253 ndr_print_NTTIME(ndr
, "timelimit", r
->timelimit
);
3257 static enum ndr_err_code
ndr_push_netr_DELTA_POLICY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_POLICY
*r
)
3259 uint32_t cntr_eventauditoptions_1
;
3260 if (ndr_flags
& NDR_SCALARS
) {
3261 NDR_CHECK(ndr_push_align(ndr
, 4));
3262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlogsize
));
3263 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->auditretentionperiod
));
3264 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auditingmode
));
3265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
));
3266 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eventauditoptions
));
3267 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3268 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
3269 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3270 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
3271 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->db_create_time
));
3272 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3273 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3274 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3275 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3276 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3277 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3283 if (ndr_flags
& NDR_BUFFERS
) {
3284 if (r
->eventauditoptions
) {
3285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
+ 1));
3286 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3290 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3292 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3294 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3295 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3296 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3297 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3298 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3300 return NDR_ERR_SUCCESS
;
3303 static enum ndr_err_code
ndr_pull_netr_DELTA_POLICY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_POLICY
*r
)
3305 uint32_t _ptr_eventauditoptions
;
3306 uint32_t size_eventauditoptions_1
= 0;
3307 uint32_t cntr_eventauditoptions_1
;
3308 TALLOC_CTX
*_mem_save_eventauditoptions_0
;
3309 TALLOC_CTX
*_mem_save_eventauditoptions_1
;
3311 TALLOC_CTX
*_mem_save_sid_0
;
3312 if (ndr_flags
& NDR_SCALARS
) {
3313 NDR_CHECK(ndr_pull_align(ndr
, 4));
3314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlogsize
));
3315 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->auditretentionperiod
));
3316 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auditingmode
));
3317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxauditeventcount
));
3318 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eventauditoptions
));
3319 if (_ptr_eventauditoptions
) {
3320 NDR_PULL_ALLOC(ndr
, r
->eventauditoptions
);
3322 r
->eventauditoptions
= NULL
;
3324 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3325 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
3327 NDR_PULL_ALLOC(ndr
, r
->sid
);
3331 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3332 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
3333 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->db_create_time
));
3334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3335 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3336 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3337 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3338 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3339 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3340 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3341 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3342 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3343 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3345 if (ndr_flags
& NDR_BUFFERS
) {
3346 if (r
->eventauditoptions
) {
3347 _mem_save_eventauditoptions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3348 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3349 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eventauditoptions
));
3350 size_eventauditoptions_1
= ndr_get_array_size(ndr
, &r
->eventauditoptions
);
3351 NDR_PULL_ALLOC_N(ndr
, r
->eventauditoptions
, size_eventauditoptions_1
);
3352 _mem_save_eventauditoptions_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3353 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3354 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< size_eventauditoptions_1
; cntr_eventauditoptions_1
++) {
3355 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_1
, 0);
3358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_0
, 0);
3360 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3362 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3363 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
3364 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
3367 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3368 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3369 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3370 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3371 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3372 if (r
->eventauditoptions
) {
3373 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eventauditoptions
, r
->maxauditeventcount
+ 1));
3376 return NDR_ERR_SUCCESS
;
3379 _PUBLIC_
void ndr_print_netr_DELTA_POLICY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_POLICY
*r
)
3381 uint32_t cntr_eventauditoptions_1
;
3382 ndr_print_struct(ndr
, name
, "netr_DELTA_POLICY");
3384 ndr_print_uint32(ndr
, "maxlogsize", r
->maxlogsize
);
3385 ndr_print_NTTIME(ndr
, "auditretentionperiod", r
->auditretentionperiod
);
3386 ndr_print_uint8(ndr
, "auditingmode", r
->auditingmode
);
3387 ndr_print_uint32(ndr
, "maxauditeventcount", r
->maxauditeventcount
);
3388 ndr_print_ptr(ndr
, "eventauditoptions", r
->eventauditoptions
);
3390 if (r
->eventauditoptions
) {
3391 ndr
->print(ndr
, "%s: ARRAY(%d)", "eventauditoptions", (int)r
->maxauditeventcount
+ 1);
3393 for (cntr_eventauditoptions_1
=0;cntr_eventauditoptions_1
<r
->maxauditeventcount
+ 1;cntr_eventauditoptions_1
++) {
3395 if (asprintf(&idx_1
, "[%d]", cntr_eventauditoptions_1
) != -1) {
3396 ndr_print_uint32(ndr
, "eventauditoptions", r
->eventauditoptions
[cntr_eventauditoptions_1
]);
3403 ndr_print_lsa_String(ndr
, "primary_domain_name", &r
->primary_domain_name
);
3404 ndr_print_ptr(ndr
, "sid", r
->sid
);
3407 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
3410 ndr_print_netr_QUOTA_LIMITS(ndr
, "quota_limits", &r
->quota_limits
);
3411 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
3412 ndr_print_NTTIME(ndr
, "db_create_time", r
->db_create_time
);
3413 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3414 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3415 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3416 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3417 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3418 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3419 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3420 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3421 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3422 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3426 static enum ndr_err_code
ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3428 uint32_t cntr_controller_names_1
;
3429 if (ndr_flags
& NDR_SCALARS
) {
3430 NDR_CHECK(ndr_push_align(ndr
, 4));
3431 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3433 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->controller_names
));
3434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3435 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3436 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3437 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3438 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3439 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->posix_offset
));
3441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3445 if (ndr_flags
& NDR_BUFFERS
) {
3446 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3447 if (r
->controller_names
) {
3448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3449 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3450 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3452 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3453 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3456 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3457 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3458 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3459 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3460 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3462 return NDR_ERR_SUCCESS
;
3465 static enum ndr_err_code
ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3467 uint32_t _ptr_controller_names
;
3468 uint32_t size_controller_names_1
= 0;
3469 uint32_t cntr_controller_names_1
;
3470 TALLOC_CTX
*_mem_save_controller_names_0
;
3471 TALLOC_CTX
*_mem_save_controller_names_1
;
3472 if (ndr_flags
& NDR_SCALARS
) {
3473 NDR_CHECK(ndr_pull_align(ndr
, 4));
3474 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3475 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_controllers
));
3476 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_controller_names
));
3477 if (_ptr_controller_names
) {
3478 NDR_PULL_ALLOC(ndr
, r
->controller_names
);
3480 r
->controller_names
= NULL
;
3482 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3483 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3484 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3485 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3486 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3487 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->posix_offset
));
3489 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3493 if (ndr_flags
& NDR_BUFFERS
) {
3494 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3495 if (r
->controller_names
) {
3496 _mem_save_controller_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3497 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3498 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->controller_names
));
3499 size_controller_names_1
= ndr_get_array_size(ndr
, &r
->controller_names
);
3500 NDR_PULL_ALLOC_N(ndr
, r
->controller_names
, size_controller_names_1
);
3501 _mem_save_controller_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3502 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3503 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< size_controller_names_1
; cntr_controller_names_1
++) {
3504 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3506 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< size_controller_names_1
; cntr_controller_names_1
++) {
3507 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_1
, 0);
3510 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_0
, 0);
3512 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3513 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3514 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3515 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3516 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3517 if (r
->controller_names
) {
3518 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->controller_names
, r
->num_controllers
));
3521 return NDR_ERR_SUCCESS
;
3524 _PUBLIC_
void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3526 uint32_t cntr_controller_names_1
;
3527 ndr_print_struct(ndr
, name
, "netr_DELTA_TRUSTED_DOMAIN");
3529 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
3530 ndr_print_uint32(ndr
, "num_controllers", r
->num_controllers
);
3531 ndr_print_ptr(ndr
, "controller_names", r
->controller_names
);
3533 if (r
->controller_names
) {
3534 ndr
->print(ndr
, "%s: ARRAY(%d)", "controller_names", (int)r
->num_controllers
);
3536 for (cntr_controller_names_1
=0;cntr_controller_names_1
<r
->num_controllers
;cntr_controller_names_1
++) {
3538 if (asprintf(&idx_1
, "[%d]", cntr_controller_names_1
) != -1) {
3539 ndr_print_lsa_String(ndr
, "controller_names", &r
->controller_names
[cntr_controller_names_1
]);
3546 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3547 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3548 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3549 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3550 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3551 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3552 ndr_print_uint32(ndr
, "posix_offset", r
->posix_offset
);
3553 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3554 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3555 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3559 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_TRUST
*r
)
3561 if (ndr_flags
& NDR_SCALARS
) {
3562 NDR_CHECK(ndr_push_align(ndr
, 2));
3563 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3565 if (ndr_flags
& NDR_BUFFERS
) {
3567 return NDR_ERR_SUCCESS
;
3570 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_TRUST
*r
)
3572 if (ndr_flags
& NDR_SCALARS
) {
3573 NDR_CHECK(ndr_pull_align(ndr
, 2));
3574 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3576 if (ndr_flags
& NDR_BUFFERS
) {
3578 return NDR_ERR_SUCCESS
;
3581 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_TRUST
*r
)
3583 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_TRUST");
3585 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3589 static enum ndr_err_code
ndr_push_netr_DELTA_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ACCOUNT
*r
)
3591 uint32_t cntr_privilege_attrib_1
;
3592 uint32_t cntr_privilege_name_1
;
3593 if (ndr_flags
& NDR_SCALARS
) {
3594 NDR_CHECK(ndr_push_align(ndr
, 4));
3595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_control
));
3597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_attrib
));
3598 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_name
));
3599 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->system_flags
));
3601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3602 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3603 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3604 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3605 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3606 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3612 if (ndr_flags
& NDR_BUFFERS
) {
3613 if (r
->privilege_attrib
) {
3614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3615 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3619 if (r
->privilege_name
) {
3620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3621 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3622 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3624 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3625 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3628 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3629 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3630 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3631 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3632 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3634 return NDR_ERR_SUCCESS
;
3637 static enum ndr_err_code
ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ACCOUNT
*r
)
3639 uint32_t _ptr_privilege_attrib
;
3640 uint32_t size_privilege_attrib_1
= 0;
3641 uint32_t cntr_privilege_attrib_1
;
3642 TALLOC_CTX
*_mem_save_privilege_attrib_0
;
3643 TALLOC_CTX
*_mem_save_privilege_attrib_1
;
3644 uint32_t _ptr_privilege_name
;
3645 uint32_t size_privilege_name_1
= 0;
3646 uint32_t cntr_privilege_name_1
;
3647 TALLOC_CTX
*_mem_save_privilege_name_0
;
3648 TALLOC_CTX
*_mem_save_privilege_name_1
;
3649 if (ndr_flags
& NDR_SCALARS
) {
3650 NDR_CHECK(ndr_pull_align(ndr
, 4));
3651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_entries
));
3652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_control
));
3653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_attrib
));
3654 if (_ptr_privilege_attrib
) {
3655 NDR_PULL_ALLOC(ndr
, r
->privilege_attrib
);
3657 r
->privilege_attrib
= NULL
;
3659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_name
));
3660 if (_ptr_privilege_name
) {
3661 NDR_PULL_ALLOC(ndr
, r
->privilege_name
);
3663 r
->privilege_name
= NULL
;
3665 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3666 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->system_flags
));
3667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3668 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3669 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3670 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3671 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3672 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3673 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3674 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3676 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3678 if (ndr_flags
& NDR_BUFFERS
) {
3679 if (r
->privilege_attrib
) {
3680 _mem_save_privilege_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3681 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3682 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_attrib
));
3683 size_privilege_attrib_1
= ndr_get_array_size(ndr
, &r
->privilege_attrib
);
3684 NDR_PULL_ALLOC_N(ndr
, r
->privilege_attrib
, size_privilege_attrib_1
);
3685 _mem_save_privilege_attrib_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3686 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3687 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< size_privilege_attrib_1
; cntr_privilege_attrib_1
++) {
3688 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_1
, 0);
3691 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_0
, 0);
3693 if (r
->privilege_name
) {
3694 _mem_save_privilege_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3695 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3696 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_name
));
3697 size_privilege_name_1
= ndr_get_array_size(ndr
, &r
->privilege_name
);
3698 NDR_PULL_ALLOC_N(ndr
, r
->privilege_name
, size_privilege_name_1
);
3699 _mem_save_privilege_name_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3700 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3701 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< size_privilege_name_1
; cntr_privilege_name_1
++) {
3702 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3704 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< size_privilege_name_1
; cntr_privilege_name_1
++) {
3705 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_1
, 0);
3708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_0
, 0);
3710 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3711 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3712 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3713 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3714 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3715 if (r
->privilege_attrib
) {
3716 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_attrib
, r
->privilege_entries
));
3718 if (r
->privilege_name
) {
3719 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_name
, r
->privilege_entries
));
3722 return NDR_ERR_SUCCESS
;
3725 _PUBLIC_
void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ACCOUNT
*r
)
3727 uint32_t cntr_privilege_attrib_1
;
3728 uint32_t cntr_privilege_name_1
;
3729 ndr_print_struct(ndr
, name
, "netr_DELTA_ACCOUNT");
3731 ndr_print_uint32(ndr
, "privilege_entries", r
->privilege_entries
);
3732 ndr_print_uint32(ndr
, "privilege_control", r
->privilege_control
);
3733 ndr_print_ptr(ndr
, "privilege_attrib", r
->privilege_attrib
);
3735 if (r
->privilege_attrib
) {
3736 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_attrib", (int)r
->privilege_entries
);
3738 for (cntr_privilege_attrib_1
=0;cntr_privilege_attrib_1
<r
->privilege_entries
;cntr_privilege_attrib_1
++) {
3740 if (asprintf(&idx_1
, "[%d]", cntr_privilege_attrib_1
) != -1) {
3741 ndr_print_uint32(ndr
, "privilege_attrib", r
->privilege_attrib
[cntr_privilege_attrib_1
]);
3748 ndr_print_ptr(ndr
, "privilege_name", r
->privilege_name
);
3750 if (r
->privilege_name
) {
3751 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_name", (int)r
->privilege_entries
);
3753 for (cntr_privilege_name_1
=0;cntr_privilege_name_1
<r
->privilege_entries
;cntr_privilege_name_1
++) {
3755 if (asprintf(&idx_1
, "[%d]", cntr_privilege_name_1
) != -1) {
3756 ndr_print_lsa_String(ndr
, "privilege_name", &r
->privilege_name
[cntr_privilege_name_1
]);
3763 ndr_print_netr_QUOTA_LIMITS(ndr
, "quotalimits", &r
->quotalimits
);
3764 ndr_print_uint32(ndr
, "system_flags", r
->system_flags
);
3765 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3766 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3767 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3768 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3769 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3770 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3771 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3772 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3773 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3774 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3778 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3780 if (ndr_flags
& NDR_SCALARS
) {
3781 NDR_CHECK(ndr_push_align(ndr
, 2));
3782 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3784 if (ndr_flags
& NDR_BUFFERS
) {
3786 return NDR_ERR_SUCCESS
;
3789 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_ACCOUNT
*r
)
3791 if (ndr_flags
& NDR_SCALARS
) {
3792 NDR_CHECK(ndr_pull_align(ndr
, 2));
3793 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3795 if (ndr_flags
& NDR_BUFFERS
) {
3797 return NDR_ERR_SUCCESS
;
3800 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3802 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_ACCOUNT");
3804 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3808 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_SECRET
*r
)
3810 if (ndr_flags
& NDR_SCALARS
) {
3811 NDR_CHECK(ndr_push_align(ndr
, 2));
3812 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3814 if (ndr_flags
& NDR_BUFFERS
) {
3816 return NDR_ERR_SUCCESS
;
3819 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_SECRET
*r
)
3821 if (ndr_flags
& NDR_SCALARS
) {
3822 NDR_CHECK(ndr_pull_align(ndr
, 2));
3823 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3825 if (ndr_flags
& NDR_BUFFERS
) {
3827 return NDR_ERR_SUCCESS
;
3830 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_SECRET
*r
)
3832 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_SECRET");
3834 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3838 static enum ndr_err_code
ndr_push_netr_CIPHER_VALUE(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CIPHER_VALUE
*r
)
3840 if (ndr_flags
& NDR_SCALARS
) {
3841 NDR_CHECK(ndr_push_align(ndr
, 4));
3842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3844 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cipher_data
));
3846 if (ndr_flags
& NDR_BUFFERS
) {
3847 if (r
->cipher_data
) {
3848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3851 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, r
->len
));
3854 return NDR_ERR_SUCCESS
;
3857 static enum ndr_err_code
ndr_pull_netr_CIPHER_VALUE(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CIPHER_VALUE
*r
)
3859 uint32_t _ptr_cipher_data
;
3860 uint32_t size_cipher_data_1
= 0;
3861 uint32_t length_cipher_data_1
= 0;
3862 TALLOC_CTX
*_mem_save_cipher_data_0
;
3863 if (ndr_flags
& NDR_SCALARS
) {
3864 NDR_CHECK(ndr_pull_align(ndr
, 4));
3865 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
3866 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlen
));
3867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cipher_data
));
3868 if (_ptr_cipher_data
) {
3869 NDR_PULL_ALLOC(ndr
, r
->cipher_data
);
3871 r
->cipher_data
= NULL
;
3874 if (ndr_flags
& NDR_BUFFERS
) {
3875 if (r
->cipher_data
) {
3876 _mem_save_cipher_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3877 NDR_PULL_SET_MEM_CTX(ndr
, r
->cipher_data
, 0);
3878 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cipher_data
));
3879 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->cipher_data
));
3880 size_cipher_data_1
= ndr_get_array_size(ndr
, &r
->cipher_data
);
3881 length_cipher_data_1
= ndr_get_array_length(ndr
, &r
->cipher_data
);
3882 if (length_cipher_data_1
> size_cipher_data_1
) {
3883 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_cipher_data_1
, length_cipher_data_1
);
3885 NDR_PULL_ALLOC_N(ndr
, r
->cipher_data
, size_cipher_data_1
);
3886 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, length_cipher_data_1
));
3887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cipher_data_0
, 0);
3889 if (r
->cipher_data
) {
3890 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cipher_data
, r
->maxlen
));
3892 if (r
->cipher_data
) {
3893 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->cipher_data
, r
->len
));
3896 return NDR_ERR_SUCCESS
;
3899 _PUBLIC_
void ndr_print_netr_CIPHER_VALUE(struct ndr_print
*ndr
, const char *name
, const struct netr_CIPHER_VALUE
*r
)
3901 ndr_print_struct(ndr
, name
, "netr_CIPHER_VALUE");
3903 ndr_print_uint32(ndr
, "len", r
->len
);
3904 ndr_print_uint32(ndr
, "maxlen", r
->maxlen
);
3905 ndr_print_ptr(ndr
, "cipher_data", r
->cipher_data
);
3907 if (r
->cipher_data
) {
3908 ndr_print_array_uint8(ndr
, "cipher_data", r
->cipher_data
, r
->len
);
3914 static enum ndr_err_code
ndr_push_netr_DELTA_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_SECRET
*r
)
3916 if (ndr_flags
& NDR_SCALARS
) {
3917 NDR_CHECK(ndr_push_align(ndr
, 4));
3918 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3919 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->current_cipher_set_time
));
3920 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3921 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->old_cipher_set_time
));
3922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3923 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3924 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3925 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3926 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3927 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3933 if (ndr_flags
& NDR_BUFFERS
) {
3934 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3935 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3936 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3937 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3938 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3939 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3940 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3942 return NDR_ERR_SUCCESS
;
3945 static enum ndr_err_code
ndr_pull_netr_DELTA_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_SECRET
*r
)
3947 if (ndr_flags
& NDR_SCALARS
) {
3948 NDR_CHECK(ndr_pull_align(ndr
, 4));
3949 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3950 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->current_cipher_set_time
));
3951 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3952 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->old_cipher_set_time
));
3953 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3954 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3955 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3956 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3957 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3958 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3961 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3962 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3964 if (ndr_flags
& NDR_BUFFERS
) {
3965 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3966 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3967 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3968 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3969 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3970 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3971 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3973 return NDR_ERR_SUCCESS
;
3976 _PUBLIC_
void ndr_print_netr_DELTA_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_SECRET
*r
)
3978 ndr_print_struct(ndr
, name
, "netr_DELTA_SECRET");
3980 ndr_print_netr_CIPHER_VALUE(ndr
, "current_cipher", &r
->current_cipher
);
3981 ndr_print_NTTIME(ndr
, "current_cipher_set_time", r
->current_cipher_set_time
);
3982 ndr_print_netr_CIPHER_VALUE(ndr
, "old_cipher", &r
->old_cipher
);
3983 ndr_print_NTTIME(ndr
, "old_cipher_set_time", r
->old_cipher_set_time
);
3984 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3985 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3986 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3987 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3988 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3989 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3990 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3991 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3992 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3993 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3997 static enum ndr_err_code
ndr_push_netr_DeltaEnum(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DeltaEnum r
)
3999 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
4000 return NDR_ERR_SUCCESS
;
4003 static enum ndr_err_code
ndr_pull_netr_DeltaEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DeltaEnum
*r
)
4006 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
4008 return NDR_ERR_SUCCESS
;
4011 _PUBLIC_
void ndr_print_netr_DeltaEnum(struct ndr_print
*ndr
, const char *name
, enum netr_DeltaEnum r
)
4013 const char *val
= NULL
;
4016 case NETR_DELTA_DOMAIN
: val
= "NETR_DELTA_DOMAIN"; break;
4017 case NETR_DELTA_GROUP
: val
= "NETR_DELTA_GROUP"; break;
4018 case NETR_DELTA_DELETE_GROUP
: val
= "NETR_DELTA_DELETE_GROUP"; break;
4019 case NETR_DELTA_RENAME_GROUP
: val
= "NETR_DELTA_RENAME_GROUP"; break;
4020 case NETR_DELTA_USER
: val
= "NETR_DELTA_USER"; break;
4021 case NETR_DELTA_DELETE_USER
: val
= "NETR_DELTA_DELETE_USER"; break;
4022 case NETR_DELTA_RENAME_USER
: val
= "NETR_DELTA_RENAME_USER"; break;
4023 case NETR_DELTA_GROUP_MEMBER
: val
= "NETR_DELTA_GROUP_MEMBER"; break;
4024 case NETR_DELTA_ALIAS
: val
= "NETR_DELTA_ALIAS"; break;
4025 case NETR_DELTA_DELETE_ALIAS
: val
= "NETR_DELTA_DELETE_ALIAS"; break;
4026 case NETR_DELTA_RENAME_ALIAS
: val
= "NETR_DELTA_RENAME_ALIAS"; break;
4027 case NETR_DELTA_ALIAS_MEMBER
: val
= "NETR_DELTA_ALIAS_MEMBER"; break;
4028 case NETR_DELTA_POLICY
: val
= "NETR_DELTA_POLICY"; break;
4029 case NETR_DELTA_TRUSTED_DOMAIN
: val
= "NETR_DELTA_TRUSTED_DOMAIN"; break;
4030 case NETR_DELTA_DELETE_TRUST
: val
= "NETR_DELTA_DELETE_TRUST"; break;
4031 case NETR_DELTA_ACCOUNT
: val
= "NETR_DELTA_ACCOUNT"; break;
4032 case NETR_DELTA_DELETE_ACCOUNT
: val
= "NETR_DELTA_DELETE_ACCOUNT"; break;
4033 case NETR_DELTA_SECRET
: val
= "NETR_DELTA_SECRET"; break;
4034 case NETR_DELTA_DELETE_SECRET
: val
= "NETR_DELTA_DELETE_SECRET"; break;
4035 case NETR_DELTA_DELETE_GROUP2
: val
= "NETR_DELTA_DELETE_GROUP2"; break;
4036 case NETR_DELTA_DELETE_USER2
: val
= "NETR_DELTA_DELETE_USER2"; break;
4037 case NETR_DELTA_MODIFY_COUNT
: val
= "NETR_DELTA_MODIFY_COUNT"; break;
4039 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
4042 static enum ndr_err_code
ndr_push_netr_DELTA_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_UNION
*r
)
4044 if (ndr_flags
& NDR_SCALARS
) {
4045 int level
= ndr_push_get_switch_value(ndr
, r
);
4046 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4048 case NETR_DELTA_DOMAIN
: {
4049 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
4052 case NETR_DELTA_GROUP
: {
4053 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group
));
4056 case NETR_DELTA_DELETE_GROUP
: {
4059 case NETR_DELTA_RENAME_GROUP
: {
4060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_group
));
4063 case NETR_DELTA_USER
: {
4064 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
4067 case NETR_DELTA_DELETE_USER
: {
4070 case NETR_DELTA_RENAME_USER
: {
4071 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_user
));
4074 case NETR_DELTA_GROUP_MEMBER
: {
4075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_member
));
4078 case NETR_DELTA_ALIAS
: {
4079 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias
));
4082 case NETR_DELTA_DELETE_ALIAS
: {
4085 case NETR_DELTA_RENAME_ALIAS
: {
4086 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_alias
));
4089 case NETR_DELTA_ALIAS_MEMBER
: {
4090 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias_member
));
4093 case NETR_DELTA_POLICY
: {
4094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
4097 case NETR_DELTA_TRUSTED_DOMAIN
: {
4098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain
));
4101 case NETR_DELTA_DELETE_TRUST
: {
4102 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4105 case NETR_DELTA_ACCOUNT
: {
4106 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account
));
4109 case NETR_DELTA_DELETE_ACCOUNT
: {
4110 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4113 case NETR_DELTA_SECRET
: {
4114 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secret
));
4117 case NETR_DELTA_DELETE_SECRET
: {
4118 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4121 case NETR_DELTA_DELETE_GROUP2
: {
4122 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_group
));
4125 case NETR_DELTA_DELETE_USER2
: {
4126 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_user
));
4129 case NETR_DELTA_MODIFY_COUNT
: {
4130 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->modified_count
));
4134 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4137 if (ndr_flags
& NDR_BUFFERS
) {
4138 int level
= ndr_push_get_switch_value(ndr
, r
);
4140 case NETR_DELTA_DOMAIN
:
4142 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4146 case NETR_DELTA_GROUP
:
4148 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4152 case NETR_DELTA_DELETE_GROUP
:
4155 case NETR_DELTA_RENAME_GROUP
:
4156 if (r
->rename_group
) {
4157 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4161 case NETR_DELTA_USER
:
4163 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4167 case NETR_DELTA_DELETE_USER
:
4170 case NETR_DELTA_RENAME_USER
:
4171 if (r
->rename_user
) {
4172 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4176 case NETR_DELTA_GROUP_MEMBER
:
4177 if (r
->group_member
) {
4178 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4182 case NETR_DELTA_ALIAS
:
4184 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4188 case NETR_DELTA_DELETE_ALIAS
:
4191 case NETR_DELTA_RENAME_ALIAS
:
4192 if (r
->rename_alias
) {
4193 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4197 case NETR_DELTA_ALIAS_MEMBER
:
4198 if (r
->alias_member
) {
4199 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4203 case NETR_DELTA_POLICY
:
4205 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4209 case NETR_DELTA_TRUSTED_DOMAIN
:
4210 if (r
->trusted_domain
) {
4211 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4215 case NETR_DELTA_DELETE_TRUST
:
4218 case NETR_DELTA_ACCOUNT
:
4220 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4224 case NETR_DELTA_DELETE_ACCOUNT
:
4227 case NETR_DELTA_SECRET
:
4229 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4233 case NETR_DELTA_DELETE_SECRET
:
4236 case NETR_DELTA_DELETE_GROUP2
:
4237 if (r
->delete_group
) {
4238 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4242 case NETR_DELTA_DELETE_USER2
:
4243 if (r
->delete_user
) {
4244 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4248 case NETR_DELTA_MODIFY_COUNT
:
4249 if (r
->modified_count
) {
4250 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->modified_count
));
4255 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4258 return NDR_ERR_SUCCESS
;
4261 static enum ndr_err_code
ndr_pull_netr_DELTA_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_UNION
*r
)
4265 TALLOC_CTX
*_mem_save_domain_0
;
4266 uint32_t _ptr_domain
;
4267 TALLOC_CTX
*_mem_save_group_0
;
4268 uint32_t _ptr_group
;
4269 TALLOC_CTX
*_mem_save_rename_group_0
;
4270 uint32_t _ptr_rename_group
;
4271 TALLOC_CTX
*_mem_save_user_0
;
4273 TALLOC_CTX
*_mem_save_rename_user_0
;
4274 uint32_t _ptr_rename_user
;
4275 TALLOC_CTX
*_mem_save_group_member_0
;
4276 uint32_t _ptr_group_member
;
4277 TALLOC_CTX
*_mem_save_alias_0
;
4278 uint32_t _ptr_alias
;
4279 TALLOC_CTX
*_mem_save_rename_alias_0
;
4280 uint32_t _ptr_rename_alias
;
4281 TALLOC_CTX
*_mem_save_alias_member_0
;
4282 uint32_t _ptr_alias_member
;
4283 TALLOC_CTX
*_mem_save_policy_0
;
4284 uint32_t _ptr_policy
;
4285 TALLOC_CTX
*_mem_save_trusted_domain_0
;
4286 uint32_t _ptr_trusted_domain
;
4287 TALLOC_CTX
*_mem_save_account_0
;
4288 uint32_t _ptr_account
;
4289 TALLOC_CTX
*_mem_save_secret_0
;
4290 uint32_t _ptr_secret
;
4291 TALLOC_CTX
*_mem_save_delete_group_0
;
4292 uint32_t _ptr_delete_group
;
4293 TALLOC_CTX
*_mem_save_delete_user_0
;
4294 uint32_t _ptr_delete_user
;
4295 TALLOC_CTX
*_mem_save_modified_count_0
;
4296 uint32_t _ptr_modified_count
;
4297 level
= ndr_pull_get_switch_value(ndr
, r
);
4298 if (ndr_flags
& NDR_SCALARS
) {
4299 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4300 if (_level
!= level
) {
4301 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
4304 case NETR_DELTA_DOMAIN
: {
4305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
4307 NDR_PULL_ALLOC(ndr
, r
->domain
);
4313 case NETR_DELTA_GROUP
: {
4314 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group
));
4316 NDR_PULL_ALLOC(ndr
, r
->group
);
4322 case NETR_DELTA_DELETE_GROUP
: {
4325 case NETR_DELTA_RENAME_GROUP
: {
4326 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_group
));
4327 if (_ptr_rename_group
) {
4328 NDR_PULL_ALLOC(ndr
, r
->rename_group
);
4330 r
->rename_group
= NULL
;
4334 case NETR_DELTA_USER
: {
4335 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
4337 NDR_PULL_ALLOC(ndr
, r
->user
);
4343 case NETR_DELTA_DELETE_USER
: {
4346 case NETR_DELTA_RENAME_USER
: {
4347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_user
));
4348 if (_ptr_rename_user
) {
4349 NDR_PULL_ALLOC(ndr
, r
->rename_user
);
4351 r
->rename_user
= NULL
;
4355 case NETR_DELTA_GROUP_MEMBER
: {
4356 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_member
));
4357 if (_ptr_group_member
) {
4358 NDR_PULL_ALLOC(ndr
, r
->group_member
);
4360 r
->group_member
= NULL
;
4364 case NETR_DELTA_ALIAS
: {
4365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias
));
4367 NDR_PULL_ALLOC(ndr
, r
->alias
);
4373 case NETR_DELTA_DELETE_ALIAS
: {
4376 case NETR_DELTA_RENAME_ALIAS
: {
4377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_alias
));
4378 if (_ptr_rename_alias
) {
4379 NDR_PULL_ALLOC(ndr
, r
->rename_alias
);
4381 r
->rename_alias
= NULL
;
4385 case NETR_DELTA_ALIAS_MEMBER
: {
4386 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias_member
));
4387 if (_ptr_alias_member
) {
4388 NDR_PULL_ALLOC(ndr
, r
->alias_member
);
4390 r
->alias_member
= NULL
;
4394 case NETR_DELTA_POLICY
: {
4395 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
4397 NDR_PULL_ALLOC(ndr
, r
->policy
);
4403 case NETR_DELTA_TRUSTED_DOMAIN
: {
4404 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain
));
4405 if (_ptr_trusted_domain
) {
4406 NDR_PULL_ALLOC(ndr
, r
->trusted_domain
);
4408 r
->trusted_domain
= NULL
;
4412 case NETR_DELTA_DELETE_TRUST
: {
4413 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4416 case NETR_DELTA_ACCOUNT
: {
4417 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account
));
4419 NDR_PULL_ALLOC(ndr
, r
->account
);
4425 case NETR_DELTA_DELETE_ACCOUNT
: {
4426 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4429 case NETR_DELTA_SECRET
: {
4430 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secret
));
4432 NDR_PULL_ALLOC(ndr
, r
->secret
);
4438 case NETR_DELTA_DELETE_SECRET
: {
4439 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4442 case NETR_DELTA_DELETE_GROUP2
: {
4443 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_group
));
4444 if (_ptr_delete_group
) {
4445 NDR_PULL_ALLOC(ndr
, r
->delete_group
);
4447 r
->delete_group
= NULL
;
4451 case NETR_DELTA_DELETE_USER2
: {
4452 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_user
));
4453 if (_ptr_delete_user
) {
4454 NDR_PULL_ALLOC(ndr
, r
->delete_user
);
4456 r
->delete_user
= NULL
;
4460 case NETR_DELTA_MODIFY_COUNT
: {
4461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_modified_count
));
4462 if (_ptr_modified_count
) {
4463 NDR_PULL_ALLOC(ndr
, r
->modified_count
);
4465 r
->modified_count
= NULL
;
4470 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4473 if (ndr_flags
& NDR_BUFFERS
) {
4475 case NETR_DELTA_DOMAIN
:
4477 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4478 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4479 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4484 case NETR_DELTA_GROUP
:
4486 _mem_save_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4487 NDR_PULL_SET_MEM_CTX(ndr
, r
->group
, 0);
4488 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_0
, 0);
4493 case NETR_DELTA_DELETE_GROUP
:
4496 case NETR_DELTA_RENAME_GROUP
:
4497 if (r
->rename_group
) {
4498 _mem_save_rename_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4499 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_group
, 0);
4500 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_group_0
, 0);
4505 case NETR_DELTA_USER
:
4507 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4508 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
4509 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4510 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
4514 case NETR_DELTA_DELETE_USER
:
4517 case NETR_DELTA_RENAME_USER
:
4518 if (r
->rename_user
) {
4519 _mem_save_rename_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4520 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_user
, 0);
4521 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_user_0
, 0);
4526 case NETR_DELTA_GROUP_MEMBER
:
4527 if (r
->group_member
) {
4528 _mem_save_group_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4529 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_member
, 0);
4530 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4531 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_member_0
, 0);
4535 case NETR_DELTA_ALIAS
:
4537 _mem_save_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4538 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias
, 0);
4539 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4540 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_0
, 0);
4544 case NETR_DELTA_DELETE_ALIAS
:
4547 case NETR_DELTA_RENAME_ALIAS
:
4548 if (r
->rename_alias
) {
4549 _mem_save_rename_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4550 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_alias
, 0);
4551 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_alias_0
, 0);
4556 case NETR_DELTA_ALIAS_MEMBER
:
4557 if (r
->alias_member
) {
4558 _mem_save_alias_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4559 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias_member
, 0);
4560 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_member_0
, 0);
4565 case NETR_DELTA_POLICY
:
4567 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4568 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
4569 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4570 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
4574 case NETR_DELTA_TRUSTED_DOMAIN
:
4575 if (r
->trusted_domain
) {
4576 _mem_save_trusted_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4577 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain
, 0);
4578 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4579 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_0
, 0);
4583 case NETR_DELTA_DELETE_TRUST
:
4586 case NETR_DELTA_ACCOUNT
:
4588 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4589 NDR_PULL_SET_MEM_CTX(ndr
, r
->account
, 0);
4590 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, 0);
4595 case NETR_DELTA_DELETE_ACCOUNT
:
4598 case NETR_DELTA_SECRET
:
4600 _mem_save_secret_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4601 NDR_PULL_SET_MEM_CTX(ndr
, r
->secret
, 0);
4602 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secret_0
, 0);
4607 case NETR_DELTA_DELETE_SECRET
:
4610 case NETR_DELTA_DELETE_GROUP2
:
4611 if (r
->delete_group
) {
4612 _mem_save_delete_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4613 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_group
, 0);
4614 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_group_0
, 0);
4619 case NETR_DELTA_DELETE_USER2
:
4620 if (r
->delete_user
) {
4621 _mem_save_delete_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4622 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_user
, 0);
4623 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4624 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_user_0
, 0);
4628 case NETR_DELTA_MODIFY_COUNT
:
4629 if (r
->modified_count
) {
4630 _mem_save_modified_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4631 NDR_PULL_SET_MEM_CTX(ndr
, r
->modified_count
, 0);
4632 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->modified_count
));
4633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_modified_count_0
, 0);
4638 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4641 return NDR_ERR_SUCCESS
;
4644 _PUBLIC_
void ndr_print_netr_DELTA_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_UNION
*r
)
4647 level
= ndr_print_get_switch_value(ndr
, r
);
4648 ndr_print_union(ndr
, name
, level
, "netr_DELTA_UNION");
4650 case NETR_DELTA_DOMAIN
:
4651 ndr_print_ptr(ndr
, "domain", r
->domain
);
4654 ndr_print_netr_DELTA_DOMAIN(ndr
, "domain", r
->domain
);
4659 case NETR_DELTA_GROUP
:
4660 ndr_print_ptr(ndr
, "group", r
->group
);
4663 ndr_print_netr_DELTA_GROUP(ndr
, "group", r
->group
);
4668 case NETR_DELTA_DELETE_GROUP
:
4671 case NETR_DELTA_RENAME_GROUP
:
4672 ndr_print_ptr(ndr
, "rename_group", r
->rename_group
);
4674 if (r
->rename_group
) {
4675 ndr_print_netr_DELTA_RENAME(ndr
, "rename_group", r
->rename_group
);
4680 case NETR_DELTA_USER
:
4681 ndr_print_ptr(ndr
, "user", r
->user
);
4684 ndr_print_netr_DELTA_USER(ndr
, "user", r
->user
);
4689 case NETR_DELTA_DELETE_USER
:
4692 case NETR_DELTA_RENAME_USER
:
4693 ndr_print_ptr(ndr
, "rename_user", r
->rename_user
);
4695 if (r
->rename_user
) {
4696 ndr_print_netr_DELTA_RENAME(ndr
, "rename_user", r
->rename_user
);
4701 case NETR_DELTA_GROUP_MEMBER
:
4702 ndr_print_ptr(ndr
, "group_member", r
->group_member
);
4704 if (r
->group_member
) {
4705 ndr_print_netr_DELTA_GROUP_MEMBER(ndr
, "group_member", r
->group_member
);
4710 case NETR_DELTA_ALIAS
:
4711 ndr_print_ptr(ndr
, "alias", r
->alias
);
4714 ndr_print_netr_DELTA_ALIAS(ndr
, "alias", r
->alias
);
4719 case NETR_DELTA_DELETE_ALIAS
:
4722 case NETR_DELTA_RENAME_ALIAS
:
4723 ndr_print_ptr(ndr
, "rename_alias", r
->rename_alias
);
4725 if (r
->rename_alias
) {
4726 ndr_print_netr_DELTA_RENAME(ndr
, "rename_alias", r
->rename_alias
);
4731 case NETR_DELTA_ALIAS_MEMBER
:
4732 ndr_print_ptr(ndr
, "alias_member", r
->alias_member
);
4734 if (r
->alias_member
) {
4735 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr
, "alias_member", r
->alias_member
);
4740 case NETR_DELTA_POLICY
:
4741 ndr_print_ptr(ndr
, "policy", r
->policy
);
4744 ndr_print_netr_DELTA_POLICY(ndr
, "policy", r
->policy
);
4749 case NETR_DELTA_TRUSTED_DOMAIN
:
4750 ndr_print_ptr(ndr
, "trusted_domain", r
->trusted_domain
);
4752 if (r
->trusted_domain
) {
4753 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr
, "trusted_domain", r
->trusted_domain
);
4758 case NETR_DELTA_DELETE_TRUST
:
4759 ndr_print_netr_DELTA_DELETE_TRUST(ndr
, "delete_trust", &r
->delete_trust
);
4762 case NETR_DELTA_ACCOUNT
:
4763 ndr_print_ptr(ndr
, "account", r
->account
);
4766 ndr_print_netr_DELTA_ACCOUNT(ndr
, "account", r
->account
);
4771 case NETR_DELTA_DELETE_ACCOUNT
:
4772 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr
, "delete_account", &r
->delete_account
);
4775 case NETR_DELTA_SECRET
:
4776 ndr_print_ptr(ndr
, "secret", r
->secret
);
4779 ndr_print_netr_DELTA_SECRET(ndr
, "secret", r
->secret
);
4784 case NETR_DELTA_DELETE_SECRET
:
4785 ndr_print_netr_DELTA_DELETE_SECRET(ndr
, "delete_secret", &r
->delete_secret
);
4788 case NETR_DELTA_DELETE_GROUP2
:
4789 ndr_print_ptr(ndr
, "delete_group", r
->delete_group
);
4791 if (r
->delete_group
) {
4792 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_group", r
->delete_group
);
4797 case NETR_DELTA_DELETE_USER2
:
4798 ndr_print_ptr(ndr
, "delete_user", r
->delete_user
);
4800 if (r
->delete_user
) {
4801 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_user", r
->delete_user
);
4806 case NETR_DELTA_MODIFY_COUNT
:
4807 ndr_print_ptr(ndr
, "modified_count", r
->modified_count
);
4809 if (r
->modified_count
) {
4810 ndr_print_udlong(ndr
, "modified_count", *r
->modified_count
);
4816 ndr_print_bad_level(ndr
, name
, level
);
4820 static enum ndr_err_code
ndr_push_netr_DELTA_ID_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_ID_UNION
*r
)
4822 if (ndr_flags
& NDR_SCALARS
) {
4823 int level
= ndr_push_get_switch_value(ndr
, r
);
4824 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4826 case NETR_DELTA_DOMAIN
: {
4827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4830 case NETR_DELTA_GROUP
: {
4831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4834 case NETR_DELTA_DELETE_GROUP
: {
4835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4838 case NETR_DELTA_RENAME_GROUP
: {
4839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4842 case NETR_DELTA_USER
: {
4843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4846 case NETR_DELTA_DELETE_USER
: {
4847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4850 case NETR_DELTA_RENAME_USER
: {
4851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4854 case NETR_DELTA_GROUP_MEMBER
: {
4855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4858 case NETR_DELTA_ALIAS
: {
4859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4862 case NETR_DELTA_DELETE_ALIAS
: {
4863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4866 case NETR_DELTA_RENAME_ALIAS
: {
4867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4870 case NETR_DELTA_ALIAS_MEMBER
: {
4871 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4874 case NETR_DELTA_POLICY
: {
4875 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4878 case NETR_DELTA_TRUSTED_DOMAIN
: {
4879 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4882 case NETR_DELTA_DELETE_TRUST
: {
4883 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4886 case NETR_DELTA_ACCOUNT
: {
4887 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4890 case NETR_DELTA_DELETE_ACCOUNT
: {
4891 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4894 case NETR_DELTA_SECRET
: {
4895 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4898 case NETR_DELTA_DELETE_SECRET
: {
4899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4902 case NETR_DELTA_DELETE_GROUP2
: {
4903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4906 case NETR_DELTA_DELETE_USER2
: {
4907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4910 case NETR_DELTA_MODIFY_COUNT
: {
4914 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4917 if (ndr_flags
& NDR_BUFFERS
) {
4918 int level
= ndr_push_get_switch_value(ndr
, r
);
4920 case NETR_DELTA_DOMAIN
:
4923 case NETR_DELTA_GROUP
:
4926 case NETR_DELTA_DELETE_GROUP
:
4929 case NETR_DELTA_RENAME_GROUP
:
4932 case NETR_DELTA_USER
:
4935 case NETR_DELTA_DELETE_USER
:
4938 case NETR_DELTA_RENAME_USER
:
4941 case NETR_DELTA_GROUP_MEMBER
:
4944 case NETR_DELTA_ALIAS
:
4947 case NETR_DELTA_DELETE_ALIAS
:
4950 case NETR_DELTA_RENAME_ALIAS
:
4953 case NETR_DELTA_ALIAS_MEMBER
:
4956 case NETR_DELTA_POLICY
:
4958 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4962 case NETR_DELTA_TRUSTED_DOMAIN
:
4964 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4968 case NETR_DELTA_DELETE_TRUST
:
4970 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4974 case NETR_DELTA_ACCOUNT
:
4976 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4980 case NETR_DELTA_DELETE_ACCOUNT
:
4982 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4986 case NETR_DELTA_SECRET
:
4988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4991 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4995 case NETR_DELTA_DELETE_SECRET
:
4997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5000 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5004 case NETR_DELTA_DELETE_GROUP2
:
5007 case NETR_DELTA_DELETE_USER2
:
5010 case NETR_DELTA_MODIFY_COUNT
:
5014 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5017 return NDR_ERR_SUCCESS
;
5020 static enum ndr_err_code
ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_ID_UNION
*r
)
5024 TALLOC_CTX
*_mem_save_sid_0
;
5026 TALLOC_CTX
*_mem_save_name_0
;
5028 uint32_t size_name_1
= 0;
5029 uint32_t length_name_1
= 0;
5030 level
= ndr_pull_get_switch_value(ndr
, r
);
5031 if (ndr_flags
& NDR_SCALARS
) {
5032 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
5033 if (_level
!= level
) {
5034 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5037 case NETR_DELTA_DOMAIN
: {
5038 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5041 case NETR_DELTA_GROUP
: {
5042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5045 case NETR_DELTA_DELETE_GROUP
: {
5046 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5049 case NETR_DELTA_RENAME_GROUP
: {
5050 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5053 case NETR_DELTA_USER
: {
5054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5057 case NETR_DELTA_DELETE_USER
: {
5058 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5061 case NETR_DELTA_RENAME_USER
: {
5062 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5065 case NETR_DELTA_GROUP_MEMBER
: {
5066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5069 case NETR_DELTA_ALIAS
: {
5070 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5073 case NETR_DELTA_DELETE_ALIAS
: {
5074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5077 case NETR_DELTA_RENAME_ALIAS
: {
5078 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5081 case NETR_DELTA_ALIAS_MEMBER
: {
5082 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5085 case NETR_DELTA_POLICY
: {
5086 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5088 NDR_PULL_ALLOC(ndr
, r
->sid
);
5094 case NETR_DELTA_TRUSTED_DOMAIN
: {
5095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5097 NDR_PULL_ALLOC(ndr
, r
->sid
);
5103 case NETR_DELTA_DELETE_TRUST
: {
5104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5106 NDR_PULL_ALLOC(ndr
, r
->sid
);
5112 case NETR_DELTA_ACCOUNT
: {
5113 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5115 NDR_PULL_ALLOC(ndr
, r
->sid
);
5121 case NETR_DELTA_DELETE_ACCOUNT
: {
5122 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5124 NDR_PULL_ALLOC(ndr
, r
->sid
);
5130 case NETR_DELTA_SECRET
: {
5131 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5133 NDR_PULL_ALLOC(ndr
, r
->name
);
5139 case NETR_DELTA_DELETE_SECRET
: {
5140 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5142 NDR_PULL_ALLOC(ndr
, r
->name
);
5148 case NETR_DELTA_DELETE_GROUP2
: {
5149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5152 case NETR_DELTA_DELETE_USER2
: {
5153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5156 case NETR_DELTA_MODIFY_COUNT
: {
5160 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5163 if (ndr_flags
& NDR_BUFFERS
) {
5165 case NETR_DELTA_DOMAIN
:
5168 case NETR_DELTA_GROUP
:
5171 case NETR_DELTA_DELETE_GROUP
:
5174 case NETR_DELTA_RENAME_GROUP
:
5177 case NETR_DELTA_USER
:
5180 case NETR_DELTA_DELETE_USER
:
5183 case NETR_DELTA_RENAME_USER
:
5186 case NETR_DELTA_GROUP_MEMBER
:
5189 case NETR_DELTA_ALIAS
:
5192 case NETR_DELTA_DELETE_ALIAS
:
5195 case NETR_DELTA_RENAME_ALIAS
:
5198 case NETR_DELTA_ALIAS_MEMBER
:
5201 case NETR_DELTA_POLICY
:
5203 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5204 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5205 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5210 case NETR_DELTA_TRUSTED_DOMAIN
:
5212 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5213 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5214 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5219 case NETR_DELTA_DELETE_TRUST
:
5221 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5222 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5223 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5228 case NETR_DELTA_ACCOUNT
:
5230 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5231 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5232 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5237 case NETR_DELTA_DELETE_ACCOUNT
:
5239 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5240 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5241 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5242 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5246 case NETR_DELTA_SECRET
:
5248 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5249 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5250 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5251 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5252 size_name_1
= ndr_get_array_size(ndr
, &r
->name
);
5253 length_name_1
= ndr_get_array_length(ndr
, &r
->name
);
5254 if (length_name_1
> size_name_1
) {
5255 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_name_1
, length_name_1
);
5257 NDR_CHECK(ndr_check_string_terminator(ndr
, length_name_1
, sizeof(uint16_t)));
5258 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, length_name_1
, sizeof(uint16_t), CH_UTF16
));
5259 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5263 case NETR_DELTA_DELETE_SECRET
:
5265 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5266 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5267 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5268 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5269 size_name_1
= ndr_get_array_size(ndr
, &r
->name
);
5270 length_name_1
= ndr_get_array_length(ndr
, &r
->name
);
5271 if (length_name_1
> size_name_1
) {
5272 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_name_1
, length_name_1
);
5274 NDR_CHECK(ndr_check_string_terminator(ndr
, length_name_1
, sizeof(uint16_t)));
5275 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, length_name_1
, sizeof(uint16_t), CH_UTF16
));
5276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5280 case NETR_DELTA_DELETE_GROUP2
:
5283 case NETR_DELTA_DELETE_USER2
:
5286 case NETR_DELTA_MODIFY_COUNT
:
5290 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5293 return NDR_ERR_SUCCESS
;
5296 _PUBLIC_
void ndr_print_netr_DELTA_ID_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_ID_UNION
*r
)
5299 level
= ndr_print_get_switch_value(ndr
, r
);
5300 ndr_print_union(ndr
, name
, level
, "netr_DELTA_ID_UNION");
5302 case NETR_DELTA_DOMAIN
:
5303 ndr_print_uint32(ndr
, "rid", r
->rid
);
5306 case NETR_DELTA_GROUP
:
5307 ndr_print_uint32(ndr
, "rid", r
->rid
);
5310 case NETR_DELTA_DELETE_GROUP
:
5311 ndr_print_uint32(ndr
, "rid", r
->rid
);
5314 case NETR_DELTA_RENAME_GROUP
:
5315 ndr_print_uint32(ndr
, "rid", r
->rid
);
5318 case NETR_DELTA_USER
:
5319 ndr_print_uint32(ndr
, "rid", r
->rid
);
5322 case NETR_DELTA_DELETE_USER
:
5323 ndr_print_uint32(ndr
, "rid", r
->rid
);
5326 case NETR_DELTA_RENAME_USER
:
5327 ndr_print_uint32(ndr
, "rid", r
->rid
);
5330 case NETR_DELTA_GROUP_MEMBER
:
5331 ndr_print_uint32(ndr
, "rid", r
->rid
);
5334 case NETR_DELTA_ALIAS
:
5335 ndr_print_uint32(ndr
, "rid", r
->rid
);
5338 case NETR_DELTA_DELETE_ALIAS
:
5339 ndr_print_uint32(ndr
, "rid", r
->rid
);
5342 case NETR_DELTA_RENAME_ALIAS
:
5343 ndr_print_uint32(ndr
, "rid", r
->rid
);
5346 case NETR_DELTA_ALIAS_MEMBER
:
5347 ndr_print_uint32(ndr
, "rid", r
->rid
);
5350 case NETR_DELTA_POLICY
:
5351 ndr_print_ptr(ndr
, "sid", r
->sid
);
5354 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5359 case NETR_DELTA_TRUSTED_DOMAIN
:
5360 ndr_print_ptr(ndr
, "sid", r
->sid
);
5363 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5368 case NETR_DELTA_DELETE_TRUST
:
5369 ndr_print_ptr(ndr
, "sid", r
->sid
);
5372 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5377 case NETR_DELTA_ACCOUNT
:
5378 ndr_print_ptr(ndr
, "sid", r
->sid
);
5381 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5386 case NETR_DELTA_DELETE_ACCOUNT
:
5387 ndr_print_ptr(ndr
, "sid", r
->sid
);
5390 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5395 case NETR_DELTA_SECRET
:
5396 ndr_print_ptr(ndr
, "name", r
->name
);
5399 ndr_print_string(ndr
, "name", r
->name
);
5404 case NETR_DELTA_DELETE_SECRET
:
5405 ndr_print_ptr(ndr
, "name", r
->name
);
5408 ndr_print_string(ndr
, "name", r
->name
);
5413 case NETR_DELTA_DELETE_GROUP2
:
5414 ndr_print_uint32(ndr
, "rid", r
->rid
);
5417 case NETR_DELTA_DELETE_USER2
:
5418 ndr_print_uint32(ndr
, "rid", r
->rid
);
5421 case NETR_DELTA_MODIFY_COUNT
:
5425 ndr_print_bad_level(ndr
, name
, level
);
5429 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM
*r
)
5431 if (ndr_flags
& NDR_SCALARS
) {
5432 NDR_CHECK(ndr_push_align(ndr
, 4));
5433 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, r
->delta_type
));
5434 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5435 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5436 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5437 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5439 if (ndr_flags
& NDR_BUFFERS
) {
5440 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5441 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5443 return NDR_ERR_SUCCESS
;
5446 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM
*r
)
5448 if (ndr_flags
& NDR_SCALARS
) {
5449 NDR_CHECK(ndr_pull_align(ndr
, 4));
5450 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr
, NDR_SCALARS
, &r
->delta_type
));
5451 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5452 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5453 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5454 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5456 if (ndr_flags
& NDR_BUFFERS
) {
5457 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5458 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5460 return NDR_ERR_SUCCESS
;
5463 _PUBLIC_
void ndr_print_netr_DELTA_ENUM(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM
*r
)
5465 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM");
5467 ndr_print_netr_DeltaEnum(ndr
, "delta_type", r
->delta_type
);
5468 ndr_print_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
);
5469 ndr_print_netr_DELTA_ID_UNION(ndr
, "delta_id_union", &r
->delta_id_union
);
5470 ndr_print_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
);
5471 ndr_print_netr_DELTA_UNION(ndr
, "delta_union", &r
->delta_union
);
5475 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5477 uint32_t cntr_delta_enum_1
;
5478 if (ndr_flags
& NDR_SCALARS
) {
5479 NDR_CHECK(ndr_push_align(ndr
, 4));
5480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delta_enum
));
5483 if (ndr_flags
& NDR_BUFFERS
) {
5484 if (r
->delta_enum
) {
5485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5486 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5487 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5489 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5490 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5494 return NDR_ERR_SUCCESS
;
5497 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM_ARRAY
*r
)
5499 uint32_t _ptr_delta_enum
;
5500 uint32_t size_delta_enum_1
= 0;
5501 uint32_t cntr_delta_enum_1
;
5502 TALLOC_CTX
*_mem_save_delta_enum_0
;
5503 TALLOC_CTX
*_mem_save_delta_enum_1
;
5504 if (ndr_flags
& NDR_SCALARS
) {
5505 NDR_CHECK(ndr_pull_align(ndr
, 4));
5506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_deltas
));
5507 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum
));
5508 if (_ptr_delta_enum
) {
5509 NDR_PULL_ALLOC(ndr
, r
->delta_enum
);
5511 r
->delta_enum
= NULL
;
5514 if (ndr_flags
& NDR_BUFFERS
) {
5515 if (r
->delta_enum
) {
5516 _mem_save_delta_enum_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5517 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5518 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->delta_enum
));
5519 size_delta_enum_1
= ndr_get_array_size(ndr
, &r
->delta_enum
);
5520 NDR_PULL_ALLOC_N(ndr
, r
->delta_enum
, size_delta_enum_1
);
5521 _mem_save_delta_enum_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5522 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5523 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< size_delta_enum_1
; cntr_delta_enum_1
++) {
5524 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5526 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< size_delta_enum_1
; cntr_delta_enum_1
++) {
5527 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_1
, 0);
5530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_0
, 0);
5532 if (r
->delta_enum
) {
5533 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->delta_enum
, r
->num_deltas
));
5536 return NDR_ERR_SUCCESS
;
5539 _PUBLIC_
void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5541 uint32_t cntr_delta_enum_1
;
5542 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM_ARRAY");
5544 ndr_print_uint32(ndr
, "num_deltas", r
->num_deltas
);
5545 ndr_print_ptr(ndr
, "delta_enum", r
->delta_enum
);
5547 if (r
->delta_enum
) {
5548 ndr
->print(ndr
, "%s: ARRAY(%d)", "delta_enum", (int)r
->num_deltas
);
5550 for (cntr_delta_enum_1
=0;cntr_delta_enum_1
<r
->num_deltas
;cntr_delta_enum_1
++) {
5552 if (asprintf(&idx_1
, "[%d]", cntr_delta_enum_1
) != -1) {
5553 ndr_print_netr_DELTA_ENUM(ndr
, "delta_enum", &r
->delta_enum
[cntr_delta_enum_1
]);
5563 static enum ndr_err_code
ndr_push_netr_UAS_INFO_0(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UAS_INFO_0
*r
)
5566 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5567 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5568 if (ndr_flags
& NDR_SCALARS
) {
5569 NDR_CHECK(ndr_push_align(ndr
, 4));
5570 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timecreated
));
5572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number
));
5574 if (ndr_flags
& NDR_BUFFERS
) {
5576 ndr
->flags
= _flags_save_STRUCT
;
5578 return NDR_ERR_SUCCESS
;
5581 static enum ndr_err_code
ndr_pull_netr_UAS_INFO_0(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UAS_INFO_0
*r
)
5583 uint32_t size_computer_name_0
= 0;
5585 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5586 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5587 if (ndr_flags
& NDR_SCALARS
) {
5588 NDR_CHECK(ndr_pull_align(ndr
, 4));
5589 size_computer_name_0
= 16;
5590 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, size_computer_name_0
));
5591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timecreated
));
5592 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number
));
5594 if (ndr_flags
& NDR_BUFFERS
) {
5596 ndr
->flags
= _flags_save_STRUCT
;
5598 return NDR_ERR_SUCCESS
;
5601 _PUBLIC_
void ndr_print_netr_UAS_INFO_0(struct ndr_print
*ndr
, const char *name
, const struct netr_UAS_INFO_0
*r
)
5603 ndr_print_struct(ndr
, name
, "netr_UAS_INFO_0");
5605 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5606 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5608 ndr_print_array_uint8(ndr
, "computer_name", r
->computer_name
, 16);
5609 ndr_print_uint32(ndr
, "timecreated", r
->timecreated
);
5610 ndr_print_uint32(ndr
, "serial_number", r
->serial_number
);
5612 ndr
->flags
= _flags_save_STRUCT
;
5616 static enum ndr_err_code
ndr_push_netr_AccountBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AccountBuffer
*r
)
5618 if (ndr_flags
& NDR_SCALARS
) {
5619 NDR_CHECK(ndr_push_align(ndr
, 4));
5621 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5622 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5623 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
5624 ndr
->flags
= _flags_save_DATA_BLOB
;
5627 if (ndr_flags
& NDR_BUFFERS
) {
5629 return NDR_ERR_SUCCESS
;
5632 static enum ndr_err_code
ndr_pull_netr_AccountBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AccountBuffer
*r
)
5634 if (ndr_flags
& NDR_SCALARS
) {
5635 NDR_CHECK(ndr_pull_align(ndr
, 4));
5637 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5639 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->blob
));
5640 ndr
->flags
= _flags_save_DATA_BLOB
;
5643 if (ndr_flags
& NDR_BUFFERS
) {
5645 return NDR_ERR_SUCCESS
;
5648 _PUBLIC_
void ndr_print_netr_AccountBuffer(struct ndr_print
*ndr
, const char *name
, const struct netr_AccountBuffer
*r
)
5650 ndr_print_struct(ndr
, name
, "netr_AccountBuffer");
5652 ndr_print_DATA_BLOB(ndr
, "blob", r
->blob
);
5656 static enum ndr_err_code
ndr_push_netr_InfoFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5659 return NDR_ERR_SUCCESS
;
5662 static enum ndr_err_code
ndr_pull_netr_InfoFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5667 return NDR_ERR_SUCCESS
;
5670 _PUBLIC_
void ndr_print_netr_InfoFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5672 ndr_print_uint32(ndr
, name
, r
);
5674 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED
, r
);
5675 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS
, r
);
5676 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC
, r
);
5680 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_1
*r
)
5682 if (ndr_flags
& NDR_SCALARS
) {
5683 NDR_CHECK(ndr_push_align(ndr
, 4));
5684 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5687 if (ndr_flags
& NDR_BUFFERS
) {
5689 return NDR_ERR_SUCCESS
;
5692 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5694 if (ndr_flags
& NDR_SCALARS
) {
5695 NDR_CHECK(ndr_pull_align(ndr
, 4));
5696 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5699 if (ndr_flags
& NDR_BUFFERS
) {
5701 return NDR_ERR_SUCCESS
;
5704 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5706 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5708 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5709 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5713 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_2
*r
)
5715 if (ndr_flags
& NDR_SCALARS
) {
5716 NDR_CHECK(ndr_push_align(ndr
, 4));
5717 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5719 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5722 if (ndr_flags
& NDR_BUFFERS
) {
5723 if (r
->trusted_dc_name
) {
5724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5727 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_dc_name
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5730 return NDR_ERR_SUCCESS
;
5733 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5735 uint32_t _ptr_trusted_dc_name
;
5736 uint32_t size_trusted_dc_name_1
= 0;
5737 uint32_t length_trusted_dc_name_1
= 0;
5738 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5739 if (ndr_flags
& NDR_SCALARS
) {
5740 NDR_CHECK(ndr_pull_align(ndr
, 4));
5741 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5744 if (_ptr_trusted_dc_name
) {
5745 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5747 r
->trusted_dc_name
= NULL
;
5749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5751 if (ndr_flags
& NDR_BUFFERS
) {
5752 if (r
->trusted_dc_name
) {
5753 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5754 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5756 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5757 size_trusted_dc_name_1
= ndr_get_array_size(ndr
, &r
->trusted_dc_name
);
5758 length_trusted_dc_name_1
= ndr_get_array_length(ndr
, &r
->trusted_dc_name
);
5759 if (length_trusted_dc_name_1
> size_trusted_dc_name_1
) {
5760 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_trusted_dc_name_1
, length_trusted_dc_name_1
);
5762 NDR_CHECK(ndr_check_string_terminator(ndr
, length_trusted_dc_name_1
, sizeof(uint16_t)));
5763 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_dc_name
, length_trusted_dc_name_1
, sizeof(uint16_t), CH_UTF16
));
5764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5767 return NDR_ERR_SUCCESS
;
5770 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5772 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5774 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5775 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5776 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5778 if (r
->trusted_dc_name
) {
5779 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5782 ndr_print_uint32(ndr
, "tc_connection_status", r
->tc_connection_status
);
5786 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_3
*r
)
5788 if (ndr_flags
& NDR_SCALARS
) {
5789 NDR_CHECK(ndr_push_align(ndr
, 4));
5790 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5798 if (ndr_flags
& NDR_BUFFERS
) {
5800 return NDR_ERR_SUCCESS
;
5803 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5805 if (ndr_flags
& NDR_SCALARS
) {
5806 NDR_CHECK(ndr_pull_align(ndr
, 4));
5807 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5809 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5813 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5815 if (ndr_flags
& NDR_BUFFERS
) {
5817 return NDR_ERR_SUCCESS
;
5820 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5822 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5824 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5825 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5826 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5827 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5828 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5829 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5830 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5834 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_4(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_4
*r
)
5836 if (ndr_flags
& NDR_SCALARS
) {
5837 NDR_CHECK(ndr_push_align(ndr
, 4));
5838 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain_name
));
5841 if (ndr_flags
& NDR_BUFFERS
) {
5842 if (r
->trusted_dc_name
) {
5843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5846 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_dc_name
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5848 if (r
->trusted_domain_name
) {
5849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5852 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_domain_name
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5855 return NDR_ERR_SUCCESS
;
5858 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_4
*r
)
5860 uint32_t _ptr_trusted_dc_name
;
5861 uint32_t size_trusted_dc_name_1
= 0;
5862 uint32_t length_trusted_dc_name_1
= 0;
5863 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5864 uint32_t _ptr_trusted_domain_name
;
5865 uint32_t size_trusted_domain_name_1
= 0;
5866 uint32_t length_trusted_domain_name_1
= 0;
5867 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
5868 if (ndr_flags
& NDR_SCALARS
) {
5869 NDR_CHECK(ndr_pull_align(ndr
, 4));
5870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5871 if (_ptr_trusted_dc_name
) {
5872 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5874 r
->trusted_dc_name
= NULL
;
5876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
5877 if (_ptr_trusted_domain_name
) {
5878 NDR_PULL_ALLOC(ndr
, r
->trusted_domain_name
);
5880 r
->trusted_domain_name
= NULL
;
5883 if (ndr_flags
& NDR_BUFFERS
) {
5884 if (r
->trusted_dc_name
) {
5885 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5886 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5887 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5888 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5889 size_trusted_dc_name_1
= ndr_get_array_size(ndr
, &r
->trusted_dc_name
);
5890 length_trusted_dc_name_1
= ndr_get_array_length(ndr
, &r
->trusted_dc_name
);
5891 if (length_trusted_dc_name_1
> size_trusted_dc_name_1
) {
5892 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_trusted_dc_name_1
, length_trusted_dc_name_1
);
5894 NDR_CHECK(ndr_check_string_terminator(ndr
, length_trusted_dc_name_1
, sizeof(uint16_t)));
5895 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_dc_name
, length_trusted_dc_name_1
, sizeof(uint16_t), CH_UTF16
));
5896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5898 if (r
->trusted_domain_name
) {
5899 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5900 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain_name
, 0);
5901 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domain_name
));
5902 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_domain_name
));
5903 size_trusted_domain_name_1
= ndr_get_array_size(ndr
, &r
->trusted_domain_name
);
5904 length_trusted_domain_name_1
= ndr_get_array_length(ndr
, &r
->trusted_domain_name
);
5905 if (length_trusted_domain_name_1
> size_trusted_domain_name_1
) {
5906 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_trusted_domain_name_1
, length_trusted_domain_name_1
);
5908 NDR_CHECK(ndr_check_string_terminator(ndr
, length_trusted_domain_name_1
, sizeof(uint16_t)));
5909 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_domain_name
, length_trusted_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
5910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
5913 return NDR_ERR_SUCCESS
;
5916 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_4
*r
)
5918 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_4");
5920 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5922 if (r
->trusted_dc_name
) {
5923 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5926 ndr_print_ptr(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5928 if (r
->trusted_domain_name
) {
5929 ndr_print_string(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5935 static enum ndr_err_code
ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
5937 if (ndr_flags
& NDR_SCALARS
) {
5938 int level
= ndr_push_get_switch_value(ndr
, r
);
5939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5942 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5946 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5958 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5961 if (ndr_flags
& NDR_BUFFERS
) {
5962 int level
= ndr_push_get_switch_value(ndr
, r
);
5966 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5972 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5978 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5984 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5989 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5992 return NDR_ERR_SUCCESS
;
5995 static enum ndr_err_code
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5999 TALLOC_CTX
*_mem_save_info1_0
;
6000 uint32_t _ptr_info1
;
6001 TALLOC_CTX
*_mem_save_info2_0
;
6002 uint32_t _ptr_info2
;
6003 TALLOC_CTX
*_mem_save_info3_0
;
6004 uint32_t _ptr_info3
;
6005 TALLOC_CTX
*_mem_save_info4_0
;
6006 uint32_t _ptr_info4
;
6007 level
= ndr_pull_get_switch_value(ndr
, r
);
6008 if (ndr_flags
& NDR_SCALARS
) {
6009 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6010 if (_level
!= level
) {
6011 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
6015 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
6017 NDR_PULL_ALLOC(ndr
, r
->info1
);
6024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
6026 NDR_PULL_ALLOC(ndr
, r
->info2
);
6033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
6035 NDR_PULL_ALLOC(ndr
, r
->info3
);
6042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
6044 NDR_PULL_ALLOC(ndr
, r
->info4
);
6051 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6054 if (ndr_flags
& NDR_BUFFERS
) {
6058 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6059 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
6060 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
6061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6067 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6068 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6069 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6076 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6077 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6078 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
6079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6085 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6086 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6087 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6093 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6096 return NDR_ERR_SUCCESS
;
6099 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
6102 level
= ndr_print_get_switch_value(ndr
, r
);
6103 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
6106 ndr_print_ptr(ndr
, "info1", r
->info1
);
6109 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
6115 ndr_print_ptr(ndr
, "info2", r
->info2
);
6118 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
6124 ndr_print_ptr(ndr
, "info3", r
->info3
);
6127 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
6133 ndr_print_ptr(ndr
, "info4", r
->info4
);
6136 ndr_print_netr_NETLOGON_INFO_4(ndr
, "info4", r
->info4
);
6142 ndr_print_bad_level(ndr
, name
, level
);
6146 static enum ndr_err_code
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
6148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6149 return NDR_ERR_SUCCESS
;
6152 static enum ndr_err_code
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
6155 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6157 return NDR_ERR_SUCCESS
;
6160 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
6162 const char *val
= NULL
;
6165 case NETLOGON_CONTROL_QUERY
: val
= "NETLOGON_CONTROL_QUERY"; break;
6166 case NETLOGON_CONTROL_REPLICATE
: val
= "NETLOGON_CONTROL_REPLICATE"; break;
6167 case NETLOGON_CONTROL_SYNCHRONIZE
: val
= "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6168 case NETLOGON_CONTROL_PDC_REPLICATE
: val
= "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6169 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
6170 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
6171 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6172 case NETLOGON_CONTROL_FIND_USER
: val
= "NETLOGON_CONTROL_FIND_USER"; break;
6173 case NETLOGON_CONTROL_CHANGE_PASSWORD
: val
= "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6174 case NETLOGON_CONTROL_TC_VERIFY
: val
= "NETLOGON_CONTROL_TC_VERIFY"; break;
6175 case NETLOGON_CONTROL_FORCE_DNS_REG
: val
= "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6176 case NETLOGON_CONTROL_QUERY_DNS_REG
: val
= "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6177 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG
: val
= "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6178 case NETLOGON_CONTROL_TRUNCATE_LOG
: val
= "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6179 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
6180 case NETLOGON_CONTROL_BREAKPOINT
: val
= "NETLOGON_CONTROL_BREAKPOINT"; break;
6182 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6185 static enum ndr_err_code
ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_DATA_INFORMATION
*r
)
6187 if (ndr_flags
& NDR_SCALARS
) {
6188 int level
= ndr_push_get_switch_value(ndr
, r
);
6189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6191 case NETLOGON_CONTROL_REDISCOVER
: {
6192 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6195 case NETLOGON_CONTROL_TC_QUERY
: {
6196 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6199 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6200 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6203 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6204 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6207 case NETLOGON_CONTROL_TC_VERIFY
: {
6208 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6211 case NETLOGON_CONTROL_FIND_USER
: {
6212 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
6215 case NETLOGON_CONTROL_SET_DBFLAG
: {
6216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
6220 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6223 if (ndr_flags
& NDR_BUFFERS
) {
6224 int level
= ndr_push_get_switch_value(ndr
, r
);
6226 case NETLOGON_CONTROL_REDISCOVER
:
6228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6230 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6231 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6235 case NETLOGON_CONTROL_TC_QUERY
:
6237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6240 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6244 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6249 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6253 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6258 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6262 case NETLOGON_CONTROL_TC_VERIFY
:
6264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6267 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6271 case NETLOGON_CONTROL_FIND_USER
:
6273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6276 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6280 case NETLOGON_CONTROL_SET_DBFLAG
:
6284 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6287 return NDR_ERR_SUCCESS
;
6290 static enum ndr_err_code
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
6294 TALLOC_CTX
*_mem_save_domain_0
;
6295 uint32_t _ptr_domain
;
6296 uint32_t size_domain_1
= 0;
6297 uint32_t length_domain_1
= 0;
6298 TALLOC_CTX
*_mem_save_user_0
;
6300 uint32_t size_user_1
= 0;
6301 uint32_t length_user_1
= 0;
6302 level
= ndr_pull_get_switch_value(ndr
, r
);
6303 if (ndr_flags
& NDR_SCALARS
) {
6304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6305 if (_level
!= level
) {
6306 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
6309 case NETLOGON_CONTROL_REDISCOVER
: {
6310 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6312 NDR_PULL_ALLOC(ndr
, r
->domain
);
6318 case NETLOGON_CONTROL_TC_QUERY
: {
6319 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6321 NDR_PULL_ALLOC(ndr
, r
->domain
);
6327 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6328 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6330 NDR_PULL_ALLOC(ndr
, r
->domain
);
6336 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6337 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6339 NDR_PULL_ALLOC(ndr
, r
->domain
);
6345 case NETLOGON_CONTROL_TC_VERIFY
: {
6346 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6348 NDR_PULL_ALLOC(ndr
, r
->domain
);
6354 case NETLOGON_CONTROL_FIND_USER
: {
6355 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
6357 NDR_PULL_ALLOC(ndr
, r
->user
);
6363 case NETLOGON_CONTROL_SET_DBFLAG
: {
6364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
6368 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6371 if (ndr_flags
& NDR_BUFFERS
) {
6373 case NETLOGON_CONTROL_REDISCOVER
:
6375 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6376 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6377 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6378 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6379 size_domain_1
= ndr_get_array_size(ndr
, &r
->domain
);
6380 length_domain_1
= ndr_get_array_length(ndr
, &r
->domain
);
6381 if (length_domain_1
> size_domain_1
) {
6382 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_1
, length_domain_1
);
6384 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_1
, sizeof(uint16_t)));
6385 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, length_domain_1
, sizeof(uint16_t), CH_UTF16
));
6386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6390 case NETLOGON_CONTROL_TC_QUERY
:
6392 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6393 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6394 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6395 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6396 size_domain_1
= ndr_get_array_size(ndr
, &r
->domain
);
6397 length_domain_1
= ndr_get_array_length(ndr
, &r
->domain
);
6398 if (length_domain_1
> size_domain_1
) {
6399 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_1
, length_domain_1
);
6401 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_1
, sizeof(uint16_t)));
6402 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, length_domain_1
, sizeof(uint16_t), CH_UTF16
));
6403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6407 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6409 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6410 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6411 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6412 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6413 size_domain_1
= ndr_get_array_size(ndr
, &r
->domain
);
6414 length_domain_1
= ndr_get_array_length(ndr
, &r
->domain
);
6415 if (length_domain_1
> size_domain_1
) {
6416 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_1
, length_domain_1
);
6418 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_1
, sizeof(uint16_t)));
6419 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, length_domain_1
, sizeof(uint16_t), CH_UTF16
));
6420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6424 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6426 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6427 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6428 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6429 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6430 size_domain_1
= ndr_get_array_size(ndr
, &r
->domain
);
6431 length_domain_1
= ndr_get_array_length(ndr
, &r
->domain
);
6432 if (length_domain_1
> size_domain_1
) {
6433 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_1
, length_domain_1
);
6435 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_1
, sizeof(uint16_t)));
6436 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, length_domain_1
, sizeof(uint16_t), CH_UTF16
));
6437 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6441 case NETLOGON_CONTROL_TC_VERIFY
:
6443 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6444 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6445 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6446 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6447 size_domain_1
= ndr_get_array_size(ndr
, &r
->domain
);
6448 length_domain_1
= ndr_get_array_length(ndr
, &r
->domain
);
6449 if (length_domain_1
> size_domain_1
) {
6450 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_1
, length_domain_1
);
6452 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_1
, sizeof(uint16_t)));
6453 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, length_domain_1
, sizeof(uint16_t), CH_UTF16
));
6454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6458 case NETLOGON_CONTROL_FIND_USER
:
6460 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6461 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
6462 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
6463 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
6464 size_user_1
= ndr_get_array_size(ndr
, &r
->user
);
6465 length_user_1
= ndr_get_array_length(ndr
, &r
->user
);
6466 if (length_user_1
> size_user_1
) {
6467 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_1
, length_user_1
);
6469 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_1
, sizeof(uint16_t)));
6470 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, length_user_1
, sizeof(uint16_t), CH_UTF16
));
6471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
6475 case NETLOGON_CONTROL_SET_DBFLAG
:
6479 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6482 return NDR_ERR_SUCCESS
;
6485 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
6488 level
= ndr_print_get_switch_value(ndr
, r
);
6489 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
6491 case NETLOGON_CONTROL_REDISCOVER
:
6492 ndr_print_ptr(ndr
, "domain", r
->domain
);
6495 ndr_print_string(ndr
, "domain", r
->domain
);
6500 case NETLOGON_CONTROL_TC_QUERY
:
6501 ndr_print_ptr(ndr
, "domain", r
->domain
);
6504 ndr_print_string(ndr
, "domain", r
->domain
);
6509 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6510 ndr_print_ptr(ndr
, "domain", r
->domain
);
6513 ndr_print_string(ndr
, "domain", r
->domain
);
6518 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6519 ndr_print_ptr(ndr
, "domain", r
->domain
);
6522 ndr_print_string(ndr
, "domain", r
->domain
);
6527 case NETLOGON_CONTROL_TC_VERIFY
:
6528 ndr_print_ptr(ndr
, "domain", r
->domain
);
6531 ndr_print_string(ndr
, "domain", r
->domain
);
6536 case NETLOGON_CONTROL_FIND_USER
:
6537 ndr_print_ptr(ndr
, "user", r
->user
);
6540 ndr_print_string(ndr
, "user", r
->user
);
6545 case NETLOGON_CONTROL_SET_DBFLAG
:
6546 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
6550 ndr_print_bad_level(ndr
, name
, level
);
6554 static enum ndr_err_code
ndr_push_netr_NegotiateFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6557 return NDR_ERR_SUCCESS
;
6560 static enum ndr_err_code
ndr_pull_netr_NegotiateFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6563 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6565 return NDR_ERR_SUCCESS
;
6568 _PUBLIC_
void ndr_print_netr_NegotiateFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6570 ndr_print_uint32(ndr
, name
, r
);
6572 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT
, r
);
6573 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL
, r
);
6574 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR
, r
);
6575 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT
, r
);
6576 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC
, r
);
6577 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL
, r
);
6578 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS
, r
);
6579 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO
, r
);
6580 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL
, r
);
6581 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC
, r
);
6582 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH
, r
);
6583 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC
, r
);
6584 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL
, r
);
6585 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL
, r
);
6586 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS
, r
);
6587 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS
, r
);
6588 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS
, r
);
6589 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2
, r
);
6590 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO
, r
);
6591 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS
, r
);
6592 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION
, r
);
6593 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH
, r
);
6594 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2
, r
);
6595 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS
, r
);
6596 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC
, r
);
6600 static enum ndr_err_code
ndr_push_netr_ChangeLogFlags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
6602 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6603 return NDR_ERR_SUCCESS
;
6606 static enum ndr_err_code
ndr_pull_netr_ChangeLogFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
6609 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6611 return NDR_ERR_SUCCESS
;
6614 _PUBLIC_
void ndr_print_netr_ChangeLogFlags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
6616 ndr_print_uint16(ndr
, name
, r
);
6618 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED
, r
);
6619 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD
, r
);
6620 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED
, r
);
6621 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED
, r
);
6622 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ
, r
);
6626 static enum ndr_err_code
ndr_push_netr_ChangeLogObject(struct ndr_push
*ndr
, int ndr_flags
, const union netr_ChangeLogObject
*r
)
6628 if (ndr_flags
& NDR_SCALARS
) {
6629 int level
= ndr_push_get_switch_value(ndr
, r
);
6631 case NETR_CHANGELOG_SID_INCLUDED
: {
6632 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6635 case NETR_CHANGELOG_NAME_INCLUDED
: {
6637 uint32_t _flags_save_string
= ndr
->flags
;
6638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6639 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->object_name
));
6640 ndr
->flags
= _flags_save_string
;
6649 if (ndr_flags
& NDR_BUFFERS
) {
6650 int level
= ndr_push_get_switch_value(ndr
, r
);
6652 case NETR_CHANGELOG_SID_INCLUDED
:
6655 case NETR_CHANGELOG_NAME_INCLUDED
:
6663 return NDR_ERR_SUCCESS
;
6666 static enum ndr_err_code
ndr_pull_netr_ChangeLogObject(struct ndr_pull
*ndr
, int ndr_flags
, union netr_ChangeLogObject
*r
)
6669 level
= ndr_pull_get_switch_value(ndr
, r
);
6670 if (ndr_flags
& NDR_SCALARS
) {
6672 case NETR_CHANGELOG_SID_INCLUDED
: {
6673 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6676 case NETR_CHANGELOG_NAME_INCLUDED
: {
6678 uint32_t _flags_save_string
= ndr
->flags
;
6679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6680 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->object_name
));
6681 ndr
->flags
= _flags_save_string
;
6690 if (ndr_flags
& NDR_BUFFERS
) {
6692 case NETR_CHANGELOG_SID_INCLUDED
:
6695 case NETR_CHANGELOG_NAME_INCLUDED
:
6703 return NDR_ERR_SUCCESS
;
6706 _PUBLIC_
void ndr_print_netr_ChangeLogObject(struct ndr_print
*ndr
, const char *name
, const union netr_ChangeLogObject
*r
)
6709 level
= ndr_print_get_switch_value(ndr
, r
);
6710 ndr_print_union(ndr
, name
, level
, "netr_ChangeLogObject");
6712 case NETR_CHANGELOG_SID_INCLUDED
:
6713 ndr_print_dom_sid(ndr
, "object_sid", &r
->object_sid
);
6716 case NETR_CHANGELOG_NAME_INCLUDED
:
6717 ndr_print_string(ndr
, "object_name", r
->object_name
);
6726 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ChangeLogEntry(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChangeLogEntry
*r
)
6728 if (ndr_flags
& NDR_SCALARS
) {
6729 NDR_CHECK(ndr_push_align(ndr
, 4));
6730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number1
));
6731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number2
));
6732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_rid
));
6733 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, r
->flags
));
6734 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, r
->db_index
));
6735 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, r
->delta_type
));
6736 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6737 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6739 if (ndr_flags
& NDR_BUFFERS
) {
6740 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6742 return NDR_ERR_SUCCESS
;
6745 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ChangeLogEntry(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChangeLogEntry
*r
)
6747 if (ndr_flags
& NDR_SCALARS
) {
6748 NDR_CHECK(ndr_pull_align(ndr
, 4));
6749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number1
));
6750 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number2
));
6751 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_rid
));
6752 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6753 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, &r
->db_index
));
6754 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, &r
->delta_type
));
6755 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6756 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6758 if (ndr_flags
& NDR_BUFFERS
) {
6759 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6761 return NDR_ERR_SUCCESS
;
6764 _PUBLIC_
void ndr_print_netr_ChangeLogEntry(struct ndr_print
*ndr
, const char *name
, const struct netr_ChangeLogEntry
*r
)
6766 ndr_print_struct(ndr
, name
, "netr_ChangeLogEntry");
6768 ndr_print_uint32(ndr
, "serial_number1", r
->serial_number1
);
6769 ndr_print_uint32(ndr
, "serial_number2", r
->serial_number2
);
6770 ndr_print_uint32(ndr
, "object_rid", r
->object_rid
);
6771 ndr_print_netr_ChangeLogFlags(ndr
, "flags", r
->flags
);
6772 ndr_print_netr_SamDatabaseID8Bit(ndr
, "db_index", r
->db_index
);
6773 ndr_print_netr_DeltaEnum8Bit(ndr
, "delta_type", r
->delta_type
);
6774 ndr_print_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
));
6775 ndr_print_netr_ChangeLogObject(ndr
, "object", &r
->object
);
6779 _PUBLIC_
size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry
*r
, struct smb_iconv_convenience
*ic
, int flags
)
6781 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_netr_ChangeLogEntry
, ic
);
6784 static enum ndr_err_code
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
6786 if (ndr_flags
& NDR_SCALARS
) {
6787 NDR_CHECK(ndr_push_align(ndr
, 4));
6788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6789 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6791 if (ndr_flags
& NDR_BUFFERS
) {
6793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6794 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6797 return NDR_ERR_SUCCESS
;
6800 static enum ndr_err_code
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6803 uint32_t size_data_1
= 0;
6804 TALLOC_CTX
*_mem_save_data_0
;
6805 if (ndr_flags
& NDR_SCALARS
) {
6806 NDR_CHECK(ndr_pull_align(ndr
, 4));
6807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6808 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6810 NDR_PULL_ALLOC(ndr
, r
->data
);
6815 if (ndr_flags
& NDR_BUFFERS
) {
6817 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6818 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6819 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6820 size_data_1
= ndr_get_array_size(ndr
, &r
->data
);
6821 NDR_PULL_ALLOC_N(ndr
, r
->data
, size_data_1
);
6822 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_1
));
6823 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6826 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6829 return NDR_ERR_SUCCESS
;
6832 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6834 ndr_print_struct(ndr
, name
, "netr_Blob");
6836 ndr_print_uint32(ndr
, "length", r
->length
);
6837 ndr_print_ptr(ndr
, "data", r
->data
);
6840 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6846 static enum ndr_err_code
ndr_push_netr_DsRGetDCName_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6849 return NDR_ERR_SUCCESS
;
6852 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6857 return NDR_ERR_SUCCESS
;
6860 _PUBLIC_
void ndr_print_netr_DsRGetDCName_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6862 ndr_print_uint32(ndr
, name
, r
);
6864 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY
, r
);
6865 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED
, r
);
6866 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED
, r
);
6867 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED
, r
);
6868 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED
, r
);
6869 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY
, r
);
6870 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED
, r
);
6871 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED
, r
);
6872 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED
, r
);
6873 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED
, r
);
6874 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED
, r
);
6875 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF
, r
);
6876 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED
, r
);
6877 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME
, r
);
6878 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME
, r
);
6879 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE
, r
);
6880 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED
, r
);
6881 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME
, r
);
6882 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME
, r
);
6886 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType r
)
6888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6889 return NDR_ERR_SUCCESS
;
6892 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType
*r
)
6895 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6897 return NDR_ERR_SUCCESS
;
6900 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print
*ndr
, const char *name
, enum netr_DsRGetDCNameInfo_AddressType r
)
6902 const char *val
= NULL
;
6905 case DS_ADDRESS_TYPE_INET
: val
= "DS_ADDRESS_TYPE_INET"; break;
6906 case DS_ADDRESS_TYPE_NETBIOS
: val
= "DS_ADDRESS_TYPE_NETBIOS"; break;
6908 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6911 static enum ndr_err_code
ndr_push_netr_DsR_DcFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6914 return NDR_ERR_SUCCESS
;
6917 static enum ndr_err_code
ndr_pull_netr_DsR_DcFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6922 return NDR_ERR_SUCCESS
;
6925 _PUBLIC_
void ndr_print_netr_DsR_DcFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6927 ndr_print_uint32(ndr
, name
, r
);
6929 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC
, r
);
6930 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC
, r
);
6931 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP
, r
);
6932 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS
, r
);
6933 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC
, r
);
6934 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV
, r
);
6935 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST
, r
);
6936 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE
, r
);
6937 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV
, r
);
6938 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC
, r
);
6939 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
6940 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6
, r
);
6941 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER
, r
);
6942 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN
, r
);
6943 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST
, r
);
6947 _PUBLIC_
enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
6949 if (ndr_flags
& NDR_SCALARS
) {
6950 NDR_CHECK(ndr_push_align(ndr
, 4));
6951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
6952 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
6953 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, r
->dc_address_type
));
6954 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6955 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
6957 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, r
->dc_flags
));
6958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
6959 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
6961 if (ndr_flags
& NDR_BUFFERS
) {
6963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6966 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6968 if (r
->dc_address
) {
6969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6972 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6974 if (r
->domain_name
) {
6975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6978 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6980 if (r
->forest_name
) {
6981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6984 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6986 if (r
->dc_site_name
) {
6987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6990 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_site_name
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6992 if (r
->client_site_name
) {
6993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6994 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6996 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client_site_name
, ndr_charset_length(r
->client_site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6999 return NDR_ERR_SUCCESS
;
7002 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
7004 uint32_t _ptr_dc_unc
;
7005 uint32_t size_dc_unc_1
= 0;
7006 uint32_t length_dc_unc_1
= 0;
7007 TALLOC_CTX
*_mem_save_dc_unc_0
;
7008 uint32_t _ptr_dc_address
;
7009 uint32_t size_dc_address_1
= 0;
7010 uint32_t length_dc_address_1
= 0;
7011 TALLOC_CTX
*_mem_save_dc_address_0
;
7012 uint32_t _ptr_domain_name
;
7013 uint32_t size_domain_name_1
= 0;
7014 uint32_t length_domain_name_1
= 0;
7015 TALLOC_CTX
*_mem_save_domain_name_0
;
7016 uint32_t _ptr_forest_name
;
7017 uint32_t size_forest_name_1
= 0;
7018 uint32_t length_forest_name_1
= 0;
7019 TALLOC_CTX
*_mem_save_forest_name_0
;
7020 uint32_t _ptr_dc_site_name
;
7021 uint32_t size_dc_site_name_1
= 0;
7022 uint32_t length_dc_site_name_1
= 0;
7023 TALLOC_CTX
*_mem_save_dc_site_name_0
;
7024 uint32_t _ptr_client_site_name
;
7025 uint32_t size_client_site_name_1
= 0;
7026 uint32_t length_client_site_name_1
= 0;
7027 TALLOC_CTX
*_mem_save_client_site_name_0
;
7028 if (ndr_flags
& NDR_SCALARS
) {
7029 NDR_CHECK(ndr_pull_align(ndr
, 4));
7030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
7032 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
7036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
7037 if (_ptr_dc_address
) {
7038 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
7040 r
->dc_address
= NULL
;
7042 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
7043 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
7044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
7045 if (_ptr_domain_name
) {
7046 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
7048 r
->domain_name
= NULL
;
7050 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
7051 if (_ptr_forest_name
) {
7052 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
7054 r
->forest_name
= NULL
;
7056 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, &r
->dc_flags
));
7057 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
7058 if (_ptr_dc_site_name
) {
7059 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
7061 r
->dc_site_name
= NULL
;
7063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
7064 if (_ptr_client_site_name
) {
7065 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
7067 r
->client_site_name
= NULL
;
7070 if (ndr_flags
& NDR_BUFFERS
) {
7072 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7073 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
7074 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
7075 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
7076 size_dc_unc_1
= ndr_get_array_size(ndr
, &r
->dc_unc
);
7077 length_dc_unc_1
= ndr_get_array_length(ndr
, &r
->dc_unc
);
7078 if (length_dc_unc_1
> size_dc_unc_1
) {
7079 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_dc_unc_1
, length_dc_unc_1
);
7081 NDR_CHECK(ndr_check_string_terminator(ndr
, length_dc_unc_1
, sizeof(uint16_t)));
7082 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, length_dc_unc_1
, sizeof(uint16_t), CH_UTF16
));
7083 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
7085 if (r
->dc_address
) {
7086 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7087 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
7088 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
7089 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
7090 size_dc_address_1
= ndr_get_array_size(ndr
, &r
->dc_address
);
7091 length_dc_address_1
= ndr_get_array_length(ndr
, &r
->dc_address
);
7092 if (length_dc_address_1
> size_dc_address_1
) {
7093 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_dc_address_1
, length_dc_address_1
);
7095 NDR_CHECK(ndr_check_string_terminator(ndr
, length_dc_address_1
, sizeof(uint16_t)));
7096 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, length_dc_address_1
, sizeof(uint16_t), CH_UTF16
));
7097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
7099 if (r
->domain_name
) {
7100 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7101 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
7102 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
7103 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
7104 size_domain_name_1
= ndr_get_array_size(ndr
, &r
->domain_name
);
7105 length_domain_name_1
= ndr_get_array_length(ndr
, &r
->domain_name
);
7106 if (length_domain_name_1
> size_domain_name_1
) {
7107 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_name_1
, length_domain_name_1
);
7109 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_name_1
, sizeof(uint16_t)));
7110 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, length_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
7111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
7113 if (r
->forest_name
) {
7114 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7115 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
7116 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
7117 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
7118 size_forest_name_1
= ndr_get_array_size(ndr
, &r
->forest_name
);
7119 length_forest_name_1
= ndr_get_array_length(ndr
, &r
->forest_name
);
7120 if (length_forest_name_1
> size_forest_name_1
) {
7121 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_forest_name_1
, length_forest_name_1
);
7123 NDR_CHECK(ndr_check_string_terminator(ndr
, length_forest_name_1
, sizeof(uint16_t)));
7124 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, length_forest_name_1
, sizeof(uint16_t), CH_UTF16
));
7125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
7127 if (r
->dc_site_name
) {
7128 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7129 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
7130 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
7131 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
7132 size_dc_site_name_1
= ndr_get_array_size(ndr
, &r
->dc_site_name
);
7133 length_dc_site_name_1
= ndr_get_array_length(ndr
, &r
->dc_site_name
);
7134 if (length_dc_site_name_1
> size_dc_site_name_1
) {
7135 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_dc_site_name_1
, length_dc_site_name_1
);
7137 NDR_CHECK(ndr_check_string_terminator(ndr
, length_dc_site_name_1
, sizeof(uint16_t)));
7138 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_site_name
, length_dc_site_name_1
, sizeof(uint16_t), CH_UTF16
));
7139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
7141 if (r
->client_site_name
) {
7142 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7143 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
7144 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
7145 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
7146 size_client_site_name_1
= ndr_get_array_size(ndr
, &r
->client_site_name
);
7147 length_client_site_name_1
= ndr_get_array_length(ndr
, &r
->client_site_name
);
7148 if (length_client_site_name_1
> size_client_site_name_1
) {
7149 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_client_site_name_1
, length_client_site_name_1
);
7151 NDR_CHECK(ndr_check_string_terminator(ndr
, length_client_site_name_1
, sizeof(uint16_t)));
7152 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client_site_name
, length_client_site_name_1
, sizeof(uint16_t), CH_UTF16
));
7153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
7156 return NDR_ERR_SUCCESS
;
7159 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
7161 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
7163 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
7166 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
7169 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
7171 if (r
->dc_address
) {
7172 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
7175 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr
, "dc_address_type", r
->dc_address_type
);
7176 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
7177 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
7179 if (r
->domain_name
) {
7180 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
7183 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
7185 if (r
->forest_name
) {
7186 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
7189 ndr_print_netr_DsR_DcFlags(ndr
, "dc_flags", r
->dc_flags
);
7190 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
7192 if (r
->dc_site_name
) {
7193 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
7196 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
7198 if (r
->client_site_name
) {
7199 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
7205 static enum ndr_err_code
ndr_push_netr_Capabilities(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Capabilities
*r
)
7207 if (ndr_flags
& NDR_SCALARS
) {
7208 int level
= ndr_push_get_switch_value(ndr
, r
);
7209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7212 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->server_capabilities
));
7216 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7219 if (ndr_flags
& NDR_BUFFERS
) {
7220 int level
= ndr_push_get_switch_value(ndr
, r
);
7226 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7229 return NDR_ERR_SUCCESS
;
7232 static enum ndr_err_code
ndr_pull_netr_Capabilities(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Capabilities
*r
)
7236 level
= ndr_pull_get_switch_value(ndr
, r
);
7237 if (ndr_flags
& NDR_SCALARS
) {
7238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7239 if (_level
!= level
) {
7240 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7244 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->server_capabilities
));
7248 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7251 if (ndr_flags
& NDR_BUFFERS
) {
7257 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7260 return NDR_ERR_SUCCESS
;
7263 _PUBLIC_
void ndr_print_netr_Capabilities(struct ndr_print
*ndr
, const char *name
, const union netr_Capabilities
*r
)
7266 level
= ndr_print_get_switch_value(ndr
, r
);
7267 ndr_print_union(ndr
, name
, level
, "netr_Capabilities");
7270 ndr_print_netr_NegotiateFlags(ndr
, "server_capabilities", r
->server_capabilities
);
7274 ndr_print_bad_level(ndr
, name
, level
);
7278 static enum ndr_err_code
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7281 return NDR_ERR_SUCCESS
;
7284 static enum ndr_err_code
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7289 return NDR_ERR_SUCCESS
;
7292 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7294 ndr_print_uint32(ndr
, name
, r
);
7296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7301 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5
, r
);
7303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES
, r
);
7307 static enum ndr_err_code
ndr_push_netr_DomainQuery1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainQuery1
*r
)
7309 uint32_t cntr_unknown7_0
;
7310 if (ndr_flags
& NDR_SCALARS
) {
7311 NDR_CHECK(ndr_push_align(ndr
, 4));
7312 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
7313 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_domain
));
7314 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_site
));
7315 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown1
));
7316 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown2
));
7317 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown3
));
7318 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown4
));
7319 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
7320 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
7321 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
7322 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
7323 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< 4; cntr_unknown7_0
++) {
7324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
[cntr_unknown7_0
]));
7327 if (ndr_flags
& NDR_BUFFERS
) {
7328 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
7329 if (r
->workstation_domain
) {
7330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
7331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
7333 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_domain
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7335 if (r
->workstation_site
) {
7336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
7337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
7339 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_site
, ndr_charset_length(r
->workstation_site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
7343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
7345 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown1
, ndr_charset_length(r
->unknown1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
7349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
7351 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown2
, ndr_charset_length(r
->unknown2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
7355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
7357 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown3
, ndr_charset_length(r
->unknown3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
7361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
7363 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown4
, ndr_charset_length(r
->unknown4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7365 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
7366 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
7367 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
7368 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
7370 return NDR_ERR_SUCCESS
;
7373 static enum ndr_err_code
ndr_pull_netr_DomainQuery1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainQuery1
*r
)
7375 uint32_t _ptr_workstation_domain
;
7376 uint32_t size_workstation_domain_1
= 0;
7377 uint32_t length_workstation_domain_1
= 0;
7378 TALLOC_CTX
*_mem_save_workstation_domain_0
;
7379 uint32_t _ptr_workstation_site
;
7380 uint32_t size_workstation_site_1
= 0;
7381 uint32_t length_workstation_site_1
= 0;
7382 TALLOC_CTX
*_mem_save_workstation_site_0
;
7383 uint32_t _ptr_unknown1
;
7384 uint32_t size_unknown1_1
= 0;
7385 uint32_t length_unknown1_1
= 0;
7386 TALLOC_CTX
*_mem_save_unknown1_0
;
7387 uint32_t _ptr_unknown2
;
7388 uint32_t size_unknown2_1
= 0;
7389 uint32_t length_unknown2_1
= 0;
7390 TALLOC_CTX
*_mem_save_unknown2_0
;
7391 uint32_t _ptr_unknown3
;
7392 uint32_t size_unknown3_1
= 0;
7393 uint32_t length_unknown3_1
= 0;
7394 TALLOC_CTX
*_mem_save_unknown3_0
;
7395 uint32_t _ptr_unknown4
;
7396 uint32_t size_unknown4_1
= 0;
7397 uint32_t length_unknown4_1
= 0;
7398 TALLOC_CTX
*_mem_save_unknown4_0
;
7399 uint32_t size_unknown7_0
= 0;
7400 uint32_t cntr_unknown7_0
;
7401 if (ndr_flags
& NDR_SCALARS
) {
7402 NDR_CHECK(ndr_pull_align(ndr
, 4));
7403 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
7404 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_domain
));
7405 if (_ptr_workstation_domain
) {
7406 NDR_PULL_ALLOC(ndr
, r
->workstation_domain
);
7408 r
->workstation_domain
= NULL
;
7410 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_site
));
7411 if (_ptr_workstation_site
) {
7412 NDR_PULL_ALLOC(ndr
, r
->workstation_site
);
7414 r
->workstation_site
= NULL
;
7416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown1
));
7417 if (_ptr_unknown1
) {
7418 NDR_PULL_ALLOC(ndr
, r
->unknown1
);
7422 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown2
));
7423 if (_ptr_unknown2
) {
7424 NDR_PULL_ALLOC(ndr
, r
->unknown2
);
7428 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown3
));
7429 if (_ptr_unknown3
) {
7430 NDR_PULL_ALLOC(ndr
, r
->unknown3
);
7434 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown4
));
7435 if (_ptr_unknown4
) {
7436 NDR_PULL_ALLOC(ndr
, r
->unknown4
);
7440 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
7441 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
7442 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
7443 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
7444 size_unknown7_0
= 4;
7445 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< size_unknown7_0
; cntr_unknown7_0
++) {
7446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
[cntr_unknown7_0
]));
7449 if (ndr_flags
& NDR_BUFFERS
) {
7450 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
7451 if (r
->workstation_domain
) {
7452 _mem_save_workstation_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7453 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_domain
, 0);
7454 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_domain
));
7455 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_domain
));
7456 size_workstation_domain_1
= ndr_get_array_size(ndr
, &r
->workstation_domain
);
7457 length_workstation_domain_1
= ndr_get_array_length(ndr
, &r
->workstation_domain
);
7458 if (length_workstation_domain_1
> size_workstation_domain_1
) {
7459 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_workstation_domain_1
, length_workstation_domain_1
);
7461 NDR_CHECK(ndr_check_string_terminator(ndr
, length_workstation_domain_1
, sizeof(uint16_t)));
7462 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_domain
, length_workstation_domain_1
, sizeof(uint16_t), CH_UTF16
));
7463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_domain_0
, 0);
7465 if (r
->workstation_site
) {
7466 _mem_save_workstation_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7467 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_site
, 0);
7468 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_site
));
7469 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_site
));
7470 size_workstation_site_1
= ndr_get_array_size(ndr
, &r
->workstation_site
);
7471 length_workstation_site_1
= ndr_get_array_length(ndr
, &r
->workstation_site
);
7472 if (length_workstation_site_1
> size_workstation_site_1
) {
7473 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_workstation_site_1
, length_workstation_site_1
);
7475 NDR_CHECK(ndr_check_string_terminator(ndr
, length_workstation_site_1
, sizeof(uint16_t)));
7476 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_site
, length_workstation_site_1
, sizeof(uint16_t), CH_UTF16
));
7477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_site_0
, 0);
7480 _mem_save_unknown1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7481 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown1
, 0);
7482 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown1
));
7483 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown1
));
7484 size_unknown1_1
= ndr_get_array_size(ndr
, &r
->unknown1
);
7485 length_unknown1_1
= ndr_get_array_length(ndr
, &r
->unknown1
);
7486 if (length_unknown1_1
> size_unknown1_1
) {
7487 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_unknown1_1
, length_unknown1_1
);
7489 NDR_CHECK(ndr_check_string_terminator(ndr
, length_unknown1_1
, sizeof(uint16_t)));
7490 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown1
, length_unknown1_1
, sizeof(uint16_t), CH_UTF16
));
7491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown1_0
, 0);
7494 _mem_save_unknown2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7495 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown2
, 0);
7496 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown2
));
7497 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown2
));
7498 size_unknown2_1
= ndr_get_array_size(ndr
, &r
->unknown2
);
7499 length_unknown2_1
= ndr_get_array_length(ndr
, &r
->unknown2
);
7500 if (length_unknown2_1
> size_unknown2_1
) {
7501 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_unknown2_1
, length_unknown2_1
);
7503 NDR_CHECK(ndr_check_string_terminator(ndr
, length_unknown2_1
, sizeof(uint16_t)));
7504 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown2
, length_unknown2_1
, sizeof(uint16_t), CH_UTF16
));
7505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown2_0
, 0);
7508 _mem_save_unknown3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7509 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown3
, 0);
7510 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown3
));
7511 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown3
));
7512 size_unknown3_1
= ndr_get_array_size(ndr
, &r
->unknown3
);
7513 length_unknown3_1
= ndr_get_array_length(ndr
, &r
->unknown3
);
7514 if (length_unknown3_1
> size_unknown3_1
) {
7515 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_unknown3_1
, length_unknown3_1
);
7517 NDR_CHECK(ndr_check_string_terminator(ndr
, length_unknown3_1
, sizeof(uint16_t)));
7518 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown3
, length_unknown3_1
, sizeof(uint16_t), CH_UTF16
));
7519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown3_0
, 0);
7522 _mem_save_unknown4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7523 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown4
, 0);
7524 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown4
));
7525 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown4
));
7526 size_unknown4_1
= ndr_get_array_size(ndr
, &r
->unknown4
);
7527 length_unknown4_1
= ndr_get_array_length(ndr
, &r
->unknown4
);
7528 if (length_unknown4_1
> size_unknown4_1
) {
7529 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_unknown4_1
, length_unknown4_1
);
7531 NDR_CHECK(ndr_check_string_terminator(ndr
, length_unknown4_1
, sizeof(uint16_t)));
7532 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown4
, length_unknown4_1
, sizeof(uint16_t), CH_UTF16
));
7533 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown4_0
, 0);
7535 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
7536 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
7537 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
7538 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
7540 return NDR_ERR_SUCCESS
;
7543 _PUBLIC_
void ndr_print_netr_DomainQuery1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainQuery1
*r
)
7545 uint32_t cntr_unknown7_0
;
7546 ndr_print_struct(ndr
, name
, "netr_DomainQuery1");
7548 ndr_print_netr_Blob(ndr
, "blob", &r
->blob
);
7549 ndr_print_ptr(ndr
, "workstation_domain", r
->workstation_domain
);
7551 if (r
->workstation_domain
) {
7552 ndr_print_string(ndr
, "workstation_domain", r
->workstation_domain
);
7555 ndr_print_ptr(ndr
, "workstation_site", r
->workstation_site
);
7557 if (r
->workstation_site
) {
7558 ndr_print_string(ndr
, "workstation_site", r
->workstation_site
);
7561 ndr_print_ptr(ndr
, "unknown1", r
->unknown1
);
7564 ndr_print_string(ndr
, "unknown1", r
->unknown1
);
7567 ndr_print_ptr(ndr
, "unknown2", r
->unknown2
);
7570 ndr_print_string(ndr
, "unknown2", r
->unknown2
);
7573 ndr_print_ptr(ndr
, "unknown3", r
->unknown3
);
7576 ndr_print_string(ndr
, "unknown3", r
->unknown3
);
7579 ndr_print_ptr(ndr
, "unknown4", r
->unknown4
);
7582 ndr_print_string(ndr
, "unknown4", r
->unknown4
);
7585 ndr_print_lsa_BinaryString(ndr
, "blob2", &r
->blob2
);
7586 ndr_print_lsa_String(ndr
, "product", &r
->product
);
7587 ndr_print_lsa_String(ndr
, "unknown5", &r
->unknown5
);
7588 ndr_print_lsa_String(ndr
, "unknown6", &r
->unknown6
);
7589 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown7", (int)4);
7591 for (cntr_unknown7_0
=0;cntr_unknown7_0
<4;cntr_unknown7_0
++) {
7593 if (asprintf(&idx_0
, "[%d]", cntr_unknown7_0
) != -1) {
7594 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
[cntr_unknown7_0
]);
7602 static enum ndr_err_code
ndr_push_netr_DomainQuery(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainQuery
*r
)
7604 if (ndr_flags
& NDR_SCALARS
) {
7605 int level
= ndr_push_get_switch_value(ndr
, r
);
7606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7609 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
7613 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
7617 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7620 if (ndr_flags
& NDR_BUFFERS
) {
7621 int level
= ndr_push_get_switch_value(ndr
, r
);
7625 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7631 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7636 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7639 return NDR_ERR_SUCCESS
;
7642 static enum ndr_err_code
ndr_pull_netr_DomainQuery(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainQuery
*r
)
7646 TALLOC_CTX
*_mem_save_query1_0
;
7647 uint32_t _ptr_query1
;
7648 level
= ndr_pull_get_switch_value(ndr
, r
);
7649 if (ndr_flags
& NDR_SCALARS
) {
7650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7651 if (_level
!= level
) {
7652 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7656 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
7658 NDR_PULL_ALLOC(ndr
, r
->query1
);
7665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
7667 NDR_PULL_ALLOC(ndr
, r
->query1
);
7674 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7677 if (ndr_flags
& NDR_BUFFERS
) {
7681 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7682 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
7683 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
7690 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7691 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
7692 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
7693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
7698 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7701 return NDR_ERR_SUCCESS
;
7704 _PUBLIC_
void ndr_print_netr_DomainQuery(struct ndr_print
*ndr
, const char *name
, const union netr_DomainQuery
*r
)
7707 level
= ndr_print_get_switch_value(ndr
, r
);
7708 ndr_print_union(ndr
, name
, level
, "netr_DomainQuery");
7711 ndr_print_ptr(ndr
, "query1", r
->query1
);
7714 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
7720 ndr_print_ptr(ndr
, "query1", r
->query1
);
7723 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
7729 ndr_print_bad_level(ndr
, name
, level
);
7733 static enum ndr_err_code
ndr_push_netr_trust_extension(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_trust_extension
*r
)
7735 if (ndr_flags
& NDR_SCALARS
) {
7736 NDR_CHECK(ndr_push_align(ndr
, 4));
7737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7740 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->flags
));
7741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_type
));
7743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7745 if (ndr_flags
& NDR_BUFFERS
) {
7747 return NDR_ERR_SUCCESS
;
7750 static enum ndr_err_code
ndr_pull_netr_trust_extension(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension
*r
)
7752 if (ndr_flags
& NDR_SCALARS
) {
7753 NDR_CHECK(ndr_pull_align(ndr
, 4));
7754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7756 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7757 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->flags
));
7758 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
7759 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_type
));
7760 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
7762 if (ndr_flags
& NDR_BUFFERS
) {
7764 return NDR_ERR_SUCCESS
;
7767 _PUBLIC_
void ndr_print_netr_trust_extension(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension
*r
)
7769 ndr_print_struct(ndr
, name
, "netr_trust_extension");
7771 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->length
);
7772 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7773 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->size
);
7774 ndr_print_netr_TrustFlags(ndr
, "flags", r
->flags
);
7775 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
7776 ndr_print_uint32(ndr
, "trust_type", r
->trust_type
);
7777 ndr_print_uint32(ndr
, "trust_attributes", r
->trust_attributes
);
7781 static enum ndr_err_code
ndr_push_netr_trust_extension_container(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_trust_extension_container
*r
)
7783 if (ndr_flags
& NDR_SCALARS
) {
7784 NDR_CHECK(ndr_push_align(ndr
, 4));
7785 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
7786 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
7787 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
7789 if (ndr_flags
& NDR_BUFFERS
) {
7791 NDR_CHECK(ndr_push_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
7794 return NDR_ERR_SUCCESS
;
7797 static enum ndr_err_code
ndr_pull_netr_trust_extension_container(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension_container
*r
)
7800 TALLOC_CTX
*_mem_save_info_0
;
7801 if (ndr_flags
& NDR_SCALARS
) {
7802 NDR_CHECK(ndr_pull_align(ndr
, 4));
7803 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
7804 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
7805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
7807 NDR_PULL_ALLOC(ndr
, r
->info
);
7812 if (ndr_flags
& NDR_BUFFERS
) {
7814 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7815 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
7816 NDR_CHECK(ndr_pull_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
7817 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
7820 return NDR_ERR_SUCCESS
;
7823 _PUBLIC_
void ndr_print_netr_trust_extension_container(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension_container
*r
)
7825 ndr_print_struct(ndr
, name
, "netr_trust_extension_container");
7827 ndr_print_uint16(ndr
, "length", r
->length
);
7828 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
7829 ndr_print_ptr(ndr
, "info", r
->info
);
7832 ndr_print_netr_trust_extension(ndr
, "info", r
->info
);
7838 static enum ndr_err_code
ndr_push_netr_DomainTrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustInfo
*r
)
7840 uint32_t cntr_dummystring_0
;
7841 uint32_t cntr_dummy_0
;
7842 if (ndr_flags
& NDR_SCALARS
) {
7843 NDR_CHECK(ndr_push_align(ndr
, 4));
7844 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
7845 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
7846 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
7847 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7848 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
7849 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
7850 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< 3; cntr_dummystring_0
++) {
7851 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummystring
[cntr_dummystring_0
]));
7853 for (cntr_dummy_0
= 0; cntr_dummy_0
< 4; cntr_dummy_0
++) {
7854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
[cntr_dummy_0
]));
7857 if (ndr_flags
& NDR_BUFFERS
) {
7858 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
7859 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
7860 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
7862 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7864 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
7865 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< 3; cntr_dummystring_0
++) {
7866 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummystring
[cntr_dummystring_0
]));
7869 return NDR_ERR_SUCCESS
;
7872 static enum ndr_err_code
ndr_pull_netr_DomainTrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustInfo
*r
)
7875 TALLOC_CTX
*_mem_save_sid_0
;
7876 uint32_t size_dummystring_0
= 0;
7877 uint32_t cntr_dummystring_0
;
7878 uint32_t size_dummy_0
= 0;
7879 uint32_t cntr_dummy_0
;
7880 if (ndr_flags
& NDR_SCALARS
) {
7881 NDR_CHECK(ndr_pull_align(ndr
, 4));
7882 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
7883 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
7884 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
7885 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7886 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
7888 NDR_PULL_ALLOC(ndr
, r
->sid
);
7892 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
7893 size_dummystring_0
= 3;
7894 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< size_dummystring_0
; cntr_dummystring_0
++) {
7895 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummystring
[cntr_dummystring_0
]));
7898 for (cntr_dummy_0
= 0; cntr_dummy_0
< size_dummy_0
; cntr_dummy_0
++) {
7899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
[cntr_dummy_0
]));
7902 if (ndr_flags
& NDR_BUFFERS
) {
7903 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
7904 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
7905 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
7907 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7908 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
7909 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
7912 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
7913 size_dummystring_0
= 3;
7914 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< size_dummystring_0
; cntr_dummystring_0
++) {
7915 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummystring
[cntr_dummystring_0
]));
7918 return NDR_ERR_SUCCESS
;
7921 _PUBLIC_
void ndr_print_netr_DomainTrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustInfo
*r
)
7923 uint32_t cntr_dummystring_0
;
7924 uint32_t cntr_dummy_0
;
7925 ndr_print_struct(ndr
, name
, "netr_DomainTrustInfo");
7927 ndr_print_lsa_String(ndr
, "domainname", &r
->domainname
);
7928 ndr_print_lsa_String(ndr
, "fulldomainname", &r
->fulldomainname
);
7929 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
7930 ndr_print_GUID(ndr
, "guid", &r
->guid
);
7931 ndr_print_ptr(ndr
, "sid", r
->sid
);
7934 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
7937 ndr_print_netr_trust_extension_container(ndr
, "trust_extension", &r
->trust_extension
);
7938 ndr
->print(ndr
, "%s: ARRAY(%d)", "dummystring", (int)3);
7940 for (cntr_dummystring_0
=0;cntr_dummystring_0
<3;cntr_dummystring_0
++) {
7942 if (asprintf(&idx_0
, "[%d]", cntr_dummystring_0
) != -1) {
7943 ndr_print_lsa_String(ndr
, "dummystring", &r
->dummystring
[cntr_dummystring_0
]);
7948 ndr
->print(ndr
, "%s: ARRAY(%d)", "dummy", (int)4);
7950 for (cntr_dummy_0
=0;cntr_dummy_0
<4;cntr_dummy_0
++) {
7952 if (asprintf(&idx_0
, "[%d]", cntr_dummy_0
) != -1) {
7953 ndr_print_uint32(ndr
, "dummy", r
->dummy
[cntr_dummy_0
]);
7961 static enum ndr_err_code
ndr_push_netr_LsaPolicyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LsaPolicyInfo
*r
)
7963 if (ndr_flags
& NDR_SCALARS
) {
7964 NDR_CHECK(ndr_push_align(ndr
, 4));
7965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
7968 if (ndr_flags
& NDR_BUFFERS
) {
7970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7971 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, r
->policy_size
));
7974 return NDR_ERR_SUCCESS
;
7977 static enum ndr_err_code
ndr_pull_netr_LsaPolicyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LsaPolicyInfo
*r
)
7979 uint32_t _ptr_policy
;
7980 uint32_t size_policy_1
= 0;
7981 TALLOC_CTX
*_mem_save_policy_0
;
7982 if (ndr_flags
& NDR_SCALARS
) {
7983 NDR_CHECK(ndr_pull_align(ndr
, 4));
7984 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->policy_size
));
7985 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
7987 NDR_PULL_ALLOC(ndr
, r
->policy
);
7992 if (ndr_flags
& NDR_BUFFERS
) {
7994 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7995 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
7996 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->policy
));
7997 size_policy_1
= ndr_get_array_size(ndr
, &r
->policy
);
7998 NDR_PULL_ALLOC_N(ndr
, r
->policy
, size_policy_1
);
7999 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, size_policy_1
));
8000 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
8003 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->policy
, r
->policy_size
));
8006 return NDR_ERR_SUCCESS
;
8009 _PUBLIC_
void ndr_print_netr_LsaPolicyInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_LsaPolicyInfo
*r
)
8011 ndr_print_struct(ndr
, name
, "netr_LsaPolicyInfo");
8013 ndr_print_uint32(ndr
, "policy_size", r
->policy_size
);
8014 ndr_print_ptr(ndr
, "policy", r
->policy
);
8017 ndr_print_array_uint8(ndr
, "policy", r
->policy
, r
->policy_size
);
8023 _PUBLIC_
enum ndr_err_code
ndr_push_netr_WorkstationFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8026 return NDR_ERR_SUCCESS
;
8029 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_WorkstationFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8032 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8034 return NDR_ERR_SUCCESS
;
8037 _PUBLIC_
void ndr_print_netr_WorkstationFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8039 ndr_print_uint32(ndr
, name
, r
);
8041 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS
, r
);
8042 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE
, r
);
8046 static enum ndr_err_code
ndr_push_netr_DomainInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInfo1
*r
)
8048 uint32_t cntr_trusts_1
;
8049 uint32_t cntr_dummystring_0
;
8050 uint32_t cntr_dummy_0
;
8051 if (ndr_flags
& NDR_SCALARS
) {
8052 NDR_CHECK(ndr_push_align(ndr
, 4));
8053 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
8054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
8055 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusts
));
8056 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8057 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8058 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< 3; cntr_dummystring_0
++) {
8059 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummystring
[cntr_dummystring_0
]));
8061 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
8062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->supported_enc_types
));
8063 for (cntr_dummy_0
= 0; cntr_dummy_0
< 2; cntr_dummy_0
++) {
8064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
[cntr_dummy_0
]));
8067 if (ndr_flags
& NDR_BUFFERS
) {
8068 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
8070 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
8071 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
8072 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
8074 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
8075 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
8078 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8079 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8080 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< 3; cntr_dummystring_0
++) {
8081 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummystring
[cntr_dummystring_0
]));
8084 return NDR_ERR_SUCCESS
;
8087 static enum ndr_err_code
ndr_pull_netr_DomainInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInfo1
*r
)
8089 uint32_t _ptr_trusts
;
8090 uint32_t size_trusts_1
= 0;
8091 uint32_t cntr_trusts_1
;
8092 TALLOC_CTX
*_mem_save_trusts_0
;
8093 TALLOC_CTX
*_mem_save_trusts_1
;
8094 uint32_t size_dummystring_0
= 0;
8095 uint32_t cntr_dummystring_0
;
8096 uint32_t size_dummy_0
= 0;
8097 uint32_t cntr_dummy_0
;
8098 if (ndr_flags
& NDR_SCALARS
) {
8099 NDR_CHECK(ndr_pull_align(ndr
, 4));
8100 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
8101 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_trusts
));
8102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusts
));
8104 NDR_PULL_ALLOC(ndr
, r
->trusts
);
8108 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8109 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8110 size_dummystring_0
= 3;
8111 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< size_dummystring_0
; cntr_dummystring_0
++) {
8112 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummystring
[cntr_dummystring_0
]));
8114 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
8115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->supported_enc_types
));
8117 for (cntr_dummy_0
= 0; cntr_dummy_0
< size_dummy_0
; cntr_dummy_0
++) {
8118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
[cntr_dummy_0
]));
8121 if (ndr_flags
& NDR_BUFFERS
) {
8122 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
8124 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8125 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
8126 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusts
));
8127 size_trusts_1
= ndr_get_array_size(ndr
, &r
->trusts
);
8128 NDR_PULL_ALLOC_N(ndr
, r
->trusts
, size_trusts_1
);
8129 _mem_save_trusts_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8130 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
8131 for (cntr_trusts_1
= 0; cntr_trusts_1
< size_trusts_1
; cntr_trusts_1
++) {
8132 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
8134 for (cntr_trusts_1
= 0; cntr_trusts_1
< size_trusts_1
; cntr_trusts_1
++) {
8135 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
8137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_1
, 0);
8138 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, 0);
8140 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8141 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8142 size_dummystring_0
= 3;
8143 for (cntr_dummystring_0
= 0; cntr_dummystring_0
< size_dummystring_0
; cntr_dummystring_0
++) {
8144 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummystring
[cntr_dummystring_0
]));
8147 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusts
, r
->num_trusts
));
8150 return NDR_ERR_SUCCESS
;
8153 _PUBLIC_
void ndr_print_netr_DomainInfo1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInfo1
*r
)
8155 uint32_t cntr_trusts_1
;
8156 uint32_t cntr_dummystring_0
;
8157 uint32_t cntr_dummy_0
;
8158 ndr_print_struct(ndr
, name
, "netr_DomainInfo1");
8160 ndr_print_netr_DomainTrustInfo(ndr
, "domaininfo", &r
->domaininfo
);
8161 ndr_print_uint32(ndr
, "num_trusts", r
->num_trusts
);
8162 ndr_print_ptr(ndr
, "trusts", r
->trusts
);
8165 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusts", (int)r
->num_trusts
);
8167 for (cntr_trusts_1
=0;cntr_trusts_1
<r
->num_trusts
;cntr_trusts_1
++) {
8169 if (asprintf(&idx_1
, "[%d]", cntr_trusts_1
) != -1) {
8170 ndr_print_netr_DomainTrustInfo(ndr
, "trusts", &r
->trusts
[cntr_trusts_1
]);
8177 ndr_print_netr_LsaPolicyInfo(ndr
, "lsa_policy", &r
->lsa_policy
);
8178 ndr_print_lsa_String(ndr
, "dns_hostname", &r
->dns_hostname
);
8179 ndr
->print(ndr
, "%s: ARRAY(%d)", "dummystring", (int)3);
8181 for (cntr_dummystring_0
=0;cntr_dummystring_0
<3;cntr_dummystring_0
++) {
8183 if (asprintf(&idx_0
, "[%d]", cntr_dummystring_0
) != -1) {
8184 ndr_print_lsa_String(ndr
, "dummystring", &r
->dummystring
[cntr_dummystring_0
]);
8189 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
8190 ndr_print_uint32(ndr
, "supported_enc_types", r
->supported_enc_types
);
8191 ndr
->print(ndr
, "%s: ARRAY(%d)", "dummy", (int)2);
8193 for (cntr_dummy_0
=0;cntr_dummy_0
<2;cntr_dummy_0
++) {
8195 if (asprintf(&idx_0
, "[%d]", cntr_dummy_0
) != -1) {
8196 ndr_print_uint32(ndr
, "dummy", r
->dummy
[cntr_dummy_0
]);
8204 static enum ndr_err_code
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
8206 if (ndr_flags
& NDR_SCALARS
) {
8207 int level
= ndr_push_get_switch_value(ndr
, r
);
8208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8211 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
8215 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
8219 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8222 if (ndr_flags
& NDR_BUFFERS
) {
8223 int level
= ndr_push_get_switch_value(ndr
, r
);
8227 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8233 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8238 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8241 return NDR_ERR_SUCCESS
;
8244 static enum ndr_err_code
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
8248 TALLOC_CTX
*_mem_save_info1_0
;
8249 uint32_t _ptr_info1
;
8250 TALLOC_CTX
*_mem_save_info2_0
;
8251 uint32_t _ptr_info2
;
8252 level
= ndr_pull_get_switch_value(ndr
, r
);
8253 if (ndr_flags
& NDR_SCALARS
) {
8254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8255 if (_level
!= level
) {
8256 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
8260 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
8262 NDR_PULL_ALLOC(ndr
, r
->info1
);
8269 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
8271 NDR_PULL_ALLOC(ndr
, r
->info2
);
8278 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8281 if (ndr_flags
& NDR_BUFFERS
) {
8285 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8286 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
8287 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
8294 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8295 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
8296 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
8302 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8305 return NDR_ERR_SUCCESS
;
8308 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
8311 level
= ndr_print_get_switch_value(ndr
, r
);
8312 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
8315 ndr_print_ptr(ndr
, "info1", r
->info1
);
8318 ndr_print_netr_DomainInfo1(ndr
, "info1", r
->info1
);
8324 ndr_print_ptr(ndr
, "info2", r
->info2
);
8327 ndr_print_netr_DomainInfo1(ndr
, "info2", r
->info2
);
8333 ndr_print_bad_level(ndr
, name
, level
);
8337 static enum ndr_err_code
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CryptPassword
*r
)
8340 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8341 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8342 if (ndr_flags
& NDR_SCALARS
) {
8343 NDR_CHECK(ndr_push_align(ndr
, 4));
8344 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
8347 if (ndr_flags
& NDR_BUFFERS
) {
8349 ndr
->flags
= _flags_save_STRUCT
;
8351 return NDR_ERR_SUCCESS
;
8354 static enum ndr_err_code
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
8356 uint32_t size_data_0
= 0;
8358 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8359 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8360 if (ndr_flags
& NDR_SCALARS
) {
8361 NDR_CHECK(ndr_pull_align(ndr
, 4));
8363 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, size_data_0
));
8364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
8366 if (ndr_flags
& NDR_BUFFERS
) {
8368 ndr
->flags
= _flags_save_STRUCT
;
8370 return NDR_ERR_SUCCESS
;
8373 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
8375 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
8377 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8378 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8380 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
8381 ndr_print_uint32(ndr
, "length", r
->length
);
8383 ndr
->flags
= _flags_save_STRUCT
;
8387 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8389 uint32_t cntr_sitename_1
;
8390 if (ndr_flags
& NDR_SCALARS
) {
8391 NDR_CHECK(ndr_push_align(ndr
, 4));
8392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8393 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8395 if (ndr_flags
& NDR_BUFFERS
) {
8397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8398 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8399 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8401 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8402 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8406 return NDR_ERR_SUCCESS
;
8409 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesWCtr
*r
)
8411 uint32_t _ptr_sitename
;
8412 uint32_t size_sitename_1
= 0;
8413 uint32_t cntr_sitename_1
;
8414 TALLOC_CTX
*_mem_save_sitename_0
;
8415 TALLOC_CTX
*_mem_save_sitename_1
;
8416 if (ndr_flags
& NDR_SCALARS
) {
8417 NDR_CHECK(ndr_pull_align(ndr
, 4));
8418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8419 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8420 if (_ptr_sitename
) {
8421 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8426 if (ndr_flags
& NDR_BUFFERS
) {
8428 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8429 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8430 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8431 size_sitename_1
= ndr_get_array_size(ndr
, &r
->sitename
);
8432 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, size_sitename_1
);
8433 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8434 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8435 for (cntr_sitename_1
= 0; cntr_sitename_1
< size_sitename_1
; cntr_sitename_1
++) {
8436 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8438 for (cntr_sitename_1
= 0; cntr_sitename_1
< size_sitename_1
; cntr_sitename_1
++) {
8439 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8441 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8445 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8448 return NDR_ERR_SUCCESS
;
8451 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8453 uint32_t cntr_sitename_1
;
8454 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesWCtr");
8456 ndr_print_uint32(ndr
, "count", r
->count
);
8457 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8460 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8462 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8464 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8465 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8475 static enum ndr_err_code
ndr_push_netr_DsRAddress(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddress
*r
)
8477 if (ndr_flags
& NDR_SCALARS
) {
8478 NDR_CHECK(ndr_push_align(ndr
, 4));
8479 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
8480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8482 if (ndr_flags
& NDR_BUFFERS
) {
8484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8485 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->size
));
8488 return NDR_ERR_SUCCESS
;
8491 static enum ndr_err_code
ndr_pull_netr_DsRAddress(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddress
*r
)
8493 uint32_t _ptr_buffer
;
8494 uint32_t size_buffer_1
= 0;
8495 TALLOC_CTX
*_mem_save_buffer_0
;
8496 if (ndr_flags
& NDR_SCALARS
) {
8497 NDR_CHECK(ndr_pull_align(ndr
, 4));
8498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
8500 NDR_PULL_ALLOC(ndr
, r
->buffer
);
8504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
8506 if (ndr_flags
& NDR_BUFFERS
) {
8508 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8509 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
8510 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
8511 size_buffer_1
= ndr_get_array_size(ndr
, &r
->buffer
);
8512 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, size_buffer_1
);
8513 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, size_buffer_1
));
8514 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
8517 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->size
));
8520 return NDR_ERR_SUCCESS
;
8523 _PUBLIC_
void ndr_print_netr_DsRAddress(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddress
*r
)
8525 ndr_print_struct(ndr
, name
, "netr_DsRAddress");
8527 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
8530 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->size
);
8533 ndr_print_uint32(ndr
, "size", r
->size
);
8537 static enum ndr_err_code
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
8539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8540 return NDR_ERR_SUCCESS
;
8543 static enum ndr_err_code
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
8546 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8548 return NDR_ERR_SUCCESS
;
8551 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
8553 const char *val
= NULL
;
8556 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8557 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
8558 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
8559 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
8561 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8564 static enum ndr_err_code
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8567 return NDR_ERR_SUCCESS
;
8570 static enum ndr_err_code
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8575 return NDR_ERR_SUCCESS
;
8578 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8580 ndr_print_uint32(ndr
, name
, r
);
8582 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
8583 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
8584 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
8585 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
8586 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
8587 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
8588 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
8592 static enum ndr_err_code
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
8594 if (ndr_flags
& NDR_SCALARS
) {
8595 NDR_CHECK(ndr_push_align(ndr
, 4));
8596 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
8597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
8598 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
8599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
8600 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
8601 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
8602 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
8603 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8605 if (ndr_flags
& NDR_BUFFERS
) {
8606 if (r
->netbios_name
) {
8607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8610 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8616 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8619 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8622 return NDR_ERR_SUCCESS
;
8625 static enum ndr_err_code
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
8627 uint32_t _ptr_netbios_name
;
8628 uint32_t size_netbios_name_1
= 0;
8629 uint32_t length_netbios_name_1
= 0;
8630 TALLOC_CTX
*_mem_save_netbios_name_0
;
8631 uint32_t _ptr_dns_name
;
8632 uint32_t size_dns_name_1
= 0;
8633 uint32_t length_dns_name_1
= 0;
8634 TALLOC_CTX
*_mem_save_dns_name_0
;
8636 TALLOC_CTX
*_mem_save_sid_0
;
8637 if (ndr_flags
& NDR_SCALARS
) {
8638 NDR_CHECK(ndr_pull_align(ndr
, 4));
8639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
8640 if (_ptr_netbios_name
) {
8641 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
8643 r
->netbios_name
= NULL
;
8645 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
8646 if (_ptr_dns_name
) {
8647 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
8651 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
8652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
8653 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
8654 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
8655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
8657 NDR_PULL_ALLOC(ndr
, r
->sid
);
8661 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8663 if (ndr_flags
& NDR_BUFFERS
) {
8664 if (r
->netbios_name
) {
8665 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8666 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
8667 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
8668 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
8669 size_netbios_name_1
= ndr_get_array_size(ndr
, &r
->netbios_name
);
8670 length_netbios_name_1
= ndr_get_array_length(ndr
, &r
->netbios_name
);
8671 if (length_netbios_name_1
> size_netbios_name_1
) {
8672 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_netbios_name_1
, length_netbios_name_1
);
8674 NDR_CHECK(ndr_check_string_terminator(ndr
, length_netbios_name_1
, sizeof(uint16_t)));
8675 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, length_netbios_name_1
, sizeof(uint16_t), CH_UTF16
));
8676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
8679 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8680 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
8681 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
8682 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
8683 size_dns_name_1
= ndr_get_array_size(ndr
, &r
->dns_name
);
8684 length_dns_name_1
= ndr_get_array_length(ndr
, &r
->dns_name
);
8685 if (length_dns_name_1
> size_dns_name_1
) {
8686 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_dns_name_1
, length_dns_name_1
);
8688 NDR_CHECK(ndr_check_string_terminator(ndr
, length_dns_name_1
, sizeof(uint16_t)));
8689 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, length_dns_name_1
, sizeof(uint16_t), CH_UTF16
));
8690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
8693 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8694 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
8695 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
8699 return NDR_ERR_SUCCESS
;
8702 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
8704 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
8706 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
8708 if (r
->netbios_name
) {
8709 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
8712 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
8715 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
8718 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
8719 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
8720 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
8721 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
8722 ndr_print_ptr(ndr
, "sid", r
->sid
);
8725 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
8728 ndr_print_GUID(ndr
, "guid", &r
->guid
);
8732 static enum ndr_err_code
ndr_push_netr_DomainTrustList(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustList
*r
)
8734 uint32_t cntr_array_1
;
8735 if (ndr_flags
& NDR_SCALARS
) {
8736 NDR_CHECK(ndr_push_align(ndr
, 4));
8737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8738 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
8740 if (ndr_flags
& NDR_BUFFERS
) {
8742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8743 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8744 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8746 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8747 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8751 return NDR_ERR_SUCCESS
;
8754 static enum ndr_err_code
ndr_pull_netr_DomainTrustList(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustList
*r
)
8756 uint32_t _ptr_array
;
8757 uint32_t size_array_1
= 0;
8758 uint32_t cntr_array_1
;
8759 TALLOC_CTX
*_mem_save_array_0
;
8760 TALLOC_CTX
*_mem_save_array_1
;
8761 if (ndr_flags
& NDR_SCALARS
) {
8762 NDR_CHECK(ndr_pull_align(ndr
, 4));
8763 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8764 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
8766 NDR_PULL_ALLOC(ndr
, r
->array
);
8771 if (ndr_flags
& NDR_BUFFERS
) {
8773 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8774 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8775 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
8776 size_array_1
= ndr_get_array_size(ndr
, &r
->array
);
8777 NDR_PULL_ALLOC_N(ndr
, r
->array
, size_array_1
);
8778 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8779 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8780 for (cntr_array_1
= 0; cntr_array_1
< size_array_1
; cntr_array_1
++) {
8781 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8783 for (cntr_array_1
= 0; cntr_array_1
< size_array_1
; cntr_array_1
++) {
8784 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
8787 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
8790 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
8793 return NDR_ERR_SUCCESS
;
8796 _PUBLIC_
void ndr_print_netr_DomainTrustList(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustList
*r
)
8798 uint32_t cntr_array_1
;
8799 ndr_print_struct(ndr
, name
, "netr_DomainTrustList");
8801 ndr_print_uint32(ndr
, "count", r
->count
);
8802 ndr_print_ptr(ndr
, "array", r
->array
);
8805 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
8807 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
8809 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
8810 ndr_print_netr_DomainTrust(ndr
, "array", &r
->array
[cntr_array_1
]);
8820 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8822 uint32_t cntr_sitename_1
;
8823 uint32_t cntr_subnetname_1
;
8824 if (ndr_flags
& NDR_SCALARS
) {
8825 NDR_CHECK(ndr_push_align(ndr
, 4));
8826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8827 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8828 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->subnetname
));
8830 if (ndr_flags
& NDR_BUFFERS
) {
8832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8833 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8834 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8836 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8837 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8840 if (r
->subnetname
) {
8841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8842 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8843 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8845 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8846 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8850 return NDR_ERR_SUCCESS
;
8853 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesExWCtr
*r
)
8855 uint32_t _ptr_sitename
;
8856 uint32_t size_sitename_1
= 0;
8857 uint32_t cntr_sitename_1
;
8858 TALLOC_CTX
*_mem_save_sitename_0
;
8859 TALLOC_CTX
*_mem_save_sitename_1
;
8860 uint32_t _ptr_subnetname
;
8861 uint32_t size_subnetname_1
= 0;
8862 uint32_t cntr_subnetname_1
;
8863 TALLOC_CTX
*_mem_save_subnetname_0
;
8864 TALLOC_CTX
*_mem_save_subnetname_1
;
8865 if (ndr_flags
& NDR_SCALARS
) {
8866 NDR_CHECK(ndr_pull_align(ndr
, 4));
8867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8868 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8869 if (_ptr_sitename
) {
8870 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_subnetname
));
8875 if (_ptr_subnetname
) {
8876 NDR_PULL_ALLOC(ndr
, r
->subnetname
);
8878 r
->subnetname
= NULL
;
8881 if (ndr_flags
& NDR_BUFFERS
) {
8883 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8884 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8886 size_sitename_1
= ndr_get_array_size(ndr
, &r
->sitename
);
8887 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, size_sitename_1
);
8888 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8889 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8890 for (cntr_sitename_1
= 0; cntr_sitename_1
< size_sitename_1
; cntr_sitename_1
++) {
8891 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8893 for (cntr_sitename_1
= 0; cntr_sitename_1
< size_sitename_1
; cntr_sitename_1
++) {
8894 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8899 if (r
->subnetname
) {
8900 _mem_save_subnetname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8901 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8902 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->subnetname
));
8903 size_subnetname_1
= ndr_get_array_size(ndr
, &r
->subnetname
);
8904 NDR_PULL_ALLOC_N(ndr
, r
->subnetname
, size_subnetname_1
);
8905 _mem_save_subnetname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8906 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8907 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< size_subnetname_1
; cntr_subnetname_1
++) {
8908 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8910 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< size_subnetname_1
; cntr_subnetname_1
++) {
8911 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_1
, 0);
8914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_0
, 0);
8917 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8919 if (r
->subnetname
) {
8920 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->subnetname
, r
->count
));
8923 return NDR_ERR_SUCCESS
;
8926 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8928 uint32_t cntr_sitename_1
;
8929 uint32_t cntr_subnetname_1
;
8930 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExWCtr");
8932 ndr_print_uint32(ndr
, "count", r
->count
);
8933 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8936 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8938 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8940 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8941 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8948 ndr_print_ptr(ndr
, "subnetname", r
->subnetname
);
8950 if (r
->subnetname
) {
8951 ndr
->print(ndr
, "%s: ARRAY(%d)", "subnetname", (int)r
->count
);
8953 for (cntr_subnetname_1
=0;cntr_subnetname_1
<r
->count
;cntr_subnetname_1
++) {
8955 if (asprintf(&idx_1
, "[%d]", cntr_subnetname_1
) != -1) {
8956 ndr_print_lsa_String(ndr
, "subnetname", &r
->subnetname
[cntr_subnetname_1
]);
8966 static enum ndr_err_code
ndr_push_DcSitesCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct DcSitesCtr
*r
)
8968 uint32_t cntr_sites_1
;
8969 if (ndr_flags
& NDR_SCALARS
) {
8970 NDR_CHECK(ndr_push_align(ndr
, 4));
8971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
8972 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sites
));
8974 if (ndr_flags
& NDR_BUFFERS
) {
8976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
8977 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8978 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
8980 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8981 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
8985 return NDR_ERR_SUCCESS
;
8988 static enum ndr_err_code
ndr_pull_DcSitesCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct DcSitesCtr
*r
)
8990 uint32_t _ptr_sites
;
8991 uint32_t size_sites_1
= 0;
8992 uint32_t cntr_sites_1
;
8993 TALLOC_CTX
*_mem_save_sites_0
;
8994 TALLOC_CTX
*_mem_save_sites_1
;
8995 if (ndr_flags
& NDR_SCALARS
) {
8996 NDR_CHECK(ndr_pull_align(ndr
, 4));
8997 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sites
));
8998 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sites
));
9000 NDR_PULL_ALLOC(ndr
, r
->sites
);
9005 if (ndr_flags
& NDR_BUFFERS
) {
9007 _mem_save_sites_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9008 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9009 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sites
));
9010 size_sites_1
= ndr_get_array_size(ndr
, &r
->sites
);
9011 NDR_PULL_ALLOC_N(ndr
, r
->sites
, size_sites_1
);
9012 _mem_save_sites_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9013 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9014 for (cntr_sites_1
= 0; cntr_sites_1
< size_sites_1
; cntr_sites_1
++) {
9015 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9017 for (cntr_sites_1
= 0; cntr_sites_1
< size_sites_1
; cntr_sites_1
++) {
9018 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_1
, 0);
9021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_0
, 0);
9024 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sites
, r
->num_sites
));
9027 return NDR_ERR_SUCCESS
;
9030 _PUBLIC_
void ndr_print_DcSitesCtr(struct ndr_print
*ndr
, const char *name
, const struct DcSitesCtr
*r
)
9032 uint32_t cntr_sites_1
;
9033 ndr_print_struct(ndr
, name
, "DcSitesCtr");
9035 ndr_print_uint32(ndr
, "num_sites", r
->num_sites
);
9036 ndr_print_ptr(ndr
, "sites", r
->sites
);
9039 ndr
->print(ndr
, "%s: ARRAY(%d)", "sites", (int)r
->num_sites
);
9041 for (cntr_sites_1
=0;cntr_sites_1
<r
->num_sites
;cntr_sites_1
++) {
9043 if (asprintf(&idx_1
, "[%d]", cntr_sites_1
) != -1) {
9044 ndr_print_lsa_String(ndr
, "sites", &r
->sites
[cntr_sites_1
]);
9054 static enum ndr_err_code
ndr_push_netr_TrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_TrustInfo
*r
)
9056 uint32_t cntr_data_1
;
9057 uint32_t cntr_entries_1
;
9058 if (ndr_flags
& NDR_SCALARS
) {
9059 NDR_CHECK(ndr_push_align(ndr
, 4));
9060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9061 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
9062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->entry_count
));
9063 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
9065 if (ndr_flags
& NDR_BUFFERS
) {
9067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9068 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
9073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9074 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9075 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9077 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9078 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9082 return NDR_ERR_SUCCESS
;
9085 static enum ndr_err_code
ndr_pull_netr_TrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_TrustInfo
*r
)
9088 uint32_t size_data_1
= 0;
9089 uint32_t cntr_data_1
;
9090 TALLOC_CTX
*_mem_save_data_0
;
9091 TALLOC_CTX
*_mem_save_data_1
;
9092 uint32_t _ptr_entries
;
9093 uint32_t size_entries_1
= 0;
9094 uint32_t cntr_entries_1
;
9095 TALLOC_CTX
*_mem_save_entries_0
;
9096 TALLOC_CTX
*_mem_save_entries_1
;
9097 if (ndr_flags
& NDR_SCALARS
) {
9098 NDR_CHECK(ndr_pull_align(ndr
, 4));
9099 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
9102 NDR_PULL_ALLOC(ndr
, r
->data
);
9106 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->entry_count
));
9107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
9109 NDR_PULL_ALLOC(ndr
, r
->entries
);
9114 if (ndr_flags
& NDR_BUFFERS
) {
9116 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9117 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9118 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
9119 size_data_1
= ndr_get_array_size(ndr
, &r
->data
);
9120 NDR_PULL_ALLOC_N(ndr
, r
->data
, size_data_1
);
9121 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9122 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9123 for (cntr_data_1
= 0; cntr_data_1
< size_data_1
; cntr_data_1
++) {
9124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
9126 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
9127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
9130 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9131 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9132 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
9133 size_entries_1
= ndr_get_array_size(ndr
, &r
->entries
);
9134 NDR_PULL_ALLOC_N(ndr
, r
->entries
, size_entries_1
);
9135 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9136 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9137 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
9138 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9140 for (cntr_entries_1
= 0; cntr_entries_1
< size_entries_1
; cntr_entries_1
++) {
9141 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
9144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
9147 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->count
));
9150 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
9153 return NDR_ERR_SUCCESS
;
9156 _PUBLIC_
void ndr_print_netr_TrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_TrustInfo
*r
)
9158 uint32_t cntr_data_1
;
9159 uint32_t cntr_entries_1
;
9160 ndr_print_struct(ndr
, name
, "netr_TrustInfo");
9162 ndr_print_uint32(ndr
, "count", r
->count
);
9163 ndr_print_ptr(ndr
, "data", r
->data
);
9166 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", (int)r
->count
);
9168 for (cntr_data_1
=0;cntr_data_1
<r
->count
;cntr_data_1
++) {
9170 if (asprintf(&idx_1
, "[%d]", cntr_data_1
) != -1) {
9171 ndr_print_uint32(ndr
, "data", r
->data
[cntr_data_1
]);
9178 ndr_print_uint32(ndr
, "entry_count", r
->entry_count
);
9179 ndr_print_ptr(ndr
, "entries", r
->entries
);
9182 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
9184 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
9186 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
9187 ndr_print_lsa_String(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
9197 static enum ndr_err_code
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
9199 if (flags
& NDR_IN
) {
9200 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9201 if (r
->in
.server_name
) {
9202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9205 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9207 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9210 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9214 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9216 if (flags
& NDR_OUT
) {
9217 if (r
->out
.info
== NULL
) {
9218 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9220 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
9222 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9224 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9226 return NDR_ERR_SUCCESS
;
9229 static enum ndr_err_code
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
9231 uint32_t _ptr_server_name
;
9232 uint32_t size_server_name_1
= 0;
9233 uint32_t length_server_name_1
= 0;
9234 uint32_t size_account_name_0
= 0;
9235 uint32_t length_account_name_0
= 0;
9236 uint32_t size_workstation_0
= 0;
9237 uint32_t length_workstation_0
= 0;
9239 TALLOC_CTX
*_mem_save_server_name_0
;
9240 TALLOC_CTX
*_mem_save_info_0
;
9241 TALLOC_CTX
*_mem_save_info_1
;
9242 if (flags
& NDR_IN
) {
9243 ZERO_STRUCT(r
->out
);
9245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9246 if (_ptr_server_name
) {
9247 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9249 r
->in
.server_name
= NULL
;
9251 if (r
->in
.server_name
) {
9252 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9253 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9254 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9255 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9256 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
9257 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
9258 if (length_server_name_1
> size_server_name_1
) {
9259 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
9261 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
9262 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
9263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9265 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9266 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9267 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
9268 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
9269 if (length_account_name_0
> size_account_name_0
) {
9270 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
9272 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
9273 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
9274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9275 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9276 size_workstation_0
= ndr_get_array_size(ndr
, &r
->in
.workstation
);
9277 length_workstation_0
= ndr_get_array_length(ndr
, &r
->in
.workstation
);
9278 if (length_workstation_0
> size_workstation_0
) {
9279 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_workstation_0
, length_workstation_0
);
9281 NDR_CHECK(ndr_check_string_terminator(ndr
, length_workstation_0
, sizeof(uint16_t)));
9282 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, length_workstation_0
, sizeof(uint16_t), CH_UTF16
));
9283 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9284 ZERO_STRUCTP(r
->out
.info
);
9286 if (flags
& NDR_OUT
) {
9287 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9288 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9290 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9291 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9292 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
9294 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
9296 *r
->out
.info
= NULL
;
9299 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9300 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
9301 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9302 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
9304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9305 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9307 return NDR_ERR_SUCCESS
;
9310 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
9312 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
9314 if (flags
& NDR_SET_VALUES
) {
9315 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9317 if (flags
& NDR_IN
) {
9318 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
9320 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9322 if (r
->in
.server_name
) {
9323 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9326 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9327 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9330 if (flags
& NDR_OUT
) {
9331 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
9333 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9335 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
9338 ndr_print_netr_UasInfo(ndr
, "info", *r
->out
.info
);
9342 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9348 static enum ndr_err_code
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
9350 if (flags
& NDR_IN
) {
9351 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9352 if (r
->in
.server_name
) {
9353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9356 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9361 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9367 if (flags
& NDR_OUT
) {
9368 if (r
->out
.info
== NULL
) {
9369 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9371 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9372 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9374 return NDR_ERR_SUCCESS
;
9377 static enum ndr_err_code
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
9379 uint32_t _ptr_server_name
;
9380 uint32_t size_server_name_1
= 0;
9381 uint32_t length_server_name_1
= 0;
9382 uint32_t size_account_name_0
= 0;
9383 uint32_t length_account_name_0
= 0;
9384 uint32_t size_workstation_0
= 0;
9385 uint32_t length_workstation_0
= 0;
9386 TALLOC_CTX
*_mem_save_server_name_0
;
9387 TALLOC_CTX
*_mem_save_info_0
;
9388 if (flags
& NDR_IN
) {
9389 ZERO_STRUCT(r
->out
);
9391 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9392 if (_ptr_server_name
) {
9393 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9395 r
->in
.server_name
= NULL
;
9397 if (r
->in
.server_name
) {
9398 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9399 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9400 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9401 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9402 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
9403 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
9404 if (length_server_name_1
> size_server_name_1
) {
9405 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
9407 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
9408 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
9409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9411 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9412 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9413 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
9414 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
9415 if (length_account_name_0
> size_account_name_0
) {
9416 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
9418 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
9419 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
9420 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9421 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9422 size_workstation_0
= ndr_get_array_size(ndr
, &r
->in
.workstation
);
9423 length_workstation_0
= ndr_get_array_length(ndr
, &r
->in
.workstation
);
9424 if (length_workstation_0
> size_workstation_0
) {
9425 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_workstation_0
, length_workstation_0
);
9427 NDR_CHECK(ndr_check_string_terminator(ndr
, length_workstation_0
, sizeof(uint16_t)));
9428 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, length_workstation_0
, sizeof(uint16_t), CH_UTF16
));
9429 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9430 ZERO_STRUCTP(r
->out
.info
);
9432 if (flags
& NDR_OUT
) {
9433 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9434 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9436 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9437 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9438 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9440 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9442 return NDR_ERR_SUCCESS
;
9445 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
9447 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
9449 if (flags
& NDR_SET_VALUES
) {
9450 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9452 if (flags
& NDR_IN
) {
9453 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
9455 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9457 if (r
->in
.server_name
) {
9458 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9461 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9462 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9465 if (flags
& NDR_OUT
) {
9466 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
9468 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9470 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
9472 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9478 static enum ndr_err_code
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
9480 if (flags
& NDR_IN
) {
9481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9482 if (r
->in
.server_name
) {
9483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9486 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9488 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9489 if (r
->in
.computer_name
) {
9490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9491 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9493 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9495 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9496 if (r
->in
.credential
) {
9497 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9499 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9500 if (r
->in
.return_authenticator
) {
9501 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9503 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9504 if (r
->in
.logon
== NULL
) {
9505 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9507 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9508 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9509 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
9511 if (flags
& NDR_OUT
) {
9512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9513 if (r
->out
.return_authenticator
) {
9514 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9516 if (r
->out
.validation
== NULL
) {
9517 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9519 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9520 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9521 if (r
->out
.authoritative
== NULL
) {
9522 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9524 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
9525 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9527 return NDR_ERR_SUCCESS
;
9530 static enum ndr_err_code
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
9532 uint32_t _ptr_server_name
;
9533 uint32_t size_server_name_1
= 0;
9534 uint32_t length_server_name_1
= 0;
9535 uint32_t _ptr_computer_name
;
9536 uint32_t size_computer_name_1
= 0;
9537 uint32_t length_computer_name_1
= 0;
9538 uint32_t _ptr_credential
;
9539 uint32_t _ptr_return_authenticator
;
9540 TALLOC_CTX
*_mem_save_server_name_0
;
9541 TALLOC_CTX
*_mem_save_computer_name_0
;
9542 TALLOC_CTX
*_mem_save_credential_0
;
9543 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9544 TALLOC_CTX
*_mem_save_logon_0
;
9545 TALLOC_CTX
*_mem_save_validation_0
;
9546 TALLOC_CTX
*_mem_save_authoritative_0
;
9547 if (flags
& NDR_IN
) {
9548 ZERO_STRUCT(r
->out
);
9550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9551 if (_ptr_server_name
) {
9552 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9554 r
->in
.server_name
= NULL
;
9556 if (r
->in
.server_name
) {
9557 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9558 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9559 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9560 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9561 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
9562 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
9563 if (length_server_name_1
> size_server_name_1
) {
9564 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
9566 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
9567 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
9568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9570 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9571 if (_ptr_computer_name
) {
9572 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9574 r
->in
.computer_name
= NULL
;
9576 if (r
->in
.computer_name
) {
9577 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9578 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9579 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9580 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9581 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
9582 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
9583 if (length_computer_name_1
> size_computer_name_1
) {
9584 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
9586 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
9587 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
9588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9590 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9591 if (_ptr_credential
) {
9592 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9594 r
->in
.credential
= NULL
;
9596 if (r
->in
.credential
) {
9597 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9598 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9599 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9600 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9602 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9603 if (_ptr_return_authenticator
) {
9604 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9606 r
->in
.return_authenticator
= NULL
;
9608 if (r
->in
.return_authenticator
) {
9609 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9610 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9611 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9614 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9615 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9616 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
9618 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9619 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
9620 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9621 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
9623 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
9624 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9625 ZERO_STRUCTP(r
->out
.validation
);
9626 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9627 ZERO_STRUCTP(r
->out
.authoritative
);
9629 if (flags
& NDR_OUT
) {
9630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9631 if (_ptr_return_authenticator
) {
9632 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9634 r
->out
.return_authenticator
= NULL
;
9636 if (r
->out
.return_authenticator
) {
9637 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9638 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9639 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9642 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9643 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9645 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9646 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
9647 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9648 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
9650 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9651 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9653 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9654 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
9655 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
9656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
9657 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9659 return NDR_ERR_SUCCESS
;
9662 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
9664 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
9666 if (flags
& NDR_SET_VALUES
) {
9667 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9669 if (flags
& NDR_IN
) {
9670 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
9672 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9674 if (r
->in
.server_name
) {
9675 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9678 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9680 if (r
->in
.computer_name
) {
9681 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9684 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9686 if (r
->in
.credential
) {
9687 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9690 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9692 if (r
->in
.return_authenticator
) {
9693 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9696 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9697 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
9699 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
9700 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
9702 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
9705 if (flags
& NDR_OUT
) {
9706 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
9708 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9710 if (r
->out
.return_authenticator
) {
9711 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9714 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
9716 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
9717 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
9719 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
9721 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
9723 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9729 static enum ndr_err_code
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
9731 if (flags
& NDR_IN
) {
9732 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9733 if (r
->in
.server_name
) {
9734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9737 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9739 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9740 if (r
->in
.computer_name
) {
9741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9744 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9746 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9747 if (r
->in
.credential
) {
9748 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9750 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9751 if (r
->in
.return_authenticator
) {
9752 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9754 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9755 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9756 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9758 if (flags
& NDR_OUT
) {
9759 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9760 if (r
->out
.return_authenticator
) {
9761 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9763 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9765 return NDR_ERR_SUCCESS
;
9768 static enum ndr_err_code
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
9770 uint32_t _ptr_server_name
;
9771 uint32_t size_server_name_1
= 0;
9772 uint32_t length_server_name_1
= 0;
9773 uint32_t _ptr_computer_name
;
9774 uint32_t size_computer_name_1
= 0;
9775 uint32_t length_computer_name_1
= 0;
9776 uint32_t _ptr_credential
;
9777 uint32_t _ptr_return_authenticator
;
9778 TALLOC_CTX
*_mem_save_server_name_0
;
9779 TALLOC_CTX
*_mem_save_computer_name_0
;
9780 TALLOC_CTX
*_mem_save_credential_0
;
9781 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9782 if (flags
& NDR_IN
) {
9783 ZERO_STRUCT(r
->out
);
9785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9786 if (_ptr_server_name
) {
9787 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9789 r
->in
.server_name
= NULL
;
9791 if (r
->in
.server_name
) {
9792 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9793 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9794 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9795 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9796 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
9797 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
9798 if (length_server_name_1
> size_server_name_1
) {
9799 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
9801 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
9802 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
9803 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9806 if (_ptr_computer_name
) {
9807 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9809 r
->in
.computer_name
= NULL
;
9811 if (r
->in
.computer_name
) {
9812 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9813 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9814 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9815 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9816 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
9817 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
9818 if (length_computer_name_1
> size_computer_name_1
) {
9819 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
9821 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
9822 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
9823 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9826 if (_ptr_credential
) {
9827 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9829 r
->in
.credential
= NULL
;
9831 if (r
->in
.credential
) {
9832 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9833 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9834 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9837 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9838 if (_ptr_return_authenticator
) {
9839 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9841 r
->in
.return_authenticator
= NULL
;
9843 if (r
->in
.return_authenticator
) {
9844 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9845 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9846 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9849 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9850 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9851 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9853 if (flags
& NDR_OUT
) {
9854 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9855 if (_ptr_return_authenticator
) {
9856 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9858 r
->out
.return_authenticator
= NULL
;
9860 if (r
->out
.return_authenticator
) {
9861 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9862 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9863 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9864 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9866 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9868 return NDR_ERR_SUCCESS
;
9871 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
9873 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
9875 if (flags
& NDR_SET_VALUES
) {
9876 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9878 if (flags
& NDR_IN
) {
9879 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
9881 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9883 if (r
->in
.server_name
) {
9884 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9887 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9889 if (r
->in
.computer_name
) {
9890 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9893 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9895 if (r
->in
.credential
) {
9896 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9899 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9901 if (r
->in
.return_authenticator
) {
9902 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9905 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9906 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
9907 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
9910 if (flags
& NDR_OUT
) {
9911 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
9913 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9915 if (r
->out
.return_authenticator
) {
9916 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9919 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9925 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
9927 if (flags
& NDR_IN
) {
9928 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9929 if (r
->in
.server_name
) {
9930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9933 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9938 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9939 if (r
->in
.credentials
== NULL
) {
9940 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9942 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
9944 if (flags
& NDR_OUT
) {
9945 if (r
->out
.return_credentials
== NULL
) {
9946 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9948 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
9949 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9951 return NDR_ERR_SUCCESS
;
9954 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
9956 uint32_t _ptr_server_name
;
9957 uint32_t size_server_name_1
= 0;
9958 uint32_t length_server_name_1
= 0;
9959 uint32_t size_computer_name_0
= 0;
9960 uint32_t length_computer_name_0
= 0;
9961 TALLOC_CTX
*_mem_save_server_name_0
;
9962 TALLOC_CTX
*_mem_save_credentials_0
;
9963 TALLOC_CTX
*_mem_save_return_credentials_0
;
9964 if (flags
& NDR_IN
) {
9965 ZERO_STRUCT(r
->out
);
9967 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9968 if (_ptr_server_name
) {
9969 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9971 r
->in
.server_name
= NULL
;
9973 if (r
->in
.server_name
) {
9974 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9975 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9976 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9977 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9978 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
9979 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
9980 if (length_server_name_1
> size_server_name_1
) {
9981 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
9983 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
9984 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
9985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9987 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9988 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9989 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
9990 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
9991 if (length_computer_name_0
> size_computer_name_0
) {
9992 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
9994 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
9995 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
9996 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9997 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
9999 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10000 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10001 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10003 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10004 ZERO_STRUCTP(r
->out
.return_credentials
);
10006 if (flags
& NDR_OUT
) {
10007 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10008 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10010 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10011 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10012 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10014 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10016 return NDR_ERR_SUCCESS
;
10019 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
10021 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
10023 if (flags
& NDR_SET_VALUES
) {
10024 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10026 if (flags
& NDR_IN
) {
10027 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
10029 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10031 if (r
->in
.server_name
) {
10032 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10035 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10036 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10038 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10042 if (flags
& NDR_OUT
) {
10043 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
10045 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10047 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10049 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10055 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
10057 if (flags
& NDR_IN
) {
10058 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10059 if (r
->in
.server_name
) {
10060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10063 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10068 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10069 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10070 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10071 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10073 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10074 if (r
->in
.credentials
== NULL
) {
10075 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10077 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10079 if (flags
& NDR_OUT
) {
10080 if (r
->out
.return_credentials
== NULL
) {
10081 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10083 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10084 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10086 return NDR_ERR_SUCCESS
;
10089 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
10091 uint32_t _ptr_server_name
;
10092 uint32_t size_server_name_1
= 0;
10093 uint32_t length_server_name_1
= 0;
10094 uint32_t size_account_name_0
= 0;
10095 uint32_t length_account_name_0
= 0;
10096 uint32_t size_computer_name_0
= 0;
10097 uint32_t length_computer_name_0
= 0;
10098 TALLOC_CTX
*_mem_save_server_name_0
;
10099 TALLOC_CTX
*_mem_save_credentials_0
;
10100 TALLOC_CTX
*_mem_save_return_credentials_0
;
10101 if (flags
& NDR_IN
) {
10102 ZERO_STRUCT(r
->out
);
10104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10105 if (_ptr_server_name
) {
10106 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10108 r
->in
.server_name
= NULL
;
10110 if (r
->in
.server_name
) {
10111 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10112 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10113 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10114 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10115 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
10116 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
10117 if (length_server_name_1
> size_server_name_1
) {
10118 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
10120 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
10121 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
10122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10124 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10125 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10126 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
10127 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
10128 if (length_account_name_0
> size_account_name_0
) {
10129 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
10131 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
10132 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
10133 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10134 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10135 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10136 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
10137 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
10138 if (length_computer_name_0
> size_computer_name_0
) {
10139 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
10141 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
10142 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
10143 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10144 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10146 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10147 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10148 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10149 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10150 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10151 ZERO_STRUCTP(r
->out
.return_credentials
);
10153 if (flags
& NDR_OUT
) {
10154 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10155 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10157 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10158 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10159 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10160 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10161 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10163 return NDR_ERR_SUCCESS
;
10166 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
10168 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
10170 if (flags
& NDR_SET_VALUES
) {
10171 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10173 if (flags
& NDR_IN
) {
10174 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
10176 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10178 if (r
->in
.server_name
) {
10179 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10182 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10183 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10184 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10185 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10187 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10191 if (flags
& NDR_OUT
) {
10192 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
10194 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10196 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10198 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10204 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
10206 if (flags
& NDR_IN
) {
10207 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10208 if (r
->in
.server_name
) {
10209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10212 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10217 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10218 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10222 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10223 if (r
->in
.credential
== NULL
) {
10224 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10226 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10227 if (r
->in
.new_password
== NULL
) {
10228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10230 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10232 if (flags
& NDR_OUT
) {
10233 if (r
->out
.return_authenticator
== NULL
) {
10234 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10236 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10237 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10239 return NDR_ERR_SUCCESS
;
10242 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
10244 uint32_t _ptr_server_name
;
10245 uint32_t size_server_name_1
= 0;
10246 uint32_t length_server_name_1
= 0;
10247 uint32_t size_account_name_0
= 0;
10248 uint32_t length_account_name_0
= 0;
10249 uint32_t size_computer_name_0
= 0;
10250 uint32_t length_computer_name_0
= 0;
10251 TALLOC_CTX
*_mem_save_server_name_0
;
10252 TALLOC_CTX
*_mem_save_credential_0
;
10253 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10254 TALLOC_CTX
*_mem_save_new_password_0
;
10255 if (flags
& NDR_IN
) {
10256 ZERO_STRUCT(r
->out
);
10258 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10259 if (_ptr_server_name
) {
10260 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10262 r
->in
.server_name
= NULL
;
10264 if (r
->in
.server_name
) {
10265 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10266 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10267 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10268 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10269 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
10270 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
10271 if (length_server_name_1
> size_server_name_1
) {
10272 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
10274 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
10275 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
10276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10278 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10279 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10280 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
10281 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
10282 if (length_account_name_0
> size_account_name_0
) {
10283 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
10285 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
10286 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
10287 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10288 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10289 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10290 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
10291 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
10292 if (length_computer_name_0
> size_computer_name_0
) {
10293 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
10295 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
10296 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
10297 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10298 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10300 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10301 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10302 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10304 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10305 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
10307 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10308 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
10309 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
10311 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10312 ZERO_STRUCTP(r
->out
.return_authenticator
);
10314 if (flags
& NDR_OUT
) {
10315 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10316 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10318 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10319 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10320 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10322 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10324 return NDR_ERR_SUCCESS
;
10327 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
10329 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
10331 if (flags
& NDR_SET_VALUES
) {
10332 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10334 if (flags
& NDR_IN
) {
10335 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
10337 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10339 if (r
->in
.server_name
) {
10340 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10343 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10344 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10345 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10346 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10348 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10350 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
10352 ndr_print_samr_Password(ndr
, "new_password", r
->in
.new_password
);
10356 if (flags
& NDR_OUT
) {
10357 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
10359 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10361 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10363 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10369 static enum ndr_err_code
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
10371 if (flags
& NDR_IN
) {
10372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10373 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10375 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10379 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10380 if (r
->in
.credential
== NULL
) {
10381 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10383 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10384 if (r
->in
.return_authenticator
== NULL
) {
10385 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10387 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10388 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10389 if (r
->in
.sequence_num
== NULL
) {
10390 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10392 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
10393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10395 if (flags
& NDR_OUT
) {
10396 if (r
->out
.return_authenticator
== NULL
) {
10397 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10399 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10400 if (r
->out
.sequence_num
== NULL
) {
10401 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10403 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
10404 if (r
->out
.delta_enum_array
== NULL
) {
10405 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10407 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10408 if (*r
->out
.delta_enum_array
) {
10409 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10411 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10413 return NDR_ERR_SUCCESS
;
10416 static enum ndr_err_code
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
10418 uint32_t size_logon_server_0
= 0;
10419 uint32_t length_logon_server_0
= 0;
10420 uint32_t size_computername_0
= 0;
10421 uint32_t length_computername_0
= 0;
10422 uint32_t _ptr_delta_enum_array
;
10423 TALLOC_CTX
*_mem_save_credential_0
;
10424 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10425 TALLOC_CTX
*_mem_save_sequence_num_0
;
10426 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10427 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10428 if (flags
& NDR_IN
) {
10429 ZERO_STRUCT(r
->out
);
10431 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10432 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10433 size_logon_server_0
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
10434 length_logon_server_0
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
10435 if (length_logon_server_0
> size_logon_server_0
) {
10436 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_0
, length_logon_server_0
);
10438 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_0
, sizeof(uint16_t)));
10439 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_0
, sizeof(uint16_t), CH_UTF16
));
10440 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10441 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10442 size_computername_0
= ndr_get_array_size(ndr
, &r
->in
.computername
);
10443 length_computername_0
= ndr_get_array_length(ndr
, &r
->in
.computername
);
10444 if (length_computername_0
> size_computername_0
) {
10445 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computername_0
, length_computername_0
);
10447 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computername_0
, sizeof(uint16_t)));
10448 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, length_computername_0
, sizeof(uint16_t), CH_UTF16
));
10449 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10450 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10452 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10453 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10454 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10456 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10457 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10459 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10460 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10461 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10463 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10464 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10465 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
10467 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10468 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10469 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
10470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10471 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10472 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10473 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10474 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10475 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
10476 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10477 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10479 if (flags
& NDR_OUT
) {
10480 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10481 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10483 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10484 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10485 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10486 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10487 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10488 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10490 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10491 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10492 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
10493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10494 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10495 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10497 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10498 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10499 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10500 if (_ptr_delta_enum_array
) {
10501 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10503 *r
->out
.delta_enum_array
= NULL
;
10505 if (*r
->out
.delta_enum_array
) {
10506 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10507 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10508 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10512 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10514 return NDR_ERR_SUCCESS
;
10517 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
10519 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
10521 if (flags
& NDR_SET_VALUES
) {
10522 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10524 if (flags
& NDR_IN
) {
10525 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
10527 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10528 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10529 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10531 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10533 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10535 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10537 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10538 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
10540 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
10542 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10545 if (flags
& NDR_OUT
) {
10546 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
10548 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10550 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10552 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
10554 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
10556 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10558 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10560 if (*r
->out
.delta_enum_array
) {
10561 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10565 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10571 static enum ndr_err_code
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
10573 if (flags
& NDR_IN
) {
10574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10575 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10577 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10581 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10582 if (r
->in
.credential
== NULL
) {
10583 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10585 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10586 if (r
->in
.return_authenticator
== NULL
) {
10587 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10589 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10590 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10591 if (r
->in
.sync_context
== NULL
) {
10592 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
10595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10597 if (flags
& NDR_OUT
) {
10598 if (r
->out
.return_authenticator
== NULL
) {
10599 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10601 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10602 if (r
->out
.sync_context
== NULL
) {
10603 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
10606 if (r
->out
.delta_enum_array
== NULL
) {
10607 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10609 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10610 if (*r
->out
.delta_enum_array
) {
10611 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10613 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10615 return NDR_ERR_SUCCESS
;
10618 static enum ndr_err_code
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
10620 uint32_t size_logon_server_0
= 0;
10621 uint32_t length_logon_server_0
= 0;
10622 uint32_t size_computername_0
= 0;
10623 uint32_t length_computername_0
= 0;
10624 uint32_t _ptr_delta_enum_array
;
10625 TALLOC_CTX
*_mem_save_credential_0
;
10626 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10627 TALLOC_CTX
*_mem_save_sync_context_0
;
10628 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10629 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10630 if (flags
& NDR_IN
) {
10631 ZERO_STRUCT(r
->out
);
10633 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10634 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10635 size_logon_server_0
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
10636 length_logon_server_0
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
10637 if (length_logon_server_0
> size_logon_server_0
) {
10638 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_0
, length_logon_server_0
);
10640 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_0
, sizeof(uint16_t)));
10641 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_0
, sizeof(uint16_t), CH_UTF16
));
10642 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10643 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10644 size_computername_0
= ndr_get_array_size(ndr
, &r
->in
.computername
);
10645 length_computername_0
= ndr_get_array_length(ndr
, &r
->in
.computername
);
10646 if (length_computername_0
> size_computername_0
) {
10647 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computername_0
, length_computername_0
);
10649 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computername_0
, sizeof(uint16_t)));
10650 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, length_computername_0
, sizeof(uint16_t), CH_UTF16
));
10651 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10652 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10654 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10655 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10656 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10658 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10659 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10661 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10662 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10663 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10665 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10666 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10667 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
10669 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10670 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10671 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
10672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10673 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10674 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10675 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10676 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10677 *r
->out
.sync_context
= *r
->in
.sync_context
;
10678 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10679 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10681 if (flags
& NDR_OUT
) {
10682 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10683 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10685 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10686 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10687 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10689 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10690 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10692 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10693 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10694 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
10695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10696 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10697 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10699 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10700 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10702 if (_ptr_delta_enum_array
) {
10703 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10705 *r
->out
.delta_enum_array
= NULL
;
10707 if (*r
->out
.delta_enum_array
) {
10708 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10709 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10710 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10714 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10716 return NDR_ERR_SUCCESS
;
10719 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
10721 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
10723 if (flags
& NDR_SET_VALUES
) {
10724 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10726 if (flags
& NDR_IN
) {
10727 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
10729 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10730 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10731 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10733 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10735 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10737 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10739 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10740 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
10742 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
10744 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10747 if (flags
& NDR_OUT
) {
10748 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
10750 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10752 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10754 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
10756 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
10758 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10760 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10762 if (*r
->out
.delta_enum_array
) {
10763 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10767 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10773 static enum ndr_err_code
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
10775 if (flags
& NDR_IN
) {
10776 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10777 if (r
->in
.logon_server
) {
10778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10781 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10786 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10787 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10788 if (r
->in
.return_authenticator
== NULL
) {
10789 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10791 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10792 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
10794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
10797 if (flags
& NDR_OUT
) {
10798 if (r
->out
.return_authenticator
== NULL
) {
10799 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10801 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10802 if (r
->out
.buffer
== NULL
) {
10803 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10806 struct ndr_push
*_ndr_buffer
;
10807 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10808 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10809 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10811 if (r
->out
.count_returned
== NULL
) {
10812 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
10815 if (r
->out
.total_entries
== NULL
) {
10816 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
10819 if (r
->out
.recordid
== NULL
) {
10820 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10822 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10823 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10825 return NDR_ERR_SUCCESS
;
10828 static enum ndr_err_code
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
10830 uint32_t _ptr_logon_server
;
10831 uint32_t size_logon_server_1
= 0;
10832 uint32_t length_logon_server_1
= 0;
10833 uint32_t size_computername_0
= 0;
10834 uint32_t length_computername_0
= 0;
10835 TALLOC_CTX
*_mem_save_logon_server_0
;
10836 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10837 TALLOC_CTX
*_mem_save_buffer_0
;
10838 TALLOC_CTX
*_mem_save_count_returned_0
;
10839 TALLOC_CTX
*_mem_save_total_entries_0
;
10840 TALLOC_CTX
*_mem_save_recordid_0
;
10841 if (flags
& NDR_IN
) {
10842 ZERO_STRUCT(r
->out
);
10844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10845 if (_ptr_logon_server
) {
10846 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10848 r
->in
.logon_server
= NULL
;
10850 if (r
->in
.logon_server
) {
10851 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10852 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10855 size_logon_server_1
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
10856 length_logon_server_1
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
10857 if (length_logon_server_1
> size_logon_server_1
) {
10858 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_1
, length_logon_server_1
);
10860 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_1
, sizeof(uint16_t)));
10861 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_1
, sizeof(uint16_t), CH_UTF16
));
10862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10864 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10865 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10866 size_computername_0
= ndr_get_array_size(ndr
, &r
->in
.computername
);
10867 length_computername_0
= ndr_get_array_length(ndr
, &r
->in
.computername
);
10868 if (length_computername_0
> size_computername_0
) {
10869 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computername_0
, length_computername_0
);
10871 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computername_0
, sizeof(uint16_t)));
10872 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, length_computername_0
, sizeof(uint16_t), CH_UTF16
));
10873 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10874 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10875 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10877 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10878 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10879 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10880 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10881 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10882 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
10883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10884 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
10885 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10886 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10887 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10888 ZERO_STRUCTP(r
->out
.buffer
);
10889 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10890 ZERO_STRUCTP(r
->out
.count_returned
);
10891 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10892 ZERO_STRUCTP(r
->out
.total_entries
);
10893 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10894 ZERO_STRUCTP(r
->out
.recordid
);
10896 if (flags
& NDR_OUT
) {
10897 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10898 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10900 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10901 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10902 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10903 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10904 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10905 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10907 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10908 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
10910 struct ndr_pull
*_ndr_buffer
;
10911 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10912 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10913 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10915 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
10916 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10917 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10919 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10920 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
10921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
10922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
10923 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10924 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10926 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10927 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
10928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
10929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
10930 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10931 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10933 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10934 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
10935 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
10937 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10939 return NDR_ERR_SUCCESS
;
10942 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
10944 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
10946 if (flags
& NDR_SET_VALUES
) {
10947 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10949 if (flags
& NDR_IN
) {
10950 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
10952 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10954 if (r
->in
.logon_server
) {
10955 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10958 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10959 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
10960 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10962 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10964 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
10965 ndr_print_uint32(ndr
, "count", r
->in
.count
);
10966 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10967 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
10970 if (flags
& NDR_OUT
) {
10971 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
10973 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10975 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10977 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
10979 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
10981 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
10983 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
10985 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
10987 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
10989 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
10991 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
10993 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10999 static enum ndr_err_code
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
11001 if (flags
& NDR_IN
) {
11002 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11003 if (r
->in
.logon_server
) {
11004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11006 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11007 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11012 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11013 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11014 if (r
->in
.return_authenticator
== NULL
) {
11015 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11017 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
11019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
11021 if (r
->in
.recordid
== NULL
) {
11022 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11024 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11026 if (flags
& NDR_OUT
) {
11027 if (r
->out
.return_authenticator
== NULL
) {
11028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11030 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11031 if (r
->out
.buffer
== NULL
) {
11032 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11035 struct ndr_push
*_ndr_buffer
;
11036 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11037 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11038 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11040 if (r
->out
.count_returned
== NULL
) {
11041 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
11044 if (r
->out
.total_entries
== NULL
) {
11045 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
11048 if (r
->out
.next_reference
== NULL
) {
11049 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
11052 if (r
->out
.recordid
== NULL
) {
11053 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11055 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11056 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11058 return NDR_ERR_SUCCESS
;
11061 static enum ndr_err_code
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
11063 uint32_t _ptr_logon_server
;
11064 uint32_t size_logon_server_1
= 0;
11065 uint32_t length_logon_server_1
= 0;
11066 uint32_t size_computername_0
= 0;
11067 uint32_t length_computername_0
= 0;
11068 TALLOC_CTX
*_mem_save_logon_server_0
;
11069 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11070 TALLOC_CTX
*_mem_save_buffer_0
;
11071 TALLOC_CTX
*_mem_save_count_returned_0
;
11072 TALLOC_CTX
*_mem_save_total_entries_0
;
11073 TALLOC_CTX
*_mem_save_next_reference_0
;
11074 TALLOC_CTX
*_mem_save_recordid_0
;
11075 if (flags
& NDR_IN
) {
11076 ZERO_STRUCT(r
->out
);
11078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11079 if (_ptr_logon_server
) {
11080 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11082 r
->in
.logon_server
= NULL
;
11084 if (r
->in
.logon_server
) {
11085 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11086 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11087 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11088 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11089 size_logon_server_1
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
11090 length_logon_server_1
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
11091 if (length_logon_server_1
> size_logon_server_1
) {
11092 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_1
, length_logon_server_1
);
11094 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_1
, sizeof(uint16_t)));
11095 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_1
, sizeof(uint16_t), CH_UTF16
));
11096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11098 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
11099 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
11100 size_computername_0
= ndr_get_array_size(ndr
, &r
->in
.computername
);
11101 length_computername_0
= ndr_get_array_length(ndr
, &r
->in
.computername
);
11102 if (length_computername_0
> size_computername_0
) {
11103 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computername_0
, length_computername_0
);
11105 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computername_0
, sizeof(uint16_t)));
11106 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, length_computername_0
, sizeof(uint16_t), CH_UTF16
));
11107 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11108 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11109 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11111 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11112 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11113 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
11116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11117 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
11118 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11119 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
11121 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11122 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11123 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11124 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11125 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11126 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11127 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11128 ZERO_STRUCTP(r
->out
.buffer
);
11129 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11130 ZERO_STRUCTP(r
->out
.count_returned
);
11131 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11132 ZERO_STRUCTP(r
->out
.total_entries
);
11133 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11134 ZERO_STRUCTP(r
->out
.next_reference
);
11135 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11136 *r
->out
.recordid
= *r
->in
.recordid
;
11138 if (flags
& NDR_OUT
) {
11139 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11140 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11142 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11143 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11144 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11146 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11147 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11149 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11150 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
11152 struct ndr_pull
*_ndr_buffer
;
11153 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11154 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11155 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
11158 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11159 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11161 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11162 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
11163 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
11164 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
11165 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11166 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11168 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11169 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
11170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
11171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
11172 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11173 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11175 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11176 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
11177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
11178 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
11179 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11180 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11182 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11183 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11184 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11186 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11188 return NDR_ERR_SUCCESS
;
11191 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
11193 ndr_print_struct(ndr
, name
, "netr_AccountSync");
11195 if (flags
& NDR_SET_VALUES
) {
11196 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11198 if (flags
& NDR_IN
) {
11199 ndr_print_struct(ndr
, "in", "netr_AccountSync");
11201 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11203 if (r
->in
.logon_server
) {
11204 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11207 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11208 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11209 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11211 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11213 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
11214 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11215 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11216 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
11218 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
11222 if (flags
& NDR_OUT
) {
11223 ndr_print_struct(ndr
, "out", "netr_AccountSync");
11225 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11227 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11229 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11231 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11233 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11235 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11237 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11239 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11241 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
11243 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
11245 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11247 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11249 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11255 static enum ndr_err_code
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
11257 if (flags
& NDR_IN
) {
11258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11261 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11262 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11263 if (r
->in
.domainname
) {
11264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11267 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11270 if (flags
& NDR_OUT
) {
11271 if (r
->out
.dcname
== NULL
) {
11272 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11274 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11275 if (*r
->out
.dcname
) {
11276 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11277 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11279 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11281 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11283 return NDR_ERR_SUCCESS
;
11286 static enum ndr_err_code
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
11288 uint32_t size_logon_server_0
= 0;
11289 uint32_t length_logon_server_0
= 0;
11290 uint32_t _ptr_domainname
;
11291 uint32_t size_domainname_1
= 0;
11292 uint32_t length_domainname_1
= 0;
11293 uint32_t _ptr_dcname
;
11294 uint32_t size_dcname_2
= 0;
11295 uint32_t length_dcname_2
= 0;
11296 TALLOC_CTX
*_mem_save_domainname_0
;
11297 TALLOC_CTX
*_mem_save_dcname_0
;
11298 TALLOC_CTX
*_mem_save_dcname_1
;
11299 if (flags
& NDR_IN
) {
11300 ZERO_STRUCT(r
->out
);
11302 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11303 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11304 size_logon_server_0
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
11305 length_logon_server_0
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
11306 if (length_logon_server_0
> size_logon_server_0
) {
11307 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_0
, length_logon_server_0
);
11309 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_0
, sizeof(uint16_t)));
11310 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_0
, sizeof(uint16_t), CH_UTF16
));
11311 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11312 if (_ptr_domainname
) {
11313 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11315 r
->in
.domainname
= NULL
;
11317 if (r
->in
.domainname
) {
11318 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11319 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11320 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11321 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11322 size_domainname_1
= ndr_get_array_size(ndr
, &r
->in
.domainname
);
11323 length_domainname_1
= ndr_get_array_length(ndr
, &r
->in
.domainname
);
11324 if (length_domainname_1
> size_domainname_1
) {
11325 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domainname_1
, length_domainname_1
);
11327 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domainname_1
, sizeof(uint16_t)));
11328 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, length_domainname_1
, sizeof(uint16_t), CH_UTF16
));
11329 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11331 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11332 ZERO_STRUCTP(r
->out
.dcname
);
11334 if (flags
& NDR_OUT
) {
11335 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11336 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11338 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11339 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11340 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11342 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11344 *r
->out
.dcname
= NULL
;
11346 if (*r
->out
.dcname
) {
11347 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11348 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11349 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11350 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11351 size_dcname_2
= ndr_get_array_size(ndr
, r
->out
.dcname
);
11352 length_dcname_2
= ndr_get_array_length(ndr
, r
->out
.dcname
);
11353 if (length_dcname_2
> size_dcname_2
) {
11354 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_dcname_2
, length_dcname_2
);
11356 NDR_CHECK(ndr_check_string_terminator(ndr
, length_dcname_2
, sizeof(uint16_t)));
11357 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, length_dcname_2
, sizeof(uint16_t), CH_UTF16
));
11358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11361 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11363 return NDR_ERR_SUCCESS
;
11366 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
11368 ndr_print_struct(ndr
, name
, "netr_GetDcName");
11370 if (flags
& NDR_SET_VALUES
) {
11371 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11373 if (flags
& NDR_IN
) {
11374 ndr_print_struct(ndr
, "in", "netr_GetDcName");
11376 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11377 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11379 if (r
->in
.domainname
) {
11380 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11385 if (flags
& NDR_OUT
) {
11386 ndr_print_struct(ndr
, "out", "netr_GetDcName");
11388 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11390 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11392 if (*r
->out
.dcname
) {
11393 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11397 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11403 static enum ndr_err_code
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
11405 if (flags
& NDR_IN
) {
11406 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11407 if (r
->in
.logon_server
) {
11408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11411 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11413 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11416 if (flags
& NDR_OUT
) {
11417 if (r
->out
.info
== NULL
) {
11418 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11420 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
11421 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
11422 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11424 return NDR_ERR_SUCCESS
;
11427 static enum ndr_err_code
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
11429 uint32_t _ptr_logon_server
;
11430 uint32_t size_logon_server_1
= 0;
11431 uint32_t length_logon_server_1
= 0;
11432 TALLOC_CTX
*_mem_save_logon_server_0
;
11433 TALLOC_CTX
*_mem_save_info_0
;
11434 if (flags
& NDR_IN
) {
11435 ZERO_STRUCT(r
->out
);
11437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11438 if (_ptr_logon_server
) {
11439 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11441 r
->in
.logon_server
= NULL
;
11443 if (r
->in
.logon_server
) {
11444 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11445 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11446 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11447 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11448 size_logon_server_1
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
11449 length_logon_server_1
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
11450 if (length_logon_server_1
> size_logon_server_1
) {
11451 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_1
, length_logon_server_1
);
11453 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_1
, sizeof(uint16_t)));
11454 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_1
, sizeof(uint16_t), CH_UTF16
));
11455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11457 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11458 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11459 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11460 ZERO_STRUCTP(r
->out
.info
);
11462 if (flags
& NDR_OUT
) {
11463 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11464 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11466 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11467 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
11468 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
11469 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
11470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
11471 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11473 return NDR_ERR_SUCCESS
;
11476 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
11478 ndr_print_struct(ndr
, name
, "netr_LogonControl");
11480 if (flags
& NDR_SET_VALUES
) {
11481 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11483 if (flags
& NDR_IN
) {
11484 ndr_print_struct(ndr
, "in", "netr_LogonControl");
11486 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11488 if (r
->in
.logon_server
) {
11489 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11492 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11493 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11496 if (flags
& NDR_OUT
) {
11497 ndr_print_struct(ndr
, "out", "netr_LogonControl");
11499 ndr_print_ptr(ndr
, "info", r
->out
.info
);
11501 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
11502 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "info", r
->out
.info
);
11504 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11510 static enum ndr_err_code
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
11512 if (flags
& NDR_IN
) {
11513 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11514 if (r
->in
.logon_server
) {
11515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11518 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11521 if (r
->in
.domainname
) {
11522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11525 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11528 if (flags
& NDR_OUT
) {
11529 if (r
->out
.dcname
== NULL
) {
11530 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11532 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11533 if (*r
->out
.dcname
) {
11534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11537 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11539 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11541 return NDR_ERR_SUCCESS
;
11544 static enum ndr_err_code
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
11546 uint32_t _ptr_logon_server
;
11547 uint32_t size_logon_server_1
= 0;
11548 uint32_t length_logon_server_1
= 0;
11549 uint32_t _ptr_domainname
;
11550 uint32_t size_domainname_1
= 0;
11551 uint32_t length_domainname_1
= 0;
11552 uint32_t _ptr_dcname
;
11553 uint32_t size_dcname_2
= 0;
11554 uint32_t length_dcname_2
= 0;
11555 TALLOC_CTX
*_mem_save_logon_server_0
;
11556 TALLOC_CTX
*_mem_save_domainname_0
;
11557 TALLOC_CTX
*_mem_save_dcname_0
;
11558 TALLOC_CTX
*_mem_save_dcname_1
;
11559 if (flags
& NDR_IN
) {
11560 ZERO_STRUCT(r
->out
);
11562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11563 if (_ptr_logon_server
) {
11564 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11566 r
->in
.logon_server
= NULL
;
11568 if (r
->in
.logon_server
) {
11569 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11570 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11571 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11572 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11573 size_logon_server_1
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
11574 length_logon_server_1
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
11575 if (length_logon_server_1
> size_logon_server_1
) {
11576 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_1
, length_logon_server_1
);
11578 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_1
, sizeof(uint16_t)));
11579 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_1
, sizeof(uint16_t), CH_UTF16
));
11580 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11582 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11583 if (_ptr_domainname
) {
11584 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11586 r
->in
.domainname
= NULL
;
11588 if (r
->in
.domainname
) {
11589 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11590 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11591 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11592 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11593 size_domainname_1
= ndr_get_array_size(ndr
, &r
->in
.domainname
);
11594 length_domainname_1
= ndr_get_array_length(ndr
, &r
->in
.domainname
);
11595 if (length_domainname_1
> size_domainname_1
) {
11596 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domainname_1
, length_domainname_1
);
11598 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domainname_1
, sizeof(uint16_t)));
11599 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, length_domainname_1
, sizeof(uint16_t), CH_UTF16
));
11600 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11602 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11603 ZERO_STRUCTP(r
->out
.dcname
);
11605 if (flags
& NDR_OUT
) {
11606 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11607 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11609 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11610 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11611 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11613 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11615 *r
->out
.dcname
= NULL
;
11617 if (*r
->out
.dcname
) {
11618 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11619 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11620 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11621 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11622 size_dcname_2
= ndr_get_array_size(ndr
, r
->out
.dcname
);
11623 length_dcname_2
= ndr_get_array_length(ndr
, r
->out
.dcname
);
11624 if (length_dcname_2
> size_dcname_2
) {
11625 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_dcname_2
, length_dcname_2
);
11627 NDR_CHECK(ndr_check_string_terminator(ndr
, length_dcname_2
, sizeof(uint16_t)));
11628 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, length_dcname_2
, sizeof(uint16_t), CH_UTF16
));
11629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11631 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11632 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11634 return NDR_ERR_SUCCESS
;
11637 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
11639 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
11641 if (flags
& NDR_SET_VALUES
) {
11642 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11644 if (flags
& NDR_IN
) {
11645 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
11647 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11649 if (r
->in
.logon_server
) {
11650 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11653 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11655 if (r
->in
.domainname
) {
11656 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11661 if (flags
& NDR_OUT
) {
11662 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
11664 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11666 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11668 if (*r
->out
.dcname
) {
11669 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11673 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11679 static enum ndr_err_code
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
11681 if (flags
& NDR_IN
) {
11682 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11683 if (r
->in
.logon_server
) {
11684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11687 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11689 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11691 if (r
->in
.data
== NULL
) {
11692 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11694 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11695 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11697 if (flags
& NDR_OUT
) {
11698 if (r
->out
.query
== NULL
) {
11699 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11701 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11702 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11703 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11705 return NDR_ERR_SUCCESS
;
11708 static enum ndr_err_code
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
11710 uint32_t _ptr_logon_server
;
11711 uint32_t size_logon_server_1
= 0;
11712 uint32_t length_logon_server_1
= 0;
11713 TALLOC_CTX
*_mem_save_logon_server_0
;
11714 TALLOC_CTX
*_mem_save_data_0
;
11715 TALLOC_CTX
*_mem_save_query_0
;
11716 if (flags
& NDR_IN
) {
11717 ZERO_STRUCT(r
->out
);
11719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11720 if (_ptr_logon_server
) {
11721 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11723 r
->in
.logon_server
= NULL
;
11725 if (r
->in
.logon_server
) {
11726 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11727 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11728 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11729 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11730 size_logon_server_1
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
11731 length_logon_server_1
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
11732 if (length_logon_server_1
> size_logon_server_1
) {
11733 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_1
, length_logon_server_1
);
11735 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_1
, sizeof(uint16_t)));
11736 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_1
, sizeof(uint16_t), CH_UTF16
));
11737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11739 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11740 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11741 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11742 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
11744 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11745 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
11746 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11747 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
11749 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11750 ZERO_STRUCTP(r
->out
.query
);
11752 if (flags
& NDR_OUT
) {
11753 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11754 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11756 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11757 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11758 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11759 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11761 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11763 return NDR_ERR_SUCCESS
;
11766 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
11768 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
11770 if (flags
& NDR_SET_VALUES
) {
11771 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11773 if (flags
& NDR_IN
) {
11774 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
11776 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11778 if (r
->in
.logon_server
) {
11779 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11782 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11783 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11784 ndr_print_ptr(ndr
, "data", r
->in
.data
);
11786 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
11787 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
11791 if (flags
& NDR_OUT
) {
11792 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
11794 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11796 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11797 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11799 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11805 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11807 if (flags
& NDR_IN
) {
11808 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11809 if (r
->in
.server_name
) {
11810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11813 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11818 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11819 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11823 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11824 if (r
->in
.credentials
== NULL
) {
11825 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11827 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11828 if (r
->in
.negotiate_flags
== NULL
) {
11829 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11831 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
11833 if (flags
& NDR_OUT
) {
11834 if (r
->out
.return_credentials
== NULL
) {
11835 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11837 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11838 if (r
->out
.negotiate_flags
== NULL
) {
11839 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11841 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
11842 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11844 return NDR_ERR_SUCCESS
;
11847 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
11849 uint32_t _ptr_server_name
;
11850 uint32_t size_server_name_1
= 0;
11851 uint32_t length_server_name_1
= 0;
11852 uint32_t size_account_name_0
= 0;
11853 uint32_t length_account_name_0
= 0;
11854 uint32_t size_computer_name_0
= 0;
11855 uint32_t length_computer_name_0
= 0;
11856 TALLOC_CTX
*_mem_save_server_name_0
;
11857 TALLOC_CTX
*_mem_save_credentials_0
;
11858 TALLOC_CTX
*_mem_save_return_credentials_0
;
11859 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
11860 if (flags
& NDR_IN
) {
11861 ZERO_STRUCT(r
->out
);
11863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11864 if (_ptr_server_name
) {
11865 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11867 r
->in
.server_name
= NULL
;
11869 if (r
->in
.server_name
) {
11870 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11871 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11872 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11873 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11874 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
11875 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
11876 if (length_server_name_1
> size_server_name_1
) {
11877 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
11879 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
11880 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
11881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
11884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
11885 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
11886 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
11887 if (length_account_name_0
> size_account_name_0
) {
11888 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
11890 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
11891 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
11892 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
11893 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11894 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11895 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
11896 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
11897 if (length_computer_name_0
> size_computer_name_0
) {
11898 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
11900 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
11901 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
11902 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11903 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
11905 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11906 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
11907 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11909 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11910 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
11912 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11913 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11914 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
11915 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11916 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11917 ZERO_STRUCTP(r
->out
.return_credentials
);
11918 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11919 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
11921 if (flags
& NDR_OUT
) {
11922 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11923 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11925 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11926 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
11927 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11929 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11930 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11932 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11933 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11934 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
11935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11936 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11938 return NDR_ERR_SUCCESS
;
11941 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11943 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
11945 if (flags
& NDR_SET_VALUES
) {
11946 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11948 if (flags
& NDR_IN
) {
11949 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
11951 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11953 if (r
->in
.server_name
) {
11954 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11957 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
11958 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
11959 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11960 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
11962 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
11964 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
11966 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
11970 if (flags
& NDR_OUT
) {
11971 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
11973 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
11975 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
11977 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
11979 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
11981 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11987 static enum ndr_err_code
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
11989 if (flags
& NDR_IN
) {
11990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11994 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11997 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11998 if (r
->in
.credential
== NULL
) {
11999 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12001 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12002 if (r
->in
.return_authenticator
== NULL
) {
12003 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12005 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12006 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
12007 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
12008 if (r
->in
.sync_context
== NULL
) {
12009 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
12012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
12014 if (flags
& NDR_OUT
) {
12015 if (r
->out
.return_authenticator
== NULL
) {
12016 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12018 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12019 if (r
->out
.sync_context
== NULL
) {
12020 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
12023 if (r
->out
.delta_enum_array
== NULL
) {
12024 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12026 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12027 if (*r
->out
.delta_enum_array
) {
12028 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12030 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12032 return NDR_ERR_SUCCESS
;
12035 static enum ndr_err_code
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
12037 uint32_t size_logon_server_0
= 0;
12038 uint32_t length_logon_server_0
= 0;
12039 uint32_t size_computername_0
= 0;
12040 uint32_t length_computername_0
= 0;
12041 uint32_t _ptr_delta_enum_array
;
12042 TALLOC_CTX
*_mem_save_credential_0
;
12043 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12044 TALLOC_CTX
*_mem_save_sync_context_0
;
12045 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12046 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12047 if (flags
& NDR_IN
) {
12048 ZERO_STRUCT(r
->out
);
12050 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12051 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12052 size_logon_server_0
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
12053 length_logon_server_0
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
12054 if (length_logon_server_0
> size_logon_server_0
) {
12055 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_0
, length_logon_server_0
);
12057 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_0
, sizeof(uint16_t)));
12058 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_0
, sizeof(uint16_t), CH_UTF16
));
12059 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12060 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12061 size_computername_0
= ndr_get_array_size(ndr
, &r
->in
.computername
);
12062 length_computername_0
= ndr_get_array_length(ndr
, &r
->in
.computername
);
12063 if (length_computername_0
> size_computername_0
) {
12064 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computername_0
, length_computername_0
);
12066 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computername_0
, sizeof(uint16_t)));
12067 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, length_computername_0
, sizeof(uint16_t), CH_UTF16
));
12068 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12069 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12071 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12072 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12073 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12075 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12076 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12078 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12079 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12080 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12082 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
12083 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
12084 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12085 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
12087 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12088 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12089 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
12090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12091 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
12092 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12093 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12094 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12095 *r
->out
.sync_context
= *r
->in
.sync_context
;
12096 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12097 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12099 if (flags
& NDR_OUT
) {
12100 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12101 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12103 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12104 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12105 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12107 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12108 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12110 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12111 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12112 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
12113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12114 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12115 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12117 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12118 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12120 if (_ptr_delta_enum_array
) {
12121 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12123 *r
->out
.delta_enum_array
= NULL
;
12125 if (*r
->out
.delta_enum_array
) {
12126 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12127 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12128 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12132 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12134 return NDR_ERR_SUCCESS
;
12137 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
12139 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
12141 if (flags
& NDR_SET_VALUES
) {
12142 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12144 if (flags
& NDR_IN
) {
12145 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
12147 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12148 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12149 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12151 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12153 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12155 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12157 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
12158 ndr_print_uint16(ndr
, "restart_state", r
->in
.restart_state
);
12159 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
12161 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
12163 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
12166 if (flags
& NDR_OUT
) {
12167 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
12169 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12171 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12173 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
12175 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
12177 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12179 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12181 if (*r
->out
.delta_enum_array
) {
12182 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12186 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12192 static enum ndr_err_code
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
12194 if (flags
& NDR_IN
) {
12195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12197 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12198 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12202 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12203 if (r
->in
.credential
== NULL
) {
12204 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12206 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12207 if (r
->in
.return_authenticator
== NULL
) {
12208 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12210 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12212 struct ndr_push
*_ndr_change_log_entry
;
12213 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12214 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12215 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_change_log_entry
, 4, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12219 if (flags
& NDR_OUT
) {
12220 if (r
->out
.return_authenticator
== NULL
) {
12221 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12223 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12224 if (r
->out
.delta_enum_array
== NULL
) {
12225 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12227 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12228 if (*r
->out
.delta_enum_array
) {
12229 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12231 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12233 return NDR_ERR_SUCCESS
;
12236 static enum ndr_err_code
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
12238 uint32_t size_logon_server_0
= 0;
12239 uint32_t length_logon_server_0
= 0;
12240 uint32_t size_computername_0
= 0;
12241 uint32_t length_computername_0
= 0;
12242 uint32_t _ptr_delta_enum_array
;
12243 TALLOC_CTX
*_mem_save_credential_0
;
12244 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12245 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12246 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12247 if (flags
& NDR_IN
) {
12248 ZERO_STRUCT(r
->out
);
12250 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12251 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12252 size_logon_server_0
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
12253 length_logon_server_0
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
12254 if (length_logon_server_0
> size_logon_server_0
) {
12255 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_0
, length_logon_server_0
);
12257 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_0
, sizeof(uint16_t)));
12258 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_0
, sizeof(uint16_t), CH_UTF16
));
12259 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12260 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12261 size_computername_0
= ndr_get_array_size(ndr
, &r
->in
.computername
);
12262 length_computername_0
= ndr_get_array_length(ndr
, &r
->in
.computername
);
12263 if (length_computername_0
> size_computername_0
) {
12264 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computername_0
, length_computername_0
);
12266 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computername_0
, sizeof(uint16_t)));
12267 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, length_computername_0
, sizeof(uint16_t), CH_UTF16
));
12268 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12269 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12271 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12272 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12273 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12275 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12276 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12278 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12279 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12280 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12283 struct ndr_pull
*_ndr_change_log_entry
;
12284 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12285 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12286 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12288 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
12289 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12290 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12291 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12292 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12294 if (flags
& NDR_OUT
) {
12295 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12296 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12298 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12299 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12300 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12302 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12303 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12305 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12306 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12307 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12308 if (_ptr_delta_enum_array
) {
12309 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12311 *r
->out
.delta_enum_array
= NULL
;
12313 if (*r
->out
.delta_enum_array
) {
12314 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12315 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12316 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12320 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12322 return NDR_ERR_SUCCESS
;
12325 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
12327 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
12329 if (flags
& NDR_SET_VALUES
) {
12330 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12332 if (flags
& NDR_IN
) {
12333 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
12335 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12336 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12337 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12339 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12341 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12343 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12345 ndr_print_netr_ChangeLogEntry(ndr
, "change_log_entry", &r
->in
.change_log_entry
);
12346 ndr_print_uint32(ndr
, "change_log_entry_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
):r
->in
.change_log_entry_size
);
12349 if (flags
& NDR_OUT
) {
12350 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
12352 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12354 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12356 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12358 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12360 if (*r
->out
.delta_enum_array
) {
12361 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12365 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12371 static enum ndr_err_code
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
12373 if (flags
& NDR_IN
) {
12374 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
12375 if (r
->in
.logon_server
) {
12376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12379 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12381 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
12382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
12383 if (r
->in
.data
== NULL
) {
12384 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12386 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12387 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12389 if (flags
& NDR_OUT
) {
12390 if (r
->out
.query
== NULL
) {
12391 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12393 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12394 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12395 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12397 return NDR_ERR_SUCCESS
;
12400 static enum ndr_err_code
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
12402 uint32_t _ptr_logon_server
;
12403 uint32_t size_logon_server_1
= 0;
12404 uint32_t length_logon_server_1
= 0;
12405 TALLOC_CTX
*_mem_save_logon_server_0
;
12406 TALLOC_CTX
*_mem_save_data_0
;
12407 TALLOC_CTX
*_mem_save_query_0
;
12408 if (flags
& NDR_IN
) {
12409 ZERO_STRUCT(r
->out
);
12411 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
12412 if (_ptr_logon_server
) {
12413 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
12415 r
->in
.logon_server
= NULL
;
12417 if (r
->in
.logon_server
) {
12418 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12419 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
12420 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12421 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12422 size_logon_server_1
= ndr_get_array_size(ndr
, &r
->in
.logon_server
);
12423 length_logon_server_1
= ndr_get_array_length(ndr
, &r
->in
.logon_server
);
12424 if (length_logon_server_1
> size_logon_server_1
) {
12425 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_logon_server_1
, length_logon_server_1
);
12427 NDR_CHECK(ndr_check_string_terminator(ndr
, length_logon_server_1
, sizeof(uint16_t)));
12428 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, length_logon_server_1
, sizeof(uint16_t), CH_UTF16
));
12429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
12431 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
12432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
12433 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12434 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
12436 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12437 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
12438 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12439 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12440 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
12441 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12442 ZERO_STRUCTP(r
->out
.query
);
12444 if (flags
& NDR_OUT
) {
12445 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12446 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12448 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12449 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
12450 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12451 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
12453 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12455 return NDR_ERR_SUCCESS
;
12458 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
12460 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
12462 if (flags
& NDR_SET_VALUES
) {
12463 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12465 if (flags
& NDR_IN
) {
12466 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
12468 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12470 if (r
->in
.logon_server
) {
12471 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12474 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
12475 ndr_print_uint32(ndr
, "level", r
->in
.level
);
12476 ndr_print_ptr(ndr
, "data", r
->in
.data
);
12478 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
12479 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
12483 if (flags
& NDR_OUT
) {
12484 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
12486 ndr_print_ptr(ndr
, "query", r
->out
.query
);
12488 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
12489 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
12491 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12497 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12499 if (flags
& NDR_IN
) {
12500 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12501 if (r
->in
.server_name
) {
12502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12505 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12508 if (flags
& NDR_OUT
) {
12509 if (r
->out
.trusted_domains_blob
== NULL
) {
12510 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12512 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12513 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12515 return NDR_ERR_SUCCESS
;
12518 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomains
*r
)
12520 uint32_t _ptr_server_name
;
12521 uint32_t size_server_name_1
= 0;
12522 uint32_t length_server_name_1
= 0;
12523 TALLOC_CTX
*_mem_save_server_name_0
;
12524 TALLOC_CTX
*_mem_save_trusted_domains_blob_0
;
12525 if (flags
& NDR_IN
) {
12526 ZERO_STRUCT(r
->out
);
12528 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12529 if (_ptr_server_name
) {
12530 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12532 r
->in
.server_name
= NULL
;
12534 if (r
->in
.server_name
) {
12535 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12536 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12537 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12538 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12539 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
12540 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
12541 if (length_server_name_1
> size_server_name_1
) {
12542 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
12544 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
12545 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
12546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12548 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12549 ZERO_STRUCTP(r
->out
.trusted_domains_blob
);
12551 if (flags
& NDR_OUT
) {
12552 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12553 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12555 _mem_save_trusted_domains_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12556 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusted_domains_blob
, LIBNDR_FLAG_REF_ALLOC
);
12557 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_blob_0
, LIBNDR_FLAG_REF_ALLOC
);
12559 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12561 return NDR_ERR_SUCCESS
;
12564 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12566 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomains");
12568 if (flags
& NDR_SET_VALUES
) {
12569 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12571 if (flags
& NDR_IN
) {
12572 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomains");
12574 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12576 if (r
->in
.server_name
) {
12577 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12582 if (flags
& NDR_OUT
) {
12583 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomains");
12585 ndr_print_ptr(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12587 ndr_print_netr_Blob(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12589 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12595 static enum ndr_err_code
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
12597 if (flags
& NDR_IN
) {
12598 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
12599 if (r
->in
.server_unc
) {
12600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12603 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_unc
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12605 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
12606 if (r
->in
.domain_name
) {
12607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12610 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain_name
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12612 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
12613 if (r
->in
.domain_guid
) {
12614 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12616 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
12617 if (r
->in
.site_guid
) {
12618 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12620 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
12622 if (flags
& NDR_OUT
) {
12623 if (r
->out
.info
== NULL
) {
12624 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12626 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
12627 if (*r
->out
.info
) {
12628 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12630 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12632 return NDR_ERR_SUCCESS
;
12635 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
12637 uint32_t _ptr_server_unc
;
12638 uint32_t size_server_unc_1
= 0;
12639 uint32_t length_server_unc_1
= 0;
12640 uint32_t _ptr_domain_name
;
12641 uint32_t size_domain_name_1
= 0;
12642 uint32_t length_domain_name_1
= 0;
12643 uint32_t _ptr_domain_guid
;
12644 uint32_t _ptr_site_guid
;
12645 uint32_t _ptr_info
;
12646 TALLOC_CTX
*_mem_save_server_unc_0
;
12647 TALLOC_CTX
*_mem_save_domain_name_0
;
12648 TALLOC_CTX
*_mem_save_domain_guid_0
;
12649 TALLOC_CTX
*_mem_save_site_guid_0
;
12650 TALLOC_CTX
*_mem_save_info_0
;
12651 TALLOC_CTX
*_mem_save_info_1
;
12652 if (flags
& NDR_IN
) {
12653 ZERO_STRUCT(r
->out
);
12655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
12656 if (_ptr_server_unc
) {
12657 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
12659 r
->in
.server_unc
= NULL
;
12661 if (r
->in
.server_unc
) {
12662 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12663 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
12664 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
12665 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
12666 size_server_unc_1
= ndr_get_array_size(ndr
, &r
->in
.server_unc
);
12667 length_server_unc_1
= ndr_get_array_length(ndr
, &r
->in
.server_unc
);
12668 if (length_server_unc_1
> size_server_unc_1
) {
12669 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_unc_1
, length_server_unc_1
);
12671 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_unc_1
, sizeof(uint16_t)));
12672 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, length_server_unc_1
, sizeof(uint16_t), CH_UTF16
));
12673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
12675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
12676 if (_ptr_domain_name
) {
12677 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
12679 r
->in
.domain_name
= NULL
;
12681 if (r
->in
.domain_name
) {
12682 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12683 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
12684 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
12685 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
12686 size_domain_name_1
= ndr_get_array_size(ndr
, &r
->in
.domain_name
);
12687 length_domain_name_1
= ndr_get_array_length(ndr
, &r
->in
.domain_name
);
12688 if (length_domain_name_1
> size_domain_name_1
) {
12689 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_name_1
, length_domain_name_1
);
12691 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_name_1
, sizeof(uint16_t)));
12692 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, length_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
12693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
12695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
12696 if (_ptr_domain_guid
) {
12697 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
12699 r
->in
.domain_guid
= NULL
;
12701 if (r
->in
.domain_guid
) {
12702 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12703 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
12704 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
12707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
12708 if (_ptr_site_guid
) {
12709 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
12711 r
->in
.site_guid
= NULL
;
12713 if (r
->in
.site_guid
) {
12714 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12715 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
12716 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
12719 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
12720 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12721 ZERO_STRUCTP(r
->out
.info
);
12723 if (flags
& NDR_OUT
) {
12724 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12725 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12727 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12728 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12731 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
12733 *r
->out
.info
= NULL
;
12735 if (*r
->out
.info
) {
12736 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12737 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
12738 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12742 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12744 return NDR_ERR_SUCCESS
;
12747 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
12749 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
12751 if (flags
& NDR_SET_VALUES
) {
12752 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12754 if (flags
& NDR_IN
) {
12755 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
12757 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
12759 if (r
->in
.server_unc
) {
12760 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
12763 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
12765 if (r
->in
.domain_name
) {
12766 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
12769 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
12771 if (r
->in
.domain_guid
) {
12772 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
12775 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
12777 if (r
->in
.site_guid
) {
12778 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
12781 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
12784 if (flags
& NDR_OUT
) {
12785 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
12787 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12789 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
12791 if (*r
->out
.info
) {
12792 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
12796 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12802 static enum ndr_err_code
ndr_push_netr_LogonGetCapabilities(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12804 if (flags
& NDR_IN
) {
12805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12808 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12809 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12810 if (r
->in
.computer_name
) {
12811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12814 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12816 if (r
->in
.credential
== NULL
) {
12817 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12819 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12820 if (r
->in
.return_authenticator
== NULL
) {
12821 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12823 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.query_level
));
12826 if (flags
& NDR_OUT
) {
12827 if (r
->out
.return_authenticator
== NULL
) {
12828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12830 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12831 if (r
->out
.capabilities
== NULL
) {
12832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12834 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12835 NDR_CHECK(ndr_push_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12836 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12838 return NDR_ERR_SUCCESS
;
12841 static enum ndr_err_code
ndr_pull_netr_LogonGetCapabilities(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetCapabilities
*r
)
12843 uint32_t size_server_name_0
= 0;
12844 uint32_t length_server_name_0
= 0;
12845 uint32_t _ptr_computer_name
;
12846 uint32_t size_computer_name_1
= 0;
12847 uint32_t length_computer_name_1
= 0;
12848 TALLOC_CTX
*_mem_save_computer_name_0
;
12849 TALLOC_CTX
*_mem_save_credential_0
;
12850 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12851 TALLOC_CTX
*_mem_save_capabilities_0
;
12852 if (flags
& NDR_IN
) {
12853 ZERO_STRUCT(r
->out
);
12855 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12856 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12857 size_server_name_0
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
12858 length_server_name_0
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
12859 if (length_server_name_0
> size_server_name_0
) {
12860 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_0
, length_server_name_0
);
12862 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_0
, sizeof(uint16_t)));
12863 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_0
, sizeof(uint16_t), CH_UTF16
));
12864 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12865 if (_ptr_computer_name
) {
12866 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12868 r
->in
.computer_name
= NULL
;
12870 if (r
->in
.computer_name
) {
12871 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12872 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12873 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12874 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12875 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
12876 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
12877 if (length_computer_name_1
> size_computer_name_1
) {
12878 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
12880 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
12881 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
12882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12884 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12885 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12887 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12888 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12889 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12891 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12892 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12894 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12895 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12896 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12898 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.query_level
));
12899 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12900 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12901 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12902 ZERO_STRUCTP(r
->out
.capabilities
);
12904 if (flags
& NDR_OUT
) {
12905 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12906 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12908 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12909 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12910 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12912 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12913 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12915 _mem_save_capabilities_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12916 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.capabilities
, LIBNDR_FLAG_REF_ALLOC
);
12917 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12918 NDR_CHECK(ndr_pull_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_capabilities_0
, LIBNDR_FLAG_REF_ALLOC
);
12920 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12922 return NDR_ERR_SUCCESS
;
12925 _PUBLIC_
void ndr_print_netr_LogonGetCapabilities(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12927 ndr_print_struct(ndr
, name
, "netr_LogonGetCapabilities");
12929 if (flags
& NDR_SET_VALUES
) {
12930 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12932 if (flags
& NDR_IN
) {
12933 ndr_print_struct(ndr
, "in", "netr_LogonGetCapabilities");
12935 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12936 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12938 if (r
->in
.computer_name
) {
12939 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12942 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12944 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12946 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12948 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12950 ndr_print_uint32(ndr
, "query_level", r
->in
.query_level
);
12953 if (flags
& NDR_OUT
) {
12954 ndr_print_struct(ndr
, "out", "netr_LogonGetCapabilities");
12956 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12958 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12960 ndr_print_ptr(ndr
, "capabilities", r
->out
.capabilities
);
12962 ndr_print_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
);
12963 ndr_print_netr_Capabilities(ndr
, "capabilities", r
->out
.capabilities
);
12965 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12971 static enum ndr_err_code
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
12973 if (flags
& NDR_IN
) {
12975 if (flags
& NDR_OUT
) {
12976 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12978 return NDR_ERR_SUCCESS
;
12981 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
12983 if (flags
& NDR_IN
) {
12985 if (flags
& NDR_OUT
) {
12986 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12988 return NDR_ERR_SUCCESS
;
12991 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
12993 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
12995 if (flags
& NDR_SET_VALUES
) {
12996 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12998 if (flags
& NDR_IN
) {
12999 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
13003 if (flags
& NDR_OUT
) {
13004 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
13006 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13012 static enum ndr_err_code
ndr_push_netr_LogonGetTrustRid(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13014 if (flags
& NDR_IN
) {
13015 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13016 if (r
->in
.server_name
) {
13017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13020 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13022 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13023 if (r
->in
.domain_name
) {
13024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13027 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain_name
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13030 if (flags
& NDR_OUT
) {
13031 if (r
->out
.rid
== NULL
) {
13032 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13035 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13037 return NDR_ERR_SUCCESS
;
13040 static enum ndr_err_code
ndr_pull_netr_LogonGetTrustRid(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetTrustRid
*r
)
13042 uint32_t _ptr_server_name
;
13043 uint32_t size_server_name_1
= 0;
13044 uint32_t length_server_name_1
= 0;
13045 uint32_t _ptr_domain_name
;
13046 uint32_t size_domain_name_1
= 0;
13047 uint32_t length_domain_name_1
= 0;
13048 TALLOC_CTX
*_mem_save_server_name_0
;
13049 TALLOC_CTX
*_mem_save_domain_name_0
;
13050 TALLOC_CTX
*_mem_save_rid_0
;
13051 if (flags
& NDR_IN
) {
13052 ZERO_STRUCT(r
->out
);
13054 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13055 if (_ptr_server_name
) {
13056 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13058 r
->in
.server_name
= NULL
;
13060 if (r
->in
.server_name
) {
13061 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13062 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13063 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13064 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13065 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
13066 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
13067 if (length_server_name_1
> size_server_name_1
) {
13068 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
13070 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
13071 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
13072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13074 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13075 if (_ptr_domain_name
) {
13076 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13078 r
->in
.domain_name
= NULL
;
13080 if (r
->in
.domain_name
) {
13081 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13082 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13083 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13084 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13085 size_domain_name_1
= ndr_get_array_size(ndr
, &r
->in
.domain_name
);
13086 length_domain_name_1
= ndr_get_array_length(ndr
, &r
->in
.domain_name
);
13087 if (length_domain_name_1
> size_domain_name_1
) {
13088 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_name_1
, length_domain_name_1
);
13090 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_name_1
, sizeof(uint16_t)));
13091 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, length_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
13092 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13094 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13095 ZERO_STRUCTP(r
->out
.rid
);
13097 if (flags
& NDR_OUT
) {
13098 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13099 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13101 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13102 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13103 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13104 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13105 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13107 return NDR_ERR_SUCCESS
;
13110 _PUBLIC_
void ndr_print_netr_LogonGetTrustRid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13112 ndr_print_struct(ndr
, name
, "netr_LogonGetTrustRid");
13114 if (flags
& NDR_SET_VALUES
) {
13115 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13117 if (flags
& NDR_IN
) {
13118 ndr_print_struct(ndr
, "in", "netr_LogonGetTrustRid");
13120 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13122 if (r
->in
.server_name
) {
13123 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13126 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13128 if (r
->in
.domain_name
) {
13129 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13134 if (flags
& NDR_OUT
) {
13135 ndr_print_struct(ndr
, "out", "netr_LogonGetTrustRid");
13137 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13139 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13141 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13147 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13149 if (flags
& NDR_IN
) {
13151 if (flags
& NDR_OUT
) {
13152 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13154 return NDR_ERR_SUCCESS
;
13157 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13159 if (flags
& NDR_IN
) {
13161 if (flags
& NDR_OUT
) {
13162 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13164 return NDR_ERR_SUCCESS
;
13167 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13169 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
13171 if (flags
& NDR_SET_VALUES
) {
13172 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13174 if (flags
& NDR_IN
) {
13175 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13179 if (flags
& NDR_OUT
) {
13180 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13182 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13188 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13190 if (flags
& NDR_IN
) {
13192 if (flags
& NDR_OUT
) {
13193 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13195 return NDR_ERR_SUCCESS
;
13198 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13200 if (flags
& NDR_IN
) {
13202 if (flags
& NDR_OUT
) {
13203 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13205 return NDR_ERR_SUCCESS
;
13208 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13210 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13212 if (flags
& NDR_SET_VALUES
) {
13213 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13215 if (flags
& NDR_IN
) {
13216 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13220 if (flags
& NDR_OUT
) {
13221 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13223 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13229 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13231 if (flags
& NDR_IN
) {
13232 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13233 if (r
->in
.server_name
) {
13234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13237 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13240 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13242 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13243 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13247 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13248 if (r
->in
.credentials
== NULL
) {
13249 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13251 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13252 if (r
->in
.negotiate_flags
== NULL
) {
13253 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13255 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
13257 if (flags
& NDR_OUT
) {
13258 if (r
->out
.return_credentials
== NULL
) {
13259 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13261 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13262 if (r
->out
.negotiate_flags
== NULL
) {
13263 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13265 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
13266 if (r
->out
.rid
== NULL
) {
13267 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13270 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13272 return NDR_ERR_SUCCESS
;
13275 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
13277 uint32_t _ptr_server_name
;
13278 uint32_t size_server_name_1
= 0;
13279 uint32_t length_server_name_1
= 0;
13280 uint32_t size_account_name_0
= 0;
13281 uint32_t length_account_name_0
= 0;
13282 uint32_t size_computer_name_0
= 0;
13283 uint32_t length_computer_name_0
= 0;
13284 TALLOC_CTX
*_mem_save_server_name_0
;
13285 TALLOC_CTX
*_mem_save_credentials_0
;
13286 TALLOC_CTX
*_mem_save_return_credentials_0
;
13287 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
13288 TALLOC_CTX
*_mem_save_rid_0
;
13289 if (flags
& NDR_IN
) {
13290 ZERO_STRUCT(r
->out
);
13292 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13293 if (_ptr_server_name
) {
13294 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13296 r
->in
.server_name
= NULL
;
13298 if (r
->in
.server_name
) {
13299 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13300 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13301 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13302 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13303 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
13304 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
13305 if (length_server_name_1
> size_server_name_1
) {
13306 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
13308 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
13309 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
13310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13312 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
13313 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
13314 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
13315 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
13316 if (length_account_name_0
> size_account_name_0
) {
13317 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
13319 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
13320 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
13321 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
13322 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13323 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13324 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
13325 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
13326 if (length_computer_name_0
> size_computer_name_0
) {
13327 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
13329 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
13330 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
13331 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13332 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
13334 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13335 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
13336 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13337 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13338 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13339 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
13341 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13342 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13343 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
13344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13345 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13346 ZERO_STRUCTP(r
->out
.return_credentials
);
13347 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13348 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
13349 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13350 ZERO_STRUCTP(r
->out
.rid
);
13352 if (flags
& NDR_OUT
) {
13353 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13354 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13356 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13357 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
13358 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13360 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13361 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13363 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13364 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13365 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
13366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13367 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13368 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13370 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13371 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13372 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13374 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13376 return NDR_ERR_SUCCESS
;
13379 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13381 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
13383 if (flags
& NDR_SET_VALUES
) {
13384 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13386 if (flags
& NDR_IN
) {
13387 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
13389 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13391 if (r
->in
.server_name
) {
13392 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13395 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
13396 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
13397 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13398 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
13400 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
13402 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
13404 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
13408 if (flags
& NDR_OUT
) {
13409 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
13411 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
13413 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
13415 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
13417 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
13419 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13421 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13423 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13429 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13431 if (flags
& NDR_IN
) {
13432 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
13433 if (r
->in
.server_unc
) {
13434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13437 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_unc
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13440 if (r
->in
.domain_name
) {
13441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13444 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain_name
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13447 if (r
->in
.domain_guid
) {
13448 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
13451 if (r
->in
.site_name
) {
13452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13455 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.site_name
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13457 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
13459 if (flags
& NDR_OUT
) {
13460 if (r
->out
.info
== NULL
) {
13461 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13463 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
13464 if (*r
->out
.info
) {
13465 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13467 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13469 return NDR_ERR_SUCCESS
;
13472 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
13474 uint32_t _ptr_server_unc
;
13475 uint32_t size_server_unc_1
= 0;
13476 uint32_t length_server_unc_1
= 0;
13477 uint32_t _ptr_domain_name
;
13478 uint32_t size_domain_name_1
= 0;
13479 uint32_t length_domain_name_1
= 0;
13480 uint32_t _ptr_domain_guid
;
13481 uint32_t _ptr_site_name
;
13482 uint32_t size_site_name_1
= 0;
13483 uint32_t length_site_name_1
= 0;
13484 uint32_t _ptr_info
;
13485 TALLOC_CTX
*_mem_save_server_unc_0
;
13486 TALLOC_CTX
*_mem_save_domain_name_0
;
13487 TALLOC_CTX
*_mem_save_domain_guid_0
;
13488 TALLOC_CTX
*_mem_save_site_name_0
;
13489 TALLOC_CTX
*_mem_save_info_0
;
13490 TALLOC_CTX
*_mem_save_info_1
;
13491 if (flags
& NDR_IN
) {
13492 ZERO_STRUCT(r
->out
);
13494 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
13495 if (_ptr_server_unc
) {
13496 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
13498 r
->in
.server_unc
= NULL
;
13500 if (r
->in
.server_unc
) {
13501 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13502 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
13503 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
13504 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
13505 size_server_unc_1
= ndr_get_array_size(ndr
, &r
->in
.server_unc
);
13506 length_server_unc_1
= ndr_get_array_length(ndr
, &r
->in
.server_unc
);
13507 if (length_server_unc_1
> size_server_unc_1
) {
13508 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_unc_1
, length_server_unc_1
);
13510 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_unc_1
, sizeof(uint16_t)));
13511 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, length_server_unc_1
, sizeof(uint16_t), CH_UTF16
));
13512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
13514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13515 if (_ptr_domain_name
) {
13516 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13518 r
->in
.domain_name
= NULL
;
13520 if (r
->in
.domain_name
) {
13521 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13522 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13524 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13525 size_domain_name_1
= ndr_get_array_size(ndr
, &r
->in
.domain_name
);
13526 length_domain_name_1
= ndr_get_array_length(ndr
, &r
->in
.domain_name
);
13527 if (length_domain_name_1
> size_domain_name_1
) {
13528 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_name_1
, length_domain_name_1
);
13530 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_name_1
, sizeof(uint16_t)));
13531 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, length_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
13532 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13534 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
13535 if (_ptr_domain_guid
) {
13536 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
13538 r
->in
.domain_guid
= NULL
;
13540 if (r
->in
.domain_guid
) {
13541 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13542 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
13543 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
13546 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
13547 if (_ptr_site_name
) {
13548 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
13550 r
->in
.site_name
= NULL
;
13552 if (r
->in
.site_name
) {
13553 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13554 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
13555 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
13556 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
13557 size_site_name_1
= ndr_get_array_size(ndr
, &r
->in
.site_name
);
13558 length_site_name_1
= ndr_get_array_length(ndr
, &r
->in
.site_name
);
13559 if (length_site_name_1
> size_site_name_1
) {
13560 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_site_name_1
, length_site_name_1
);
13562 NDR_CHECK(ndr_check_string_terminator(ndr
, length_site_name_1
, sizeof(uint16_t)));
13563 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.site_name
, length_site_name_1
, sizeof(uint16_t), CH_UTF16
));
13564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
13566 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
13567 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13568 ZERO_STRUCTP(r
->out
.info
);
13570 if (flags
& NDR_OUT
) {
13571 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13572 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13574 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13575 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13576 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
13578 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
13580 *r
->out
.info
= NULL
;
13582 if (*r
->out
.info
) {
13583 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13584 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
13585 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
13588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13589 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13591 return NDR_ERR_SUCCESS
;
13594 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13596 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
13598 if (flags
& NDR_SET_VALUES
) {
13599 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13601 if (flags
& NDR_IN
) {
13602 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
13604 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
13606 if (r
->in
.server_unc
) {
13607 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
13610 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13612 if (r
->in
.domain_name
) {
13613 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13616 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
13618 if (r
->in
.domain_guid
) {
13619 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
13622 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
13624 if (r
->in
.site_name
) {
13625 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
13628 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
13631 if (flags
& NDR_OUT
) {
13632 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
13634 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13636 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
13638 if (*r
->out
.info
) {
13639 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
13643 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13649 static enum ndr_err_code
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
13651 if (flags
& NDR_IN
) {
13652 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13653 if (r
->in
.computer_name
) {
13654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13656 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13657 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13660 if (flags
& NDR_OUT
) {
13661 if (r
->out
.site
== NULL
) {
13662 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13664 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.site
));
13665 if (*r
->out
.site
) {
13666 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13667 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13668 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13669 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13671 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13673 return NDR_ERR_SUCCESS
;
13676 static enum ndr_err_code
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
13678 uint32_t _ptr_computer_name
;
13679 uint32_t size_computer_name_1
= 0;
13680 uint32_t length_computer_name_1
= 0;
13681 uint32_t _ptr_site
;
13682 uint32_t size_site_2
= 0;
13683 uint32_t length_site_2
= 0;
13684 TALLOC_CTX
*_mem_save_computer_name_0
;
13685 TALLOC_CTX
*_mem_save_site_0
;
13686 TALLOC_CTX
*_mem_save_site_1
;
13687 if (flags
& NDR_IN
) {
13688 ZERO_STRUCT(r
->out
);
13690 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13691 if (_ptr_computer_name
) {
13692 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13694 r
->in
.computer_name
= NULL
;
13696 if (r
->in
.computer_name
) {
13697 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13698 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13699 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13700 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13701 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
13702 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
13703 if (length_computer_name_1
> size_computer_name_1
) {
13704 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
13706 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
13707 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
13708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13710 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13711 ZERO_STRUCTP(r
->out
.site
);
13713 if (flags
& NDR_OUT
) {
13714 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13715 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13717 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13718 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
13719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site
));
13721 NDR_PULL_ALLOC(ndr
, *r
->out
.site
);
13723 *r
->out
.site
= NULL
;
13725 if (*r
->out
.site
) {
13726 _mem_save_site_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13727 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.site
, 0);
13728 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
13729 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
13730 size_site_2
= ndr_get_array_size(ndr
, r
->out
.site
);
13731 length_site_2
= ndr_get_array_length(ndr
, r
->out
.site
);
13732 if (length_site_2
> size_site_2
) {
13733 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_site_2
, length_site_2
);
13735 NDR_CHECK(ndr_check_string_terminator(ndr
, length_site_2
, sizeof(uint16_t)));
13736 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, length_site_2
, sizeof(uint16_t), CH_UTF16
));
13737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_1
, 0);
13739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
13740 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13742 return NDR_ERR_SUCCESS
;
13745 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
13747 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
13749 if (flags
& NDR_SET_VALUES
) {
13750 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13752 if (flags
& NDR_IN
) {
13753 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
13755 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13757 if (r
->in
.computer_name
) {
13758 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13763 if (flags
& NDR_OUT
) {
13764 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
13766 ndr_print_ptr(ndr
, "site", r
->out
.site
);
13768 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
13770 if (*r
->out
.site
) {
13771 ndr_print_string(ndr
, "site", *r
->out
.site
);
13775 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13781 static enum ndr_err_code
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13783 if (flags
& NDR_IN
) {
13784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13787 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13788 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13789 if (r
->in
.computer_name
) {
13790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13793 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13795 if (r
->in
.credential
== NULL
) {
13796 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13798 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13799 if (r
->in
.return_authenticator
== NULL
) {
13800 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13802 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
13804 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
13805 NDR_CHECK(ndr_push_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
13807 if (flags
& NDR_OUT
) {
13808 if (r
->out
.return_authenticator
== NULL
) {
13809 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13811 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13812 if (r
->out
.info
== NULL
) {
13813 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13815 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13816 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13817 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13819 return NDR_ERR_SUCCESS
;
13822 static enum ndr_err_code
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
13824 uint32_t size_server_name_0
= 0;
13825 uint32_t length_server_name_0
= 0;
13826 uint32_t _ptr_computer_name
;
13827 uint32_t size_computer_name_1
= 0;
13828 uint32_t length_computer_name_1
= 0;
13829 TALLOC_CTX
*_mem_save_computer_name_0
;
13830 TALLOC_CTX
*_mem_save_credential_0
;
13831 TALLOC_CTX
*_mem_save_return_authenticator_0
;
13832 TALLOC_CTX
*_mem_save_info_0
;
13833 if (flags
& NDR_IN
) {
13834 ZERO_STRUCT(r
->out
);
13836 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13837 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13838 size_server_name_0
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
13839 length_server_name_0
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
13840 if (length_server_name_0
> size_server_name_0
) {
13841 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_0
, length_server_name_0
);
13843 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_0
, sizeof(uint16_t)));
13844 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_0
, sizeof(uint16_t), CH_UTF16
));
13845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13846 if (_ptr_computer_name
) {
13847 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13849 r
->in
.computer_name
= NULL
;
13851 if (r
->in
.computer_name
) {
13852 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13853 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13854 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13855 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13856 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
13857 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
13858 if (length_computer_name_1
> size_computer_name_1
) {
13859 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
13861 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
13862 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
13863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13865 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13866 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
13868 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13869 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
13870 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
13872 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13873 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
13875 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13876 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13877 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13879 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13880 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
13881 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
13882 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13883 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
13884 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13885 ZERO_STRUCTP(r
->out
.info
);
13887 if (flags
& NDR_OUT
) {
13888 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13889 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13891 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13892 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13893 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13895 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13896 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13898 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13899 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13900 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13901 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13903 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13905 return NDR_ERR_SUCCESS
;
13908 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13910 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
13912 if (flags
& NDR_SET_VALUES
) {
13913 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13915 if (flags
& NDR_IN
) {
13916 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
13918 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13919 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13921 if (r
->in
.computer_name
) {
13922 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13925 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
13927 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
13929 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13931 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13933 ndr_print_uint32(ndr
, "level", r
->in
.level
);
13934 ndr_print_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
);
13935 ndr_print_netr_DomainQuery(ndr
, "query", &r
->in
.query
);
13938 if (flags
& NDR_OUT
) {
13939 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
13941 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13943 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13945 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13947 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
13948 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
13950 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13956 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
13958 if (flags
& NDR_IN
) {
13959 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13960 if (r
->in
.server_name
) {
13961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13964 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13969 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13970 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13974 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13975 if (r
->in
.credential
== NULL
) {
13976 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13978 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13979 if (r
->in
.new_password
== NULL
) {
13980 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13982 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
13984 if (flags
& NDR_OUT
) {
13985 if (r
->out
.return_authenticator
== NULL
) {
13986 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13988 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13989 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13991 return NDR_ERR_SUCCESS
;
13994 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
13996 uint32_t _ptr_server_name
;
13997 uint32_t size_server_name_1
= 0;
13998 uint32_t length_server_name_1
= 0;
13999 uint32_t size_account_name_0
= 0;
14000 uint32_t length_account_name_0
= 0;
14001 uint32_t size_computer_name_0
= 0;
14002 uint32_t length_computer_name_0
= 0;
14003 TALLOC_CTX
*_mem_save_server_name_0
;
14004 TALLOC_CTX
*_mem_save_credential_0
;
14005 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14006 TALLOC_CTX
*_mem_save_new_password_0
;
14007 if (flags
& NDR_IN
) {
14008 ZERO_STRUCT(r
->out
);
14010 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14011 if (_ptr_server_name
) {
14012 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14014 r
->in
.server_name
= NULL
;
14016 if (r
->in
.server_name
) {
14017 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14018 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14019 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14020 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14021 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
14022 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
14023 if (length_server_name_1
> size_server_name_1
) {
14024 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
14026 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
14027 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
14028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14030 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14031 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14032 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
14033 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
14034 if (length_account_name_0
> size_account_name_0
) {
14035 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
14037 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
14038 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
14039 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14040 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14041 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14042 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
14043 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
14044 if (length_computer_name_0
> size_computer_name_0
) {
14045 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
14047 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
14048 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
14049 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14050 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14052 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14053 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14054 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14056 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14057 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
14059 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14060 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
14061 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
14062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14063 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14064 ZERO_STRUCTP(r
->out
.return_authenticator
);
14066 if (flags
& NDR_OUT
) {
14067 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14068 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14070 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14071 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14072 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14074 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14076 return NDR_ERR_SUCCESS
;
14079 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
14081 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
14083 if (flags
& NDR_SET_VALUES
) {
14084 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14086 if (flags
& NDR_IN
) {
14087 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
14089 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14091 if (r
->in
.server_name
) {
14092 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14095 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14096 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14097 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14098 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14100 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14102 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
14104 ndr_print_netr_CryptPassword(ndr
, "new_password", r
->in
.new_password
);
14108 if (flags
& NDR_OUT
) {
14109 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
14111 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14113 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14115 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14121 static enum ndr_err_code
ndr_push_netr_ServerPasswordGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordGet
*r
)
14123 if (flags
& NDR_IN
) {
14124 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14125 if (r
->in
.server_name
) {
14126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14129 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14134 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14135 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14139 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14140 if (r
->in
.credential
== NULL
) {
14141 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14143 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14145 if (flags
& NDR_OUT
) {
14146 if (r
->out
.return_authenticator
== NULL
) {
14147 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14149 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14150 if (r
->out
.password
== NULL
) {
14151 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14153 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14154 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14156 return NDR_ERR_SUCCESS
;
14159 static enum ndr_err_code
ndr_pull_netr_ServerPasswordGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordGet
*r
)
14161 uint32_t _ptr_server_name
;
14162 uint32_t size_server_name_1
= 0;
14163 uint32_t length_server_name_1
= 0;
14164 uint32_t size_account_name_0
= 0;
14165 uint32_t length_account_name_0
= 0;
14166 uint32_t size_computer_name_0
= 0;
14167 uint32_t length_computer_name_0
= 0;
14168 TALLOC_CTX
*_mem_save_server_name_0
;
14169 TALLOC_CTX
*_mem_save_credential_0
;
14170 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14171 TALLOC_CTX
*_mem_save_password_0
;
14172 if (flags
& NDR_IN
) {
14173 ZERO_STRUCT(r
->out
);
14175 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14176 if (_ptr_server_name
) {
14177 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14179 r
->in
.server_name
= NULL
;
14181 if (r
->in
.server_name
) {
14182 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14183 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14184 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14185 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14186 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
14187 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
14188 if (length_server_name_1
> size_server_name_1
) {
14189 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
14191 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
14192 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
14193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14195 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14196 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14197 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
14198 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
14199 if (length_account_name_0
> size_account_name_0
) {
14200 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
14202 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
14203 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
14204 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14205 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14206 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14207 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
14208 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
14209 if (length_computer_name_0
> size_computer_name_0
) {
14210 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
14212 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
14213 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
14214 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14215 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14217 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14218 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14219 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14221 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14222 ZERO_STRUCTP(r
->out
.return_authenticator
);
14223 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14224 ZERO_STRUCTP(r
->out
.password
);
14226 if (flags
& NDR_OUT
) {
14227 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14228 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14230 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14231 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14232 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14234 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14235 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14237 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14238 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
14239 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14241 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14243 return NDR_ERR_SUCCESS
;
14246 _PUBLIC_
void ndr_print_netr_ServerPasswordGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordGet
*r
)
14248 ndr_print_struct(ndr
, name
, "netr_ServerPasswordGet");
14250 if (flags
& NDR_SET_VALUES
) {
14251 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14253 if (flags
& NDR_IN
) {
14254 ndr_print_struct(ndr
, "in", "netr_ServerPasswordGet");
14256 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14258 if (r
->in
.server_name
) {
14259 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14262 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14263 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14264 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14265 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14267 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14271 if (flags
& NDR_OUT
) {
14272 ndr_print_struct(ndr
, "out", "netr_ServerPasswordGet");
14274 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14276 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14278 ndr_print_ptr(ndr
, "password", r
->out
.password
);
14280 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
14282 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14288 static enum ndr_err_code
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14290 if (flags
& NDR_IN
) {
14292 if (flags
& NDR_OUT
) {
14293 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14295 return NDR_ERR_SUCCESS
;
14298 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
14300 if (flags
& NDR_IN
) {
14302 if (flags
& NDR_OUT
) {
14303 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14305 return NDR_ERR_SUCCESS
;
14308 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14310 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
14312 if (flags
& NDR_SET_VALUES
) {
14313 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14315 if (flags
& NDR_IN
) {
14316 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
14320 if (flags
& NDR_OUT
) {
14321 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
14323 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14329 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14331 uint32_t cntr_addresses_1
;
14332 if (flags
& NDR_IN
) {
14333 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14334 if (r
->in
.server_name
) {
14335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14338 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14341 if (r
->in
.addresses
== NULL
) {
14342 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14345 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14346 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14348 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14349 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14352 if (flags
& NDR_OUT
) {
14353 if (r
->out
.ctr
== NULL
) {
14354 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14356 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14358 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14360 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14362 return NDR_ERR_SUCCESS
;
14365 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesW
*r
)
14367 uint32_t _ptr_server_name
;
14368 uint32_t size_server_name_1
= 0;
14369 uint32_t length_server_name_1
= 0;
14370 uint32_t size_addresses_1
= 0;
14371 uint32_t cntr_addresses_1
;
14373 TALLOC_CTX
*_mem_save_server_name_0
;
14374 TALLOC_CTX
*_mem_save_addresses_1
;
14375 TALLOC_CTX
*_mem_save_ctr_0
;
14376 TALLOC_CTX
*_mem_save_ctr_1
;
14377 if (flags
& NDR_IN
) {
14378 ZERO_STRUCT(r
->out
);
14380 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14381 if (_ptr_server_name
) {
14382 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14384 r
->in
.server_name
= NULL
;
14386 if (r
->in
.server_name
) {
14387 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14388 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14389 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14390 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14391 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
14392 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
14393 if (length_server_name_1
> size_server_name_1
) {
14394 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
14396 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
14397 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
14398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14400 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14401 if (r
->in
.count
> 32000) {
14402 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14404 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14405 size_addresses_1
= ndr_get_array_size(ndr
, &r
->in
.addresses
);
14406 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14407 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, size_addresses_1
);
14409 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14410 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14411 for (cntr_addresses_1
= 0; cntr_addresses_1
< size_addresses_1
; cntr_addresses_1
++) {
14412 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14414 for (cntr_addresses_1
= 0; cntr_addresses_1
< size_addresses_1
; cntr_addresses_1
++) {
14415 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14418 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14419 ZERO_STRUCTP(r
->out
.ctr
);
14420 if (r
->in
.addresses
) {
14421 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14424 if (flags
& NDR_OUT
) {
14425 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14426 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14428 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14429 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14430 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14432 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14434 *r
->out
.ctr
= NULL
;
14437 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14438 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14439 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14440 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
14442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14443 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14445 return NDR_ERR_SUCCESS
;
14448 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14450 uint32_t cntr_addresses_1
;
14451 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesW");
14453 if (flags
& NDR_SET_VALUES
) {
14454 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14456 if (flags
& NDR_IN
) {
14457 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesW");
14459 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14461 if (r
->in
.server_name
) {
14462 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14465 ndr_print_uint32(ndr
, "count", r
->in
.count
);
14466 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
14468 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
14470 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
14472 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
14473 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
14481 if (flags
& NDR_OUT
) {
14482 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesW");
14484 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14486 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
14489 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr
, "ctr", *r
->out
.ctr
);
14493 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14499 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14501 if (flags
& NDR_IN
) {
14502 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
14503 if (r
->in
.server_unc
) {
14504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14507 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_unc
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14509 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
14510 if (r
->in
.client_account
) {
14511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14512 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14514 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.client_account
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14516 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.mask
));
14517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
14518 if (r
->in
.domain_name
) {
14519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14522 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain_name
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
14525 if (r
->in
.domain_guid
) {
14526 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
14529 if (r
->in
.site_name
) {
14530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14533 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.site_name
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14535 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
14537 if (flags
& NDR_OUT
) {
14538 if (r
->out
.info
== NULL
) {
14539 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14541 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
14542 if (*r
->out
.info
) {
14543 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14545 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14547 return NDR_ERR_SUCCESS
;
14550 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
14552 uint32_t _ptr_server_unc
;
14553 uint32_t size_server_unc_1
= 0;
14554 uint32_t length_server_unc_1
= 0;
14555 uint32_t _ptr_client_account
;
14556 uint32_t size_client_account_1
= 0;
14557 uint32_t length_client_account_1
= 0;
14558 uint32_t _ptr_domain_name
;
14559 uint32_t size_domain_name_1
= 0;
14560 uint32_t length_domain_name_1
= 0;
14561 uint32_t _ptr_domain_guid
;
14562 uint32_t _ptr_site_name
;
14563 uint32_t size_site_name_1
= 0;
14564 uint32_t length_site_name_1
= 0;
14565 uint32_t _ptr_info
;
14566 TALLOC_CTX
*_mem_save_server_unc_0
;
14567 TALLOC_CTX
*_mem_save_client_account_0
;
14568 TALLOC_CTX
*_mem_save_domain_name_0
;
14569 TALLOC_CTX
*_mem_save_domain_guid_0
;
14570 TALLOC_CTX
*_mem_save_site_name_0
;
14571 TALLOC_CTX
*_mem_save_info_0
;
14572 TALLOC_CTX
*_mem_save_info_1
;
14573 if (flags
& NDR_IN
) {
14574 ZERO_STRUCT(r
->out
);
14576 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
14577 if (_ptr_server_unc
) {
14578 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
14580 r
->in
.server_unc
= NULL
;
14582 if (r
->in
.server_unc
) {
14583 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14584 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
14585 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
14586 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
14587 size_server_unc_1
= ndr_get_array_size(ndr
, &r
->in
.server_unc
);
14588 length_server_unc_1
= ndr_get_array_length(ndr
, &r
->in
.server_unc
);
14589 if (length_server_unc_1
> size_server_unc_1
) {
14590 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_unc_1
, length_server_unc_1
);
14592 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_unc_1
, sizeof(uint16_t)));
14593 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, length_server_unc_1
, sizeof(uint16_t), CH_UTF16
));
14594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
14596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
14597 if (_ptr_client_account
) {
14598 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
14600 r
->in
.client_account
= NULL
;
14602 if (r
->in
.client_account
) {
14603 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14604 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
14605 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
14606 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
14607 size_client_account_1
= ndr_get_array_size(ndr
, &r
->in
.client_account
);
14608 length_client_account_1
= ndr_get_array_length(ndr
, &r
->in
.client_account
);
14609 if (length_client_account_1
> size_client_account_1
) {
14610 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_client_account_1
, length_client_account_1
);
14612 NDR_CHECK(ndr_check_string_terminator(ndr
, length_client_account_1
, sizeof(uint16_t)));
14613 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.client_account
, length_client_account_1
, sizeof(uint16_t), CH_UTF16
));
14614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
14616 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.mask
));
14617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
14618 if (_ptr_domain_name
) {
14619 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
14621 r
->in
.domain_name
= NULL
;
14623 if (r
->in
.domain_name
) {
14624 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14625 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
14626 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
14627 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
14628 size_domain_name_1
= ndr_get_array_size(ndr
, &r
->in
.domain_name
);
14629 length_domain_name_1
= ndr_get_array_length(ndr
, &r
->in
.domain_name
);
14630 if (length_domain_name_1
> size_domain_name_1
) {
14631 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_name_1
, length_domain_name_1
);
14633 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_name_1
, sizeof(uint16_t)));
14634 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, length_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
14635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
14637 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
14638 if (_ptr_domain_guid
) {
14639 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
14641 r
->in
.domain_guid
= NULL
;
14643 if (r
->in
.domain_guid
) {
14644 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14645 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
14646 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14647 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
14649 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
14650 if (_ptr_site_name
) {
14651 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
14653 r
->in
.site_name
= NULL
;
14655 if (r
->in
.site_name
) {
14656 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14657 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
14658 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
14659 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
14660 size_site_name_1
= ndr_get_array_size(ndr
, &r
->in
.site_name
);
14661 length_site_name_1
= ndr_get_array_length(ndr
, &r
->in
.site_name
);
14662 if (length_site_name_1
> size_site_name_1
) {
14663 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_site_name_1
, length_site_name_1
);
14665 NDR_CHECK(ndr_check_string_terminator(ndr
, length_site_name_1
, sizeof(uint16_t)));
14666 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.site_name
, length_site_name_1
, sizeof(uint16_t), CH_UTF16
));
14667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
14669 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14670 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14671 ZERO_STRUCTP(r
->out
.info
);
14673 if (flags
& NDR_OUT
) {
14674 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14675 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14677 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14678 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
14679 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
14681 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
14683 *r
->out
.info
= NULL
;
14685 if (*r
->out
.info
) {
14686 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14687 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
14688 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
14691 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14692 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14694 return NDR_ERR_SUCCESS
;
14697 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14699 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
14701 if (flags
& NDR_SET_VALUES
) {
14702 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14704 if (flags
& NDR_IN
) {
14705 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
14707 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
14709 if (r
->in
.server_unc
) {
14710 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
14713 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
14715 if (r
->in
.client_account
) {
14716 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
14719 ndr_print_samr_AcctFlags(ndr
, "mask", r
->in
.mask
);
14720 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
14722 if (r
->in
.domain_name
) {
14723 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
14726 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
14728 if (r
->in
.domain_guid
) {
14729 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
14732 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
14734 if (r
->in
.site_name
) {
14735 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
14738 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
14741 if (flags
& NDR_OUT
) {
14742 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
14744 ndr_print_ptr(ndr
, "info", r
->out
.info
);
14746 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
14748 if (*r
->out
.info
) {
14749 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
14753 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14759 static enum ndr_err_code
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14761 if (flags
& NDR_IN
) {
14763 if (flags
& NDR_OUT
) {
14764 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14766 return NDR_ERR_SUCCESS
;
14769 static enum ndr_err_code
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14771 if (flags
& NDR_IN
) {
14773 if (flags
& NDR_OUT
) {
14774 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14776 return NDR_ERR_SUCCESS
;
14779 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14781 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14783 if (flags
& NDR_SET_VALUES
) {
14784 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14786 if (flags
& NDR_IN
) {
14787 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14791 if (flags
& NDR_OUT
) {
14792 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14794 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14800 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14802 if (flags
& NDR_IN
) {
14803 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14804 if (r
->in
.server_name
) {
14805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14808 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14811 if (flags
& NDR_OUT
) {
14812 if (r
->out
.dom_trust_list
== NULL
) {
14813 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14815 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14816 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14818 return NDR_ERR_SUCCESS
;
14821 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14823 uint32_t _ptr_server_name
;
14824 uint32_t size_server_name_1
= 0;
14825 uint32_t length_server_name_1
= 0;
14826 TALLOC_CTX
*_mem_save_server_name_0
;
14827 TALLOC_CTX
*_mem_save_dom_trust_list_0
;
14828 if (flags
& NDR_IN
) {
14829 ZERO_STRUCT(r
->out
);
14831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14832 if (_ptr_server_name
) {
14833 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14835 r
->in
.server_name
= NULL
;
14837 if (r
->in
.server_name
) {
14838 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14839 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14840 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14841 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14842 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
14843 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
14844 if (length_server_name_1
> size_server_name_1
) {
14845 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
14847 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
14848 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
14849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14851 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14852 ZERO_STRUCTP(r
->out
.dom_trust_list
);
14854 if (flags
& NDR_OUT
) {
14855 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14856 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14858 _mem_save_dom_trust_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14859 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dom_trust_list
, LIBNDR_FLAG_REF_ALLOC
);
14860 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dom_trust_list_0
, LIBNDR_FLAG_REF_ALLOC
);
14862 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14864 return NDR_ERR_SUCCESS
;
14867 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14869 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomainsEx");
14871 if (flags
& NDR_SET_VALUES
) {
14872 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14874 if (flags
& NDR_IN
) {
14875 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomainsEx");
14877 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14879 if (r
->in
.server_name
) {
14880 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14885 if (flags
& NDR_OUT
) {
14886 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomainsEx");
14888 ndr_print_ptr(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14890 ndr_print_netr_DomainTrustList(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14892 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14898 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
14900 uint32_t cntr_addresses_1
;
14901 if (flags
& NDR_IN
) {
14902 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14903 if (r
->in
.server_name
) {
14904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14907 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14910 if (r
->in
.addresses
== NULL
) {
14911 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14914 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14915 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14917 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14918 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14921 if (flags
& NDR_OUT
) {
14922 if (r
->out
.ctr
== NULL
) {
14923 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14925 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14927 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14929 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14931 return NDR_ERR_SUCCESS
;
14934 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesExW
*r
)
14936 uint32_t _ptr_server_name
;
14937 uint32_t size_server_name_1
= 0;
14938 uint32_t length_server_name_1
= 0;
14939 uint32_t size_addresses_1
= 0;
14940 uint32_t cntr_addresses_1
;
14942 TALLOC_CTX
*_mem_save_server_name_0
;
14943 TALLOC_CTX
*_mem_save_addresses_1
;
14944 TALLOC_CTX
*_mem_save_ctr_0
;
14945 TALLOC_CTX
*_mem_save_ctr_1
;
14946 if (flags
& NDR_IN
) {
14947 ZERO_STRUCT(r
->out
);
14949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14950 if (_ptr_server_name
) {
14951 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14953 r
->in
.server_name
= NULL
;
14955 if (r
->in
.server_name
) {
14956 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14957 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14958 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14959 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14960 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
14961 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
14962 if (length_server_name_1
> size_server_name_1
) {
14963 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
14965 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
14966 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
14967 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14969 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14970 if (r
->in
.count
> 32000) {
14971 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14973 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14974 size_addresses_1
= ndr_get_array_size(ndr
, &r
->in
.addresses
);
14975 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14976 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, size_addresses_1
);
14978 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14979 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14980 for (cntr_addresses_1
= 0; cntr_addresses_1
< size_addresses_1
; cntr_addresses_1
++) {
14981 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14983 for (cntr_addresses_1
= 0; cntr_addresses_1
< size_addresses_1
; cntr_addresses_1
++) {
14984 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14987 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14988 ZERO_STRUCTP(r
->out
.ctr
);
14989 if (r
->in
.addresses
) {
14990 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14993 if (flags
& NDR_OUT
) {
14994 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14995 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14997 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14998 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14999 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
15001 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
15003 *r
->out
.ctr
= NULL
;
15006 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15007 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
15008 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15012 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15014 return NDR_ERR_SUCCESS
;
15017 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
15019 uint32_t cntr_addresses_1
;
15020 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExW");
15022 if (flags
& NDR_SET_VALUES
) {
15023 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15025 if (flags
& NDR_IN
) {
15026 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesExW");
15028 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15030 if (r
->in
.server_name
) {
15031 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15034 ndr_print_uint32(ndr
, "count", r
->in
.count
);
15035 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
15037 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
15039 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
15041 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
15042 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
15050 if (flags
& NDR_OUT
) {
15051 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesExW");
15053 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15055 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15058 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr
, "ctr", *r
->out
.ctr
);
15062 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15068 static enum ndr_err_code
ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push
*ndr
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15070 if (flags
& NDR_IN
) {
15071 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15072 if (r
->in
.server_name
) {
15073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15074 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15076 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15079 if (flags
& NDR_OUT
) {
15080 if (r
->out
.ctr
== NULL
) {
15081 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15083 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
15085 NDR_CHECK(ndr_push_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15087 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15089 return NDR_ERR_SUCCESS
;
15092 static enum ndr_err_code
ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull
*ndr
, int flags
, struct netr_DsrGetDcSiteCoverageW
*r
)
15094 uint32_t _ptr_server_name
;
15095 uint32_t size_server_name_1
= 0;
15096 uint32_t length_server_name_1
= 0;
15098 TALLOC_CTX
*_mem_save_server_name_0
;
15099 TALLOC_CTX
*_mem_save_ctr_0
;
15100 TALLOC_CTX
*_mem_save_ctr_1
;
15101 if (flags
& NDR_IN
) {
15102 ZERO_STRUCT(r
->out
);
15104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15105 if (_ptr_server_name
) {
15106 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15108 r
->in
.server_name
= NULL
;
15110 if (r
->in
.server_name
) {
15111 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15112 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15113 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15114 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15115 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
15116 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
15117 if (length_server_name_1
> size_server_name_1
) {
15118 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
15120 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
15121 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
15122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15124 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15125 ZERO_STRUCTP(r
->out
.ctr
);
15127 if (flags
& NDR_OUT
) {
15128 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15129 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15131 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15132 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
15133 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
15135 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
15137 *r
->out
.ctr
= NULL
;
15140 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15141 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
15142 NDR_CHECK(ndr_pull_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15146 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15148 return NDR_ERR_SUCCESS
;
15151 _PUBLIC_
void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15153 ndr_print_struct(ndr
, name
, "netr_DsrGetDcSiteCoverageW");
15155 if (flags
& NDR_SET_VALUES
) {
15156 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15158 if (flags
& NDR_IN
) {
15159 ndr_print_struct(ndr
, "in", "netr_DsrGetDcSiteCoverageW");
15161 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15163 if (r
->in
.server_name
) {
15164 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15169 if (flags
& NDR_OUT
) {
15170 ndr_print_struct(ndr
, "out", "netr_DsrGetDcSiteCoverageW");
15172 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15174 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15177 ndr_print_DcSitesCtr(ndr
, "ctr", *r
->out
.ctr
);
15181 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15187 static enum ndr_err_code
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15189 if (flags
& NDR_IN
) {
15190 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15191 if (r
->in
.server_name
) {
15192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15195 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15197 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
15198 if (r
->in
.computer_name
) {
15199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15202 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15204 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
15205 if (r
->in
.logon
== NULL
) {
15206 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15208 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15209 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15210 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
15211 if (r
->in
.flags
== NULL
) {
15212 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
15216 if (flags
& NDR_OUT
) {
15217 if (r
->out
.validation
== NULL
) {
15218 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15220 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15221 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15222 if (r
->out
.authoritative
== NULL
) {
15223 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15225 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
15226 if (r
->out
.flags
== NULL
) {
15227 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
15230 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15232 return NDR_ERR_SUCCESS
;
15235 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
15237 uint32_t _ptr_server_name
;
15238 uint32_t size_server_name_1
= 0;
15239 uint32_t length_server_name_1
= 0;
15240 uint32_t _ptr_computer_name
;
15241 uint32_t size_computer_name_1
= 0;
15242 uint32_t length_computer_name_1
= 0;
15243 TALLOC_CTX
*_mem_save_server_name_0
;
15244 TALLOC_CTX
*_mem_save_computer_name_0
;
15245 TALLOC_CTX
*_mem_save_logon_0
;
15246 TALLOC_CTX
*_mem_save_validation_0
;
15247 TALLOC_CTX
*_mem_save_authoritative_0
;
15248 TALLOC_CTX
*_mem_save_flags_0
;
15249 if (flags
& NDR_IN
) {
15250 ZERO_STRUCT(r
->out
);
15252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15253 if (_ptr_server_name
) {
15254 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15256 r
->in
.server_name
= NULL
;
15258 if (r
->in
.server_name
) {
15259 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15260 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15261 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15262 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15263 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
15264 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
15265 if (length_server_name_1
> size_server_name_1
) {
15266 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
15268 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
15269 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
15270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
15273 if (_ptr_computer_name
) {
15274 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
15276 r
->in
.computer_name
= NULL
;
15278 if (r
->in
.computer_name
) {
15279 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15280 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
15281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15282 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15283 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
15284 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
15285 if (length_computer_name_1
> size_computer_name_1
) {
15286 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
15288 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
15289 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
15290 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
15292 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
15293 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15294 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
15296 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15297 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
15298 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15299 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
15301 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
15302 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15303 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
15305 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15306 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15307 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15308 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15309 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15310 ZERO_STRUCTP(r
->out
.validation
);
15311 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15312 ZERO_STRUCTP(r
->out
.authoritative
);
15313 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15314 *r
->out
.flags
= *r
->in
.flags
;
15316 if (flags
& NDR_OUT
) {
15317 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15318 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15320 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15321 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
15322 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15323 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
15325 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15326 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15328 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15329 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
15330 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
15331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
15332 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15333 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15335 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15336 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15337 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
15338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15339 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15341 return NDR_ERR_SUCCESS
;
15344 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15346 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
15348 if (flags
& NDR_SET_VALUES
) {
15349 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15351 if (flags
& NDR_IN
) {
15352 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
15354 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15356 if (r
->in
.server_name
) {
15357 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15360 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15362 if (r
->in
.computer_name
) {
15363 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15366 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
15367 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
15369 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
15370 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
15372 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
15373 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
15375 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
15379 if (flags
& NDR_OUT
) {
15380 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
15382 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
15384 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
15385 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
15387 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
15389 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
15391 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
15393 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
15395 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15401 static enum ndr_err_code
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15403 if (flags
& NDR_IN
) {
15404 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15405 if (r
->in
.server_name
) {
15406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15409 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15411 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
15413 if (flags
& NDR_OUT
) {
15414 if (r
->out
.trusts
== NULL
) {
15415 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15417 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15418 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15420 return NDR_ERR_SUCCESS
;
15423 static enum ndr_err_code
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
15425 uint32_t _ptr_server_name
;
15426 uint32_t size_server_name_1
= 0;
15427 uint32_t length_server_name_1
= 0;
15428 TALLOC_CTX
*_mem_save_server_name_0
;
15429 TALLOC_CTX
*_mem_save_trusts_0
;
15430 if (flags
& NDR_IN
) {
15431 ZERO_STRUCT(r
->out
);
15433 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15434 if (_ptr_server_name
) {
15435 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15437 r
->in
.server_name
= NULL
;
15439 if (r
->in
.server_name
) {
15440 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15441 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15442 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15443 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15444 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
15445 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
15446 if (length_server_name_1
> size_server_name_1
) {
15447 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
15449 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
15450 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
15451 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15453 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
15454 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15455 ZERO_STRUCTP(r
->out
.trusts
);
15457 if (flags
& NDR_OUT
) {
15458 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15459 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15461 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15462 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, LIBNDR_FLAG_REF_ALLOC
);
15463 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15464 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, LIBNDR_FLAG_REF_ALLOC
);
15465 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15467 return NDR_ERR_SUCCESS
;
15470 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15472 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
15474 if (flags
& NDR_SET_VALUES
) {
15475 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15477 if (flags
& NDR_IN
) {
15478 ndr_print_struct(ndr
, "in", "netr_DsrEnumerateDomainTrusts");
15480 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15482 if (r
->in
.server_name
) {
15483 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15486 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
15489 if (flags
& NDR_OUT
) {
15490 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
15492 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
15494 ndr_print_netr_DomainTrustList(ndr
, "trusts", r
->out
.trusts
);
15496 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15502 static enum ndr_err_code
ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push
*ndr
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15504 if (flags
& NDR_IN
) {
15505 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15506 if (r
->in
.server_name
) {
15507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15510 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain
));
15513 if (r
->in
.domain
) {
15514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15517 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain
, ndr_charset_length(r
->in
.domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15519 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
15520 if (r
->in
.domain_guid
) {
15521 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.dsa_guid
));
15524 if (r
->in
.dsa_guid
) {
15525 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15527 if (r
->in
.dns_host
== NULL
) {
15528 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15533 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.dns_host
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15535 if (flags
& NDR_OUT
) {
15536 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15538 return NDR_ERR_SUCCESS
;
15541 static enum ndr_err_code
ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull
*ndr
, int flags
, struct netr_DsrDeregisterDNSHostRecords
*r
)
15543 uint32_t _ptr_server_name
;
15544 uint32_t size_server_name_1
= 0;
15545 uint32_t length_server_name_1
= 0;
15546 uint32_t _ptr_domain
;
15547 uint32_t size_domain_1
= 0;
15548 uint32_t length_domain_1
= 0;
15549 uint32_t _ptr_domain_guid
;
15550 uint32_t _ptr_dsa_guid
;
15551 uint32_t size_dns_host_1
= 0;
15552 uint32_t length_dns_host_1
= 0;
15553 TALLOC_CTX
*_mem_save_server_name_0
;
15554 TALLOC_CTX
*_mem_save_domain_0
;
15555 TALLOC_CTX
*_mem_save_domain_guid_0
;
15556 TALLOC_CTX
*_mem_save_dsa_guid_0
;
15557 if (flags
& NDR_IN
) {
15558 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15559 if (_ptr_server_name
) {
15560 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15562 r
->in
.server_name
= NULL
;
15564 if (r
->in
.server_name
) {
15565 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15566 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15567 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15568 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15569 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
15570 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
15571 if (length_server_name_1
> size_server_name_1
) {
15572 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
15574 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
15575 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
15576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
15580 NDR_PULL_ALLOC(ndr
, r
->in
.domain
);
15582 r
->in
.domain
= NULL
;
15584 if (r
->in
.domain
) {
15585 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15586 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain
, 0);
15587 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain
));
15588 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain
));
15589 size_domain_1
= ndr_get_array_size(ndr
, &r
->in
.domain
);
15590 length_domain_1
= ndr_get_array_length(ndr
, &r
->in
.domain
);
15591 if (length_domain_1
> size_domain_1
) {
15592 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_domain_1
, length_domain_1
);
15594 NDR_CHECK(ndr_check_string_terminator(ndr
, length_domain_1
, sizeof(uint16_t)));
15595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain
, length_domain_1
, sizeof(uint16_t), CH_UTF16
));
15596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
15598 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
15599 if (_ptr_domain_guid
) {
15600 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
15602 r
->in
.domain_guid
= NULL
;
15604 if (r
->in
.domain_guid
) {
15605 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15606 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
15607 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
15610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_guid
));
15611 if (_ptr_dsa_guid
) {
15612 NDR_PULL_ALLOC(ndr
, r
->in
.dsa_guid
);
15614 r
->in
.dsa_guid
= NULL
;
15616 if (r
->in
.dsa_guid
) {
15617 _mem_save_dsa_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15618 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.dsa_guid
, 0);
15619 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_guid_0
, 0);
15622 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.dns_host
));
15623 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.dns_host
));
15624 size_dns_host_1
= ndr_get_array_size(ndr
, &r
->in
.dns_host
);
15625 length_dns_host_1
= ndr_get_array_length(ndr
, &r
->in
.dns_host
);
15626 if (length_dns_host_1
> size_dns_host_1
) {
15627 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_dns_host_1
, length_dns_host_1
);
15629 NDR_CHECK(ndr_check_string_terminator(ndr
, length_dns_host_1
, sizeof(uint16_t)));
15630 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.dns_host
, length_dns_host_1
, sizeof(uint16_t), CH_UTF16
));
15632 if (flags
& NDR_OUT
) {
15633 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15635 return NDR_ERR_SUCCESS
;
15638 _PUBLIC_
void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15640 ndr_print_struct(ndr
, name
, "netr_DsrDeregisterDNSHostRecords");
15642 if (flags
& NDR_SET_VALUES
) {
15643 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15645 if (flags
& NDR_IN
) {
15646 ndr_print_struct(ndr
, "in", "netr_DsrDeregisterDNSHostRecords");
15648 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15650 if (r
->in
.server_name
) {
15651 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15654 ndr_print_ptr(ndr
, "domain", r
->in
.domain
);
15656 if (r
->in
.domain
) {
15657 ndr_print_string(ndr
, "domain", r
->in
.domain
);
15660 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
15662 if (r
->in
.domain_guid
) {
15663 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
15666 ndr_print_ptr(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15668 if (r
->in
.dsa_guid
) {
15669 ndr_print_GUID(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15672 ndr_print_ptr(ndr
, "dns_host", r
->in
.dns_host
);
15674 ndr_print_string(ndr
, "dns_host", r
->in
.dns_host
);
15678 if (flags
& NDR_OUT
) {
15679 ndr_print_struct(ndr
, "out", "netr_DsrDeregisterDNSHostRecords");
15681 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15687 static enum ndr_err_code
ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15689 if (flags
& NDR_IN
) {
15690 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15691 if (r
->in
.server_name
) {
15692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15695 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15700 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15701 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
15702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15705 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15706 if (r
->in
.credential
== NULL
) {
15707 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15709 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15711 if (flags
& NDR_OUT
) {
15712 if (r
->out
.return_authenticator
== NULL
) {
15713 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15715 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15716 if (r
->out
.password
== NULL
) {
15717 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15719 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15720 if (r
->out
.password2
== NULL
) {
15721 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15723 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15724 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15726 return NDR_ERR_SUCCESS
;
15729 static enum ndr_err_code
ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerTrustPasswordsGet
*r
)
15731 uint32_t _ptr_server_name
;
15732 uint32_t size_server_name_1
= 0;
15733 uint32_t length_server_name_1
= 0;
15734 uint32_t size_account_name_0
= 0;
15735 uint32_t length_account_name_0
= 0;
15736 uint32_t size_computer_name_0
= 0;
15737 uint32_t length_computer_name_0
= 0;
15738 TALLOC_CTX
*_mem_save_server_name_0
;
15739 TALLOC_CTX
*_mem_save_credential_0
;
15740 TALLOC_CTX
*_mem_save_return_authenticator_0
;
15741 TALLOC_CTX
*_mem_save_password_0
;
15742 TALLOC_CTX
*_mem_save_password2_0
;
15743 if (flags
& NDR_IN
) {
15744 ZERO_STRUCT(r
->out
);
15746 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15747 if (_ptr_server_name
) {
15748 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15750 r
->in
.server_name
= NULL
;
15752 if (r
->in
.server_name
) {
15753 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15754 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15756 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15757 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
15758 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
15759 if (length_server_name_1
> size_server_name_1
) {
15760 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
15762 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
15763 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
15764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15766 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
15767 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
15768 size_account_name_0
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
15769 length_account_name_0
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
15770 if (length_account_name_0
> size_account_name_0
) {
15771 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
15773 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint16_t)));
15774 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_0
, sizeof(uint16_t), CH_UTF16
));
15775 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
15776 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15777 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15778 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
15779 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
15780 if (length_computer_name_0
> size_computer_name_0
) {
15781 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
15783 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint16_t)));
15784 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_0
, sizeof(uint16_t), CH_UTF16
));
15785 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15786 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
15788 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15789 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
15790 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15791 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
15792 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15793 ZERO_STRUCTP(r
->out
.return_authenticator
);
15794 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15795 ZERO_STRUCTP(r
->out
.password
);
15796 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15797 ZERO_STRUCTP(r
->out
.password2
);
15799 if (flags
& NDR_OUT
) {
15800 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15801 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15803 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15804 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
15805 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
15807 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15808 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15810 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15811 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
15812 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
15814 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15815 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15817 _mem_save_password2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15818 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password2
, LIBNDR_FLAG_REF_ALLOC
);
15819 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15820 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password2_0
, LIBNDR_FLAG_REF_ALLOC
);
15821 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15823 return NDR_ERR_SUCCESS
;
15826 _PUBLIC_
void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15828 ndr_print_struct(ndr
, name
, "netr_ServerTrustPasswordsGet");
15830 if (flags
& NDR_SET_VALUES
) {
15831 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15833 if (flags
& NDR_IN
) {
15834 ndr_print_struct(ndr
, "in", "netr_ServerTrustPasswordsGet");
15836 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15838 if (r
->in
.server_name
) {
15839 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15842 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
15843 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
15844 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15845 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
15847 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
15851 if (flags
& NDR_OUT
) {
15852 ndr_print_struct(ndr
, "out", "netr_ServerTrustPasswordsGet");
15854 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15856 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15858 ndr_print_ptr(ndr
, "password", r
->out
.password
);
15860 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
15862 ndr_print_ptr(ndr
, "password2", r
->out
.password2
);
15864 ndr_print_samr_Password(ndr
, "password2", r
->out
.password2
);
15866 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15872 static enum ndr_err_code
ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15874 if (flags
& NDR_IN
) {
15875 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15876 if (r
->in
.server_name
) {
15877 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15880 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15882 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.trusted_domain_name
));
15883 if (r
->in
.trusted_domain_name
) {
15884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15886 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15887 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.trusted_domain_name
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15891 if (flags
& NDR_OUT
) {
15892 if (r
->out
.forest_trust_info
== NULL
) {
15893 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15895 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
15896 if (*r
->out
.forest_trust_info
) {
15897 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15899 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15901 return NDR_ERR_SUCCESS
;
15904 static enum ndr_err_code
ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetForestTrustInformation
*r
)
15906 uint32_t _ptr_server_name
;
15907 uint32_t size_server_name_1
= 0;
15908 uint32_t length_server_name_1
= 0;
15909 uint32_t _ptr_trusted_domain_name
;
15910 uint32_t size_trusted_domain_name_1
= 0;
15911 uint32_t length_trusted_domain_name_1
= 0;
15912 uint32_t _ptr_forest_trust_info
;
15913 TALLOC_CTX
*_mem_save_server_name_0
;
15914 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
15915 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
15916 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
15917 if (flags
& NDR_IN
) {
15918 ZERO_STRUCT(r
->out
);
15920 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15921 if (_ptr_server_name
) {
15922 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15924 r
->in
.server_name
= NULL
;
15926 if (r
->in
.server_name
) {
15927 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15928 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15929 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15930 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15931 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
15932 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
15933 if (length_server_name_1
> size_server_name_1
) {
15934 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
15936 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
15937 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
15938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15940 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
15941 if (_ptr_trusted_domain_name
) {
15942 NDR_PULL_ALLOC(ndr
, r
->in
.trusted_domain_name
);
15944 r
->in
.trusted_domain_name
= NULL
;
15946 if (r
->in
.trusted_domain_name
) {
15947 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15948 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.trusted_domain_name
, 0);
15949 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
15950 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
15951 size_trusted_domain_name_1
= ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
);
15952 length_trusted_domain_name_1
= ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
);
15953 if (length_trusted_domain_name_1
> size_trusted_domain_name_1
) {
15954 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_trusted_domain_name_1
, length_trusted_domain_name_1
);
15956 NDR_CHECK(ndr_check_string_terminator(ndr
, length_trusted_domain_name_1
, sizeof(uint16_t)));
15957 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.trusted_domain_name
, length_trusted_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
15958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
15960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
15961 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15962 ZERO_STRUCTP(r
->out
.forest_trust_info
);
15964 if (flags
& NDR_OUT
) {
15965 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15966 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15968 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15969 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
15970 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
15971 if (_ptr_forest_trust_info
) {
15972 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
15974 *r
->out
.forest_trust_info
= NULL
;
15976 if (*r
->out
.forest_trust_info
) {
15977 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15978 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
15979 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
15982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
15983 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15985 return NDR_ERR_SUCCESS
;
15988 _PUBLIC_
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15990 ndr_print_struct(ndr
, name
, "netr_DsRGetForestTrustInformation");
15992 if (flags
& NDR_SET_VALUES
) {
15993 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15995 if (flags
& NDR_IN
) {
15996 ndr_print_struct(ndr
, "in", "netr_DsRGetForestTrustInformation");
15998 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16000 if (r
->in
.server_name
) {
16001 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16004 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16006 if (r
->in
.trusted_domain_name
) {
16007 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16010 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
16013 if (flags
& NDR_OUT
) {
16014 ndr_print_struct(ndr
, "out", "netr_DsRGetForestTrustInformation");
16016 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
16018 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16020 if (*r
->out
.forest_trust_info
) {
16021 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16025 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16031 static enum ndr_err_code
ndr_push_netr_GetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_GetForestTrustInformation
*r
)
16033 if (flags
& NDR_IN
) {
16034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16035 if (r
->in
.server_name
) {
16036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16039 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16041 if (r
->in
.trusted_domain_name
== NULL
) {
16042 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
16045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
16047 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.trusted_domain_name
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16048 if (r
->in
.credential
== NULL
) {
16049 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16051 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16052 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16054 if (flags
& NDR_OUT
) {
16055 if (r
->out
.return_authenticator
== NULL
) {
16056 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16058 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16059 if (r
->out
.forest_trust_info
== NULL
) {
16060 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16062 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
16063 if (*r
->out
.forest_trust_info
) {
16064 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16066 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
16068 return NDR_ERR_SUCCESS
;
16071 static enum ndr_err_code
ndr_pull_netr_GetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_GetForestTrustInformation
*r
)
16073 uint32_t _ptr_server_name
;
16074 uint32_t size_server_name_1
= 0;
16075 uint32_t length_server_name_1
= 0;
16076 uint32_t size_trusted_domain_name_1
= 0;
16077 uint32_t length_trusted_domain_name_1
= 0;
16078 uint32_t _ptr_forest_trust_info
;
16079 TALLOC_CTX
*_mem_save_server_name_0
;
16080 TALLOC_CTX
*_mem_save_credential_0
;
16081 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16082 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
16083 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
16084 if (flags
& NDR_IN
) {
16085 ZERO_STRUCT(r
->out
);
16087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16088 if (_ptr_server_name
) {
16089 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16091 r
->in
.server_name
= NULL
;
16093 if (r
->in
.server_name
) {
16094 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16095 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16096 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16097 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16098 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
16099 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
16100 if (length_server_name_1
> size_server_name_1
) {
16101 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
16103 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
16104 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
16105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
16108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
16109 size_trusted_domain_name_1
= ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
);
16110 length_trusted_domain_name_1
= ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
);
16111 if (length_trusted_domain_name_1
> size_trusted_domain_name_1
) {
16112 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_trusted_domain_name_1
, length_trusted_domain_name_1
);
16114 NDR_CHECK(ndr_check_string_terminator(ndr
, length_trusted_domain_name_1
, sizeof(uint16_t)));
16115 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.trusted_domain_name
, length_trusted_domain_name_1
, sizeof(uint16_t), CH_UTF16
));
16116 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16117 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16119 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16120 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16121 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16123 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
16124 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16125 ZERO_STRUCTP(r
->out
.return_authenticator
);
16126 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16127 ZERO_STRUCTP(r
->out
.forest_trust_info
);
16129 if (flags
& NDR_OUT
) {
16130 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16131 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16133 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16134 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16135 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16137 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16138 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16140 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16141 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
16143 if (_ptr_forest_trust_info
) {
16144 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
16146 *r
->out
.forest_trust_info
= NULL
;
16148 if (*r
->out
.forest_trust_info
) {
16149 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16150 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
16151 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
16154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16155 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
16157 return NDR_ERR_SUCCESS
;
16160 _PUBLIC_
void ndr_print_netr_GetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetForestTrustInformation
*r
)
16162 ndr_print_struct(ndr
, name
, "netr_GetForestTrustInformation");
16164 if (flags
& NDR_SET_VALUES
) {
16165 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16167 if (flags
& NDR_IN
) {
16168 ndr_print_struct(ndr
, "in", "netr_GetForestTrustInformation");
16170 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16172 if (r
->in
.server_name
) {
16173 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16176 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16178 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16180 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16182 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16184 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
16187 if (flags
& NDR_OUT
) {
16188 ndr_print_struct(ndr
, "out", "netr_GetForestTrustInformation");
16190 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16192 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16194 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
16196 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16198 if (*r
->out
.forest_trust_info
) {
16199 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16203 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16209 static enum ndr_err_code
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16211 if (flags
& NDR_IN
) {
16212 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16213 if (r
->in
.server_name
) {
16214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16217 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16219 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
16220 if (r
->in
.computer_name
) {
16221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16223 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16224 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16226 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
16227 if (r
->in
.credential
) {
16228 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16230 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
16231 if (r
->in
.return_authenticator
) {
16232 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16234 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
16235 if (r
->in
.logon
== NULL
) {
16236 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16238 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16239 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16240 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
16241 if (r
->in
.flags
== NULL
) {
16242 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
16246 if (flags
& NDR_OUT
) {
16247 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
16248 if (r
->out
.return_authenticator
) {
16249 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16251 if (r
->out
.validation
== NULL
) {
16252 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16254 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16255 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16256 if (r
->out
.authoritative
== NULL
) {
16257 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16259 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
16260 if (r
->out
.flags
== NULL
) {
16261 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
16264 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16266 return NDR_ERR_SUCCESS
;
16269 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
16271 uint32_t _ptr_server_name
;
16272 uint32_t size_server_name_1
= 0;
16273 uint32_t length_server_name_1
= 0;
16274 uint32_t _ptr_computer_name
;
16275 uint32_t size_computer_name_1
= 0;
16276 uint32_t length_computer_name_1
= 0;
16277 uint32_t _ptr_credential
;
16278 uint32_t _ptr_return_authenticator
;
16279 TALLOC_CTX
*_mem_save_server_name_0
;
16280 TALLOC_CTX
*_mem_save_computer_name_0
;
16281 TALLOC_CTX
*_mem_save_credential_0
;
16282 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16283 TALLOC_CTX
*_mem_save_logon_0
;
16284 TALLOC_CTX
*_mem_save_validation_0
;
16285 TALLOC_CTX
*_mem_save_authoritative_0
;
16286 TALLOC_CTX
*_mem_save_flags_0
;
16287 if (flags
& NDR_IN
) {
16288 ZERO_STRUCT(r
->out
);
16290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16291 if (_ptr_server_name
) {
16292 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16294 r
->in
.server_name
= NULL
;
16296 if (r
->in
.server_name
) {
16297 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16298 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16299 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16300 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16301 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
16302 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
16303 if (length_server_name_1
> size_server_name_1
) {
16304 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
16306 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
16307 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
16308 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16310 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
16311 if (_ptr_computer_name
) {
16312 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
16314 r
->in
.computer_name
= NULL
;
16316 if (r
->in
.computer_name
) {
16317 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16318 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
16319 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16320 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16321 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
16322 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
16323 if (length_computer_name_1
> size_computer_name_1
) {
16324 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
16326 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
16327 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
16328 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
16330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
16331 if (_ptr_credential
) {
16332 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16334 r
->in
.credential
= NULL
;
16336 if (r
->in
.credential
) {
16337 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16338 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
16339 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
16342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16343 if (_ptr_return_authenticator
) {
16344 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
16346 r
->in
.return_authenticator
= NULL
;
16348 if (r
->in
.return_authenticator
) {
16349 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16350 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
16351 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16354 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
16355 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16356 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
16358 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16359 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
16360 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16361 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
16363 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
16364 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16365 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
16367 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16368 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16369 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16371 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16372 ZERO_STRUCTP(r
->out
.validation
);
16373 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16374 ZERO_STRUCTP(r
->out
.authoritative
);
16375 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16376 *r
->out
.flags
= *r
->in
.flags
;
16378 if (flags
& NDR_OUT
) {
16379 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16380 if (_ptr_return_authenticator
) {
16381 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16383 r
->out
.return_authenticator
= NULL
;
16385 if (r
->out
.return_authenticator
) {
16386 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16387 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
16388 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16391 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16392 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16394 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16395 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
16396 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16397 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
16399 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16400 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16402 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16403 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
16404 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
16405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
16406 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16407 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16409 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16410 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
16412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16413 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16415 return NDR_ERR_SUCCESS
;
16418 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16420 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
16422 if (flags
& NDR_SET_VALUES
) {
16423 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16425 if (flags
& NDR_IN
) {
16426 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
16428 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16430 if (r
->in
.server_name
) {
16431 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16434 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16436 if (r
->in
.computer_name
) {
16437 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16440 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16442 if (r
->in
.credential
) {
16443 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16446 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16448 if (r
->in
.return_authenticator
) {
16449 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16452 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
16453 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
16455 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
16456 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
16458 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
16459 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
16461 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
16465 if (flags
& NDR_OUT
) {
16466 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
16468 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16470 if (r
->out
.return_authenticator
) {
16471 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16474 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
16476 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
16477 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
16479 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
16481 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
16483 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
16485 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
16487 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16493 static enum ndr_err_code
ndr_push_netr_ServerGetTrustInfo(struct ndr_push
*ndr
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16495 if (flags
& NDR_IN
) {
16496 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16497 if (r
->in
.server_name
) {
16498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16500 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16501 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16503 if (r
->in
.account_name
== NULL
) {
16504 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16509 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16510 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
16511 if (r
->in
.computer_name
== NULL
) {
16512 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16517 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16518 if (r
->in
.credential
== NULL
) {
16519 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16521 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16523 if (flags
& NDR_OUT
) {
16524 if (r
->out
.return_authenticator
== NULL
) {
16525 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16527 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16528 if (r
->out
.new_owf_password
== NULL
) {
16529 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16531 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16532 if (r
->out
.old_owf_password
== NULL
) {
16533 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16535 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16536 if (r
->out
.trust_info
== NULL
) {
16537 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16539 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.trust_info
));
16540 if (*r
->out
.trust_info
) {
16541 NDR_CHECK(ndr_push_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16543 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16545 return NDR_ERR_SUCCESS
;
16548 static enum ndr_err_code
ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull
*ndr
, int flags
, struct netr_ServerGetTrustInfo
*r
)
16550 uint32_t _ptr_server_name
;
16551 uint32_t size_server_name_1
= 0;
16552 uint32_t length_server_name_1
= 0;
16553 uint32_t size_account_name_1
= 0;
16554 uint32_t length_account_name_1
= 0;
16555 uint32_t size_computer_name_1
= 0;
16556 uint32_t length_computer_name_1
= 0;
16557 uint32_t _ptr_trust_info
;
16558 TALLOC_CTX
*_mem_save_server_name_0
;
16559 TALLOC_CTX
*_mem_save_credential_0
;
16560 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16561 TALLOC_CTX
*_mem_save_new_owf_password_0
;
16562 TALLOC_CTX
*_mem_save_old_owf_password_0
;
16563 TALLOC_CTX
*_mem_save_trust_info_0
;
16564 TALLOC_CTX
*_mem_save_trust_info_1
;
16565 if (flags
& NDR_IN
) {
16566 ZERO_STRUCT(r
->out
);
16568 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16569 if (_ptr_server_name
) {
16570 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16572 r
->in
.server_name
= NULL
;
16574 if (r
->in
.server_name
) {
16575 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16576 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16577 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16578 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16579 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
16580 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
16581 if (length_server_name_1
> size_server_name_1
) {
16582 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
16584 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
16585 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
16586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16588 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
16589 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
16590 size_account_name_1
= ndr_get_array_size(ndr
, &r
->in
.account_name
);
16591 length_account_name_1
= ndr_get_array_length(ndr
, &r
->in
.account_name
);
16592 if (length_account_name_1
> size_account_name_1
) {
16593 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_1
, length_account_name_1
);
16595 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_1
, sizeof(uint16_t)));
16596 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, length_account_name_1
, sizeof(uint16_t), CH_UTF16
));
16597 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
16598 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16599 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16600 size_computer_name_1
= ndr_get_array_size(ndr
, &r
->in
.computer_name
);
16601 length_computer_name_1
= ndr_get_array_length(ndr
, &r
->in
.computer_name
);
16602 if (length_computer_name_1
> size_computer_name_1
) {
16603 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_1
, length_computer_name_1
);
16605 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_1
, sizeof(uint16_t)));
16606 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, length_computer_name_1
, sizeof(uint16_t), CH_UTF16
));
16607 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16608 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16610 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16611 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16612 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16613 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16614 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16615 ZERO_STRUCTP(r
->out
.return_authenticator
);
16616 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16617 ZERO_STRUCTP(r
->out
.new_owf_password
);
16618 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16619 ZERO_STRUCTP(r
->out
.old_owf_password
);
16620 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16621 ZERO_STRUCTP(r
->out
.trust_info
);
16623 if (flags
& NDR_OUT
) {
16624 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16625 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16627 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16628 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16629 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16630 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16631 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16632 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16634 _mem_save_new_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16635 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16636 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16638 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16639 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16641 _mem_save_old_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16642 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.old_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16643 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16645 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16646 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16648 _mem_save_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16649 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trust_info
));
16651 if (_ptr_trust_info
) {
16652 NDR_PULL_ALLOC(ndr
, *r
->out
.trust_info
);
16654 *r
->out
.trust_info
= NULL
;
16656 if (*r
->out
.trust_info
) {
16657 _mem_save_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16658 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.trust_info
, 0);
16659 NDR_CHECK(ndr_pull_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_1
, 0);
16662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16663 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16665 return NDR_ERR_SUCCESS
;
16668 _PUBLIC_
void ndr_print_netr_ServerGetTrustInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16670 ndr_print_struct(ndr
, name
, "netr_ServerGetTrustInfo");
16672 if (flags
& NDR_SET_VALUES
) {
16673 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16675 if (flags
& NDR_IN
) {
16676 ndr_print_struct(ndr
, "in", "netr_ServerGetTrustInfo");
16678 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16680 if (r
->in
.server_name
) {
16681 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16684 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
16686 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
16688 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
16689 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16691 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16693 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16695 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16699 if (flags
& NDR_OUT
) {
16700 ndr_print_struct(ndr
, "out", "netr_ServerGetTrustInfo");
16702 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16704 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16706 ndr_print_ptr(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16708 ndr_print_samr_Password(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16710 ndr_print_ptr(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16712 ndr_print_samr_Password(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16714 ndr_print_ptr(ndr
, "trust_info", r
->out
.trust_info
);
16716 ndr_print_ptr(ndr
, "trust_info", *r
->out
.trust_info
);
16718 if (*r
->out
.trust_info
) {
16719 ndr_print_netr_TrustInfo(ndr
, "trust_info", *r
->out
.trust_info
);
16723 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16729 static const struct ndr_interface_call netlogon_calls
[] = {
16731 "netr_LogonUasLogon",
16732 sizeof(struct netr_LogonUasLogon
),
16733 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
16734 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
16735 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
16739 "netr_LogonUasLogoff",
16740 sizeof(struct netr_LogonUasLogoff
),
16741 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
16742 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
16743 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
16747 "netr_LogonSamLogon",
16748 sizeof(struct netr_LogonSamLogon
),
16749 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
16750 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
16751 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
16755 "netr_LogonSamLogoff",
16756 sizeof(struct netr_LogonSamLogoff
),
16757 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
16758 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
16759 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
16763 "netr_ServerReqChallenge",
16764 sizeof(struct netr_ServerReqChallenge
),
16765 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
16766 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
16767 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
16771 "netr_ServerAuthenticate",
16772 sizeof(struct netr_ServerAuthenticate
),
16773 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
16774 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
16775 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
16779 "netr_ServerPasswordSet",
16780 sizeof(struct netr_ServerPasswordSet
),
16781 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
16782 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
16783 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
16787 "netr_DatabaseDeltas",
16788 sizeof(struct netr_DatabaseDeltas
),
16789 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
16790 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
16791 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
16795 "netr_DatabaseSync",
16796 sizeof(struct netr_DatabaseSync
),
16797 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
16798 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
16799 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
16803 "netr_AccountDeltas",
16804 sizeof(struct netr_AccountDeltas
),
16805 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
16806 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
16807 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
16811 "netr_AccountSync",
16812 sizeof(struct netr_AccountSync
),
16813 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
16814 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
16815 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
16820 sizeof(struct netr_GetDcName
),
16821 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
16822 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
16823 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
16827 "netr_LogonControl",
16828 sizeof(struct netr_LogonControl
),
16829 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
16830 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
16831 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
16835 "netr_GetAnyDCName",
16836 sizeof(struct netr_GetAnyDCName
),
16837 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
16838 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
16839 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
16843 "netr_LogonControl2",
16844 sizeof(struct netr_LogonControl2
),
16845 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
16846 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
16847 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
16851 "netr_ServerAuthenticate2",
16852 sizeof(struct netr_ServerAuthenticate2
),
16853 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
16854 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
16855 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
16859 "netr_DatabaseSync2",
16860 sizeof(struct netr_DatabaseSync2
),
16861 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
16862 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
16863 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
16867 "netr_DatabaseRedo",
16868 sizeof(struct netr_DatabaseRedo
),
16869 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
16870 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
16871 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
16875 "netr_LogonControl2Ex",
16876 sizeof(struct netr_LogonControl2Ex
),
16877 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
16878 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
16879 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
16883 "netr_NetrEnumerateTrustedDomains",
16884 sizeof(struct netr_NetrEnumerateTrustedDomains
),
16885 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomains
,
16886 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomains
,
16887 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomains
,
16891 "netr_DsRGetDCName",
16892 sizeof(struct netr_DsRGetDCName
),
16893 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
16894 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
16895 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
16899 "netr_LogonGetCapabilities",
16900 sizeof(struct netr_LogonGetCapabilities
),
16901 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetCapabilities
,
16902 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetCapabilities
,
16903 (ndr_print_function_t
) ndr_print_netr_LogonGetCapabilities
,
16907 "netr_NETRLOGONSETSERVICEBITS",
16908 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
16909 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
16910 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
16911 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
16915 "netr_LogonGetTrustRid",
16916 sizeof(struct netr_LogonGetTrustRid
),
16917 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetTrustRid
,
16918 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetTrustRid
,
16919 (ndr_print_function_t
) ndr_print_netr_LogonGetTrustRid
,
16923 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16924 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
16925 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16926 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16927 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16931 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16932 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
16933 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16934 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16935 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16939 "netr_ServerAuthenticate3",
16940 sizeof(struct netr_ServerAuthenticate3
),
16941 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
16942 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
16943 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
16947 "netr_DsRGetDCNameEx",
16948 sizeof(struct netr_DsRGetDCNameEx
),
16949 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
16950 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
16951 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
16955 "netr_DsRGetSiteName",
16956 sizeof(struct netr_DsRGetSiteName
),
16957 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
16958 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
16959 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
16963 "netr_LogonGetDomainInfo",
16964 sizeof(struct netr_LogonGetDomainInfo
),
16965 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
16966 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
16967 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
16971 "netr_ServerPasswordSet2",
16972 sizeof(struct netr_ServerPasswordSet2
),
16973 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
16974 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
16975 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
16979 "netr_ServerPasswordGet",
16980 sizeof(struct netr_ServerPasswordGet
),
16981 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordGet
,
16982 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordGet
,
16983 (ndr_print_function_t
) ndr_print_netr_ServerPasswordGet
,
16987 "netr_NETRLOGONSENDTOSAM",
16988 sizeof(struct netr_NETRLOGONSENDTOSAM
),
16989 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
16990 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
16991 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
16995 "netr_DsRAddressToSitenamesW",
16996 sizeof(struct netr_DsRAddressToSitenamesW
),
16997 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesW
,
16998 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesW
,
16999 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesW
,
17003 "netr_DsRGetDCNameEx2",
17004 sizeof(struct netr_DsRGetDCNameEx2
),
17005 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
17006 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
17007 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
17011 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
17012 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
17013 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
17014 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
17015 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
17019 "netr_NetrEnumerateTrustedDomainsEx",
17020 sizeof(struct netr_NetrEnumerateTrustedDomainsEx
),
17021 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomainsEx
,
17022 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomainsEx
,
17023 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomainsEx
,
17027 "netr_DsRAddressToSitenamesExW",
17028 sizeof(struct netr_DsRAddressToSitenamesExW
),
17029 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesExW
,
17030 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesExW
,
17031 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesExW
,
17035 "netr_DsrGetDcSiteCoverageW",
17036 sizeof(struct netr_DsrGetDcSiteCoverageW
),
17037 (ndr_push_flags_fn_t
) ndr_push_netr_DsrGetDcSiteCoverageW
,
17038 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrGetDcSiteCoverageW
,
17039 (ndr_print_function_t
) ndr_print_netr_DsrGetDcSiteCoverageW
,
17043 "netr_LogonSamLogonEx",
17044 sizeof(struct netr_LogonSamLogonEx
),
17045 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
17046 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
17047 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
17051 "netr_DsrEnumerateDomainTrusts",
17052 sizeof(struct netr_DsrEnumerateDomainTrusts
),
17053 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
17054 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
17055 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
17059 "netr_DsrDeregisterDNSHostRecords",
17060 sizeof(struct netr_DsrDeregisterDNSHostRecords
),
17061 (ndr_push_flags_fn_t
) ndr_push_netr_DsrDeregisterDNSHostRecords
,
17062 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrDeregisterDNSHostRecords
,
17063 (ndr_print_function_t
) ndr_print_netr_DsrDeregisterDNSHostRecords
,
17067 "netr_ServerTrustPasswordsGet",
17068 sizeof(struct netr_ServerTrustPasswordsGet
),
17069 (ndr_push_flags_fn_t
) ndr_push_netr_ServerTrustPasswordsGet
,
17070 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerTrustPasswordsGet
,
17071 (ndr_print_function_t
) ndr_print_netr_ServerTrustPasswordsGet
,
17075 "netr_DsRGetForestTrustInformation",
17076 sizeof(struct netr_DsRGetForestTrustInformation
),
17077 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetForestTrustInformation
,
17078 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetForestTrustInformation
,
17079 (ndr_print_function_t
) ndr_print_netr_DsRGetForestTrustInformation
,
17083 "netr_GetForestTrustInformation",
17084 sizeof(struct netr_GetForestTrustInformation
),
17085 (ndr_push_flags_fn_t
) ndr_push_netr_GetForestTrustInformation
,
17086 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetForestTrustInformation
,
17087 (ndr_print_function_t
) ndr_print_netr_GetForestTrustInformation
,
17091 "netr_LogonSamLogonWithFlags",
17092 sizeof(struct netr_LogonSamLogonWithFlags
),
17093 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
17094 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
17095 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
17099 "netr_ServerGetTrustInfo",
17100 sizeof(struct netr_ServerGetTrustInfo
),
17101 (ndr_push_flags_fn_t
) ndr_push_netr_ServerGetTrustInfo
,
17102 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerGetTrustInfo
,
17103 (ndr_print_function_t
) ndr_print_netr_ServerGetTrustInfo
,
17106 { NULL
, 0, NULL
, NULL
, NULL
, false }
17109 static const char * const netlogon_endpoint_strings
[] = {
17110 "ncacn_np:[\\pipe\\netlogon]",
17115 static const struct ndr_interface_string_array netlogon_endpoints
= {
17117 .names
= netlogon_endpoint_strings
17120 static const char * const netlogon_authservice_strings
[] = {
17124 static const struct ndr_interface_string_array netlogon_authservices
= {
17126 .names
= netlogon_authservice_strings
17130 const struct ndr_interface_table ndr_table_netlogon
= {
17131 .name
= "netlogon",
17133 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
17134 NDR_NETLOGON_VERSION
17136 .helpstring
= NDR_NETLOGON_HELPSTRING
,
17138 .calls
= netlogon_calls
,
17139 .endpoints
= &netlogon_endpoints
,
17140 .authservices
= &netlogon_authservices