1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_netlogon.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 #include "librpc/gen_ndr/ndr_nbt.h"
10 static enum ndr_err_code
ndr_push_netr_UasInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasInfo
*r
)
12 if (ndr_flags
& NDR_SCALARS
) {
13 NDR_CHECK(ndr_push_align(ndr
, 4));
14 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
15 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priv
));
16 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_flags
));
17 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_count
));
18 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_pw_count
));
19 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logon
));
20 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logoff
));
21 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->logoff_time
));
22 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->kickoff_time
));
23 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->password_age
));
24 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_can_change
));
25 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_must_change
));
26 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer
));
27 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
28 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->script_path
));
29 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
31 if (ndr_flags
& NDR_BUFFERS
) {
32 if (r
->account_name
) {
33 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
34 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
35 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
36 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
39 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
40 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
41 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
42 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer
, ndr_charset_length(r
->computer
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
45 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
46 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
47 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
48 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
51 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
53 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
54 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->script_path
, ndr_charset_length(r
->script_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
57 return NDR_ERR_SUCCESS
;
60 static enum ndr_err_code
ndr_pull_netr_UasInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasInfo
*r
)
62 uint32_t _ptr_account_name
;
63 TALLOC_CTX
*_mem_save_account_name_0
;
64 uint32_t _ptr_computer
;
65 TALLOC_CTX
*_mem_save_computer_0
;
67 TALLOC_CTX
*_mem_save_domain_0
;
68 uint32_t _ptr_script_path
;
69 TALLOC_CTX
*_mem_save_script_path_0
;
70 if (ndr_flags
& NDR_SCALARS
) {
71 NDR_CHECK(ndr_pull_align(ndr
, 4));
72 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
73 if (_ptr_account_name
) {
74 NDR_PULL_ALLOC(ndr
, r
->account_name
);
76 r
->account_name
= NULL
;
78 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priv
));
79 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_flags
));
80 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_count
));
81 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_pw_count
));
82 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logon
));
83 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logoff
));
84 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->logoff_time
));
85 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->kickoff_time
));
86 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->password_age
));
87 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_can_change
));
88 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_must_change
));
89 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer
));
91 NDR_PULL_ALLOC(ndr
, r
->computer
);
95 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
97 NDR_PULL_ALLOC(ndr
, r
->domain
);
101 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_script_path
));
102 if (_ptr_script_path
) {
103 NDR_PULL_ALLOC(ndr
, r
->script_path
);
105 r
->script_path
= NULL
;
107 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
109 if (ndr_flags
& NDR_BUFFERS
) {
110 if (r
->account_name
) {
111 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
112 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
113 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
114 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
115 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
116 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->account_name
), ndr_get_array_length(ndr
, &r
->account_name
));
118 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
119 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
123 _mem_save_computer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
124 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer
, 0);
125 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer
));
126 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer
));
127 if (ndr_get_array_length(ndr
, &r
->computer
) > ndr_get_array_size(ndr
, &r
->computer
)) {
128 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->computer
), ndr_get_array_length(ndr
, &r
->computer
));
130 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t)));
131 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t), CH_UTF16
));
132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_0
, 0);
135 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
136 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
137 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
138 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
139 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
140 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
142 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
143 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
146 if (r
->script_path
) {
147 _mem_save_script_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
148 NDR_PULL_SET_MEM_CTX(ndr
, r
->script_path
, 0);
149 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->script_path
));
150 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->script_path
));
151 if (ndr_get_array_length(ndr
, &r
->script_path
) > ndr_get_array_size(ndr
, &r
->script_path
)) {
152 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->script_path
), ndr_get_array_length(ndr
, &r
->script_path
));
154 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t)));
155 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->script_path
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t), CH_UTF16
));
156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_script_path_0
, 0);
159 return NDR_ERR_SUCCESS
;
162 _PUBLIC_
void ndr_print_netr_UasInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasInfo
*r
)
164 ndr_print_struct(ndr
, name
, "netr_UasInfo");
166 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
168 if (r
->account_name
) {
169 ndr_print_string(ndr
, "account_name", r
->account_name
);
172 ndr_print_uint32(ndr
, "priv", r
->priv
);
173 ndr_print_uint32(ndr
, "auth_flags", r
->auth_flags
);
174 ndr_print_uint32(ndr
, "logon_count", r
->logon_count
);
175 ndr_print_uint32(ndr
, "bad_pw_count", r
->bad_pw_count
);
176 ndr_print_time_t(ndr
, "last_logon", r
->last_logon
);
177 ndr_print_time_t(ndr
, "last_logoff", r
->last_logoff
);
178 ndr_print_time_t(ndr
, "logoff_time", r
->logoff_time
);
179 ndr_print_time_t(ndr
, "kickoff_time", r
->kickoff_time
);
180 ndr_print_uint32(ndr
, "password_age", r
->password_age
);
181 ndr_print_time_t(ndr
, "pw_can_change", r
->pw_can_change
);
182 ndr_print_time_t(ndr
, "pw_must_change", r
->pw_must_change
);
183 ndr_print_ptr(ndr
, "computer", r
->computer
);
186 ndr_print_string(ndr
, "computer", r
->computer
);
189 ndr_print_ptr(ndr
, "domain", r
->domain
);
192 ndr_print_string(ndr
, "domain", r
->domain
);
195 ndr_print_ptr(ndr
, "script_path", r
->script_path
);
197 if (r
->script_path
) {
198 ndr_print_string(ndr
, "script_path", r
->script_path
);
201 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
205 static enum ndr_err_code
ndr_push_netr_UasLogoffInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasLogoffInfo
*r
)
207 if (ndr_flags
& NDR_SCALARS
) {
208 NDR_CHECK(ndr_push_align(ndr
, 4));
209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->duration
));
210 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
212 if (ndr_flags
& NDR_BUFFERS
) {
214 return NDR_ERR_SUCCESS
;
217 static enum ndr_err_code
ndr_pull_netr_UasLogoffInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasLogoffInfo
*r
)
219 if (ndr_flags
& NDR_SCALARS
) {
220 NDR_CHECK(ndr_pull_align(ndr
, 4));
221 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->duration
));
222 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
224 if (ndr_flags
& NDR_BUFFERS
) {
226 return NDR_ERR_SUCCESS
;
229 _PUBLIC_
void ndr_print_netr_UasLogoffInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasLogoffInfo
*r
)
231 ndr_print_struct(ndr
, name
, "netr_UasLogoffInfo");
233 ndr_print_uint32(ndr
, "duration", r
->duration
);
234 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
238 _PUBLIC_
enum ndr_err_code
ndr_push_netr_AcctLockStr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AcctLockStr
*r
)
240 if (ndr_flags
& NDR_SCALARS
) {
241 NDR_CHECK(ndr_push_align(ndr
, 4));
242 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->lockout_duration
));
243 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reset_count
));
244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_attempt_lockout
));
245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
));
247 if (ndr_flags
& NDR_BUFFERS
) {
249 return NDR_ERR_SUCCESS
;
252 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_AcctLockStr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AcctLockStr
*r
)
254 if (ndr_flags
& NDR_SCALARS
) {
255 NDR_CHECK(ndr_pull_align(ndr
, 4));
256 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->lockout_duration
));
257 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reset_count
));
258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_attempt_lockout
));
259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
261 if (ndr_flags
& NDR_BUFFERS
) {
263 return NDR_ERR_SUCCESS
;
266 _PUBLIC_
void ndr_print_netr_AcctLockStr(struct ndr_print
*ndr
, const char *name
, const struct netr_AcctLockStr
*r
)
268 ndr_print_struct(ndr
, name
, "netr_AcctLockStr");
270 ndr_print_dlong(ndr
, "lockout_duration", r
->lockout_duration
);
271 ndr_print_udlong(ndr
, "reset_count", r
->reset_count
);
272 ndr_print_uint32(ndr
, "bad_attempt_lockout", r
->bad_attempt_lockout
);
273 ndr_print_uint32(ndr
, "dummy", r
->dummy
);
277 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonParameterControl(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
280 return NDR_ERR_SUCCESS
;
283 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonParameterControl(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
288 return NDR_ERR_SUCCESS
;
291 _PUBLIC_
void ndr_print_netr_LogonParameterControl(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
293 ndr_print_uint32(ndr
, name
, r
);
295 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
, r
);
304 static enum ndr_err_code
ndr_push_netr_IdentityInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_IdentityInfo
*r
)
306 if (ndr_flags
& NDR_SCALARS
) {
307 NDR_CHECK(ndr_push_align(ndr
, 4));
308 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
309 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr
, NDR_SCALARS
, r
->parameter_control
));
310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_low
));
311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_high
));
312 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
313 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
315 if (ndr_flags
& NDR_BUFFERS
) {
316 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
317 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
318 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
320 return NDR_ERR_SUCCESS
;
323 static enum ndr_err_code
ndr_pull_netr_IdentityInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_IdentityInfo
*r
)
325 if (ndr_flags
& NDR_SCALARS
) {
326 NDR_CHECK(ndr_pull_align(ndr
, 4));
327 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
328 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr
, NDR_SCALARS
, &r
->parameter_control
));
329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_low
));
330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_high
));
331 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
332 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
334 if (ndr_flags
& NDR_BUFFERS
) {
335 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
336 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
337 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
339 return NDR_ERR_SUCCESS
;
342 _PUBLIC_
void ndr_print_netr_IdentityInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_IdentityInfo
*r
)
344 ndr_print_struct(ndr
, name
, "netr_IdentityInfo");
346 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
347 ndr_print_netr_LogonParameterControl(ndr
, "parameter_control", r
->parameter_control
);
348 ndr_print_uint32(ndr
, "logon_id_low", r
->logon_id_low
);
349 ndr_print_uint32(ndr
, "logon_id_high", r
->logon_id_high
);
350 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
351 ndr_print_lsa_String(ndr
, "workstation", &r
->workstation
);
355 static enum ndr_err_code
ndr_push_netr_PasswordInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordInfo
*r
)
357 if (ndr_flags
& NDR_SCALARS
) {
358 NDR_CHECK(ndr_push_align(ndr
, 4));
359 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
360 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
361 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
363 if (ndr_flags
& NDR_BUFFERS
) {
364 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
365 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
366 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
368 return NDR_ERR_SUCCESS
;
371 static enum ndr_err_code
ndr_pull_netr_PasswordInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordInfo
*r
)
373 if (ndr_flags
& NDR_SCALARS
) {
374 NDR_CHECK(ndr_pull_align(ndr
, 4));
375 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
376 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
377 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
379 if (ndr_flags
& NDR_BUFFERS
) {
380 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
381 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
382 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
384 return NDR_ERR_SUCCESS
;
387 _PUBLIC_
void ndr_print_netr_PasswordInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordInfo
*r
)
389 ndr_print_struct(ndr
, name
, "netr_PasswordInfo");
391 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
392 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
393 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
397 static enum ndr_err_code
ndr_push_netr_ChallengeResponse(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChallengeResponse
*r
)
400 uint32_t _flags_save_STRUCT
= ndr
->flags
;
401 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
402 if (ndr_flags
& NDR_SCALARS
) {
403 NDR_CHECK(ndr_push_align(ndr
, 4));
404 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
405 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
406 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
408 if (ndr_flags
& NDR_BUFFERS
) {
410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
413 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
416 ndr
->flags
= _flags_save_STRUCT
;
418 return NDR_ERR_SUCCESS
;
421 static enum ndr_err_code
ndr_pull_netr_ChallengeResponse(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChallengeResponse
*r
)
424 TALLOC_CTX
*_mem_save_data_0
;
426 uint32_t _flags_save_STRUCT
= ndr
->flags
;
427 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
428 if (ndr_flags
& NDR_SCALARS
) {
429 NDR_CHECK(ndr_pull_align(ndr
, 4));
430 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
431 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
432 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
434 NDR_PULL_ALLOC(ndr
, r
->data
);
439 if (ndr_flags
& NDR_BUFFERS
) {
441 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
442 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
443 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
444 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
445 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
446 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data
), ndr_get_array_length(ndr
, &r
->data
));
448 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
449 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_length(ndr
, &r
->data
)));
450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
453 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
456 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
));
459 ndr
->flags
= _flags_save_STRUCT
;
461 return NDR_ERR_SUCCESS
;
464 _PUBLIC_
void ndr_print_netr_ChallengeResponse(struct ndr_print
*ndr
, const char *name
, const struct netr_ChallengeResponse
*r
)
466 ndr_print_struct(ndr
, name
, "netr_ChallengeResponse");
468 uint32_t _flags_save_STRUCT
= ndr
->flags
;
469 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
471 ndr_print_uint16(ndr
, "length", r
->length
);
472 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
473 ndr_print_ptr(ndr
, "data", r
->data
);
476 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
480 ndr
->flags
= _flags_save_STRUCT
;
484 static enum ndr_err_code
ndr_push_netr_NetworkInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NetworkInfo
*r
)
487 uint32_t _flags_save_STRUCT
= ndr
->flags
;
488 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
489 if (ndr_flags
& NDR_SCALARS
) {
490 NDR_CHECK(ndr_push_align(ndr
, 4));
491 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
492 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
493 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
494 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
496 if (ndr_flags
& NDR_BUFFERS
) {
497 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
498 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
499 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
501 ndr
->flags
= _flags_save_STRUCT
;
503 return NDR_ERR_SUCCESS
;
506 static enum ndr_err_code
ndr_pull_netr_NetworkInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NetworkInfo
*r
)
509 uint32_t _flags_save_STRUCT
= ndr
->flags
;
510 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
511 if (ndr_flags
& NDR_SCALARS
) {
512 NDR_CHECK(ndr_pull_align(ndr
, 4));
513 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
514 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
515 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
516 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
518 if (ndr_flags
& NDR_BUFFERS
) {
519 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
520 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
521 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
523 ndr
->flags
= _flags_save_STRUCT
;
525 return NDR_ERR_SUCCESS
;
528 _PUBLIC_
void ndr_print_netr_NetworkInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_NetworkInfo
*r
)
530 ndr_print_struct(ndr
, name
, "netr_NetworkInfo");
532 uint32_t _flags_save_STRUCT
= ndr
->flags
;
533 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
535 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
536 ndr_print_array_uint8(ndr
, "challenge", r
->challenge
, 8);
537 ndr_print_netr_ChallengeResponse(ndr
, "nt", &r
->nt
);
538 ndr_print_netr_ChallengeResponse(ndr
, "lm", &r
->lm
);
540 ndr
->flags
= _flags_save_STRUCT
;
544 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_LogonInfo
*r
)
546 if (ndr_flags
& NDR_SCALARS
) {
547 int level
= ndr_push_get_switch_value(ndr
, r
);
548 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
551 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
555 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
563 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
567 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
571 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
574 if (ndr_flags
& NDR_BUFFERS
) {
575 int level
= ndr_push_get_switch_value(ndr
, r
);
579 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
585 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
591 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
597 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
603 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
608 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
611 return NDR_ERR_SUCCESS
;
614 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_LogonInfo
*r
)
618 TALLOC_CTX
*_mem_save_password_0
;
619 TALLOC_CTX
*_mem_save_network_0
;
620 level
= ndr_pull_get_switch_value(ndr
, r
);
621 if (ndr_flags
& NDR_SCALARS
) {
622 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
623 if (_level
!= level
) {
624 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
628 uint32_t _ptr_password
;
629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
631 NDR_PULL_ALLOC(ndr
, r
->password
);
638 uint32_t _ptr_network
;
639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
641 NDR_PULL_ALLOC(ndr
, r
->network
);
648 uint32_t _ptr_password
;
649 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
651 NDR_PULL_ALLOC(ndr
, r
->password
);
658 uint32_t _ptr_password
;
659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
661 NDR_PULL_ALLOC(ndr
, r
->password
);
668 uint32_t _ptr_network
;
669 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
671 NDR_PULL_ALLOC(ndr
, r
->network
);
678 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
681 if (ndr_flags
& NDR_BUFFERS
) {
685 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
686 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
687 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
694 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
695 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
696 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
697 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
703 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
704 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
705 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
706 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
712 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
713 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
714 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
721 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
722 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
723 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
729 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
732 return NDR_ERR_SUCCESS
;
735 _PUBLIC_
void ndr_print_netr_LogonInfo(struct ndr_print
*ndr
, const char *name
, const union netr_LogonInfo
*r
)
738 level
= ndr_print_get_switch_value(ndr
, r
);
739 ndr_print_union(ndr
, name
, level
, "netr_LogonInfo");
742 ndr_print_ptr(ndr
, "password", r
->password
);
745 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
751 ndr_print_ptr(ndr
, "network", r
->network
);
754 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
760 ndr_print_ptr(ndr
, "password", r
->password
);
763 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
769 ndr_print_ptr(ndr
, "password", r
->password
);
772 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
778 ndr_print_ptr(ndr
, "network", r
->network
);
781 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
787 ndr_print_bad_level(ndr
, name
, level
);
791 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UserSessionKey
*r
)
794 uint32_t _flags_save_STRUCT
= ndr
->flags
;
795 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
796 if (ndr_flags
& NDR_SCALARS
) {
797 NDR_CHECK(ndr_push_align(ndr
, 1));
798 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
800 if (ndr_flags
& NDR_BUFFERS
) {
802 ndr
->flags
= _flags_save_STRUCT
;
804 return NDR_ERR_SUCCESS
;
807 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UserSessionKey
*r
)
810 uint32_t _flags_save_STRUCT
= ndr
->flags
;
811 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
812 if (ndr_flags
& NDR_SCALARS
) {
813 NDR_CHECK(ndr_pull_align(ndr
, 1));
814 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
816 if (ndr_flags
& NDR_BUFFERS
) {
818 ndr
->flags
= _flags_save_STRUCT
;
820 return NDR_ERR_SUCCESS
;
823 _PUBLIC_
void ndr_print_netr_UserSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_UserSessionKey
*r
)
825 ndr_print_struct(ndr
, name
, "netr_UserSessionKey");
827 uint32_t _flags_save_STRUCT
= ndr
->flags
;
828 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
830 ndr_print_array_uint8(ndr
, "key", r
->key
, 16);
832 ndr
->flags
= _flags_save_STRUCT
;
836 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LMSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LMSessionKey
*r
)
839 uint32_t _flags_save_STRUCT
= ndr
->flags
;
840 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
841 if (ndr_flags
& NDR_SCALARS
) {
842 NDR_CHECK(ndr_push_align(ndr
, 1));
843 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
845 if (ndr_flags
& NDR_BUFFERS
) {
847 ndr
->flags
= _flags_save_STRUCT
;
849 return NDR_ERR_SUCCESS
;
852 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LMSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LMSessionKey
*r
)
855 uint32_t _flags_save_STRUCT
= ndr
->flags
;
856 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
857 if (ndr_flags
& NDR_SCALARS
) {
858 NDR_CHECK(ndr_pull_align(ndr
, 1));
859 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
861 if (ndr_flags
& NDR_BUFFERS
) {
863 ndr
->flags
= _flags_save_STRUCT
;
865 return NDR_ERR_SUCCESS
;
868 _PUBLIC_
void ndr_print_netr_LMSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_LMSessionKey
*r
)
870 ndr_print_struct(ndr
, name
, "netr_LMSessionKey");
872 uint32_t _flags_save_STRUCT
= ndr
->flags
;
873 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
875 ndr_print_array_uint8(ndr
, "key", r
->key
, 8);
877 ndr
->flags
= _flags_save_STRUCT
;
881 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
883 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
884 return NDR_ERR_SUCCESS
;
887 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
890 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
892 return NDR_ERR_SUCCESS
;
895 _PUBLIC_
void ndr_print_netr_UserFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
897 ndr_print_uint32(ndr
, name
, r
);
899 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST
, r
);
900 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION
, r
);
901 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT
, r
);
902 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD
, r
);
903 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS
, r
);
904 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY
, r
);
905 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT
, r
);
906 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED
, r
);
907 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS
, r
);
908 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED
, r
);
909 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON
, r
);
913 static enum ndr_err_code
ndr_push_netr_SamBaseInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamBaseInfo
*r
)
915 uint32_t cntr_unknown_0
;
916 if (ndr_flags
& NDR_SCALARS
) {
917 NDR_CHECK(ndr_push_align(ndr
, 4));
918 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
919 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
920 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
921 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
922 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
923 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
924 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
925 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
926 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
927 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
928 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
929 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
930 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
931 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
934 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
935 NDR_CHECK(ndr_push_netr_UserFlags(ndr
, NDR_SCALARS
, r
->user_flags
));
936 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
937 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
938 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
939 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
940 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
941 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
942 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
946 if (ndr_flags
& NDR_BUFFERS
) {
947 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
948 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
949 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
950 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
951 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
952 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
953 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
954 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
955 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
957 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
960 return NDR_ERR_SUCCESS
;
963 static enum ndr_err_code
ndr_pull_netr_SamBaseInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamBaseInfo
*r
)
965 uint32_t _ptr_domain_sid
;
966 TALLOC_CTX
*_mem_save_domain_sid_0
;
967 uint32_t cntr_unknown_0
;
968 if (ndr_flags
& NDR_SCALARS
) {
969 NDR_CHECK(ndr_pull_align(ndr
, 4));
970 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
971 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
972 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
973 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
974 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
975 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
976 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
977 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
978 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
979 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
980 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
981 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
982 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
983 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
984 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
985 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
986 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
987 NDR_CHECK(ndr_pull_netr_UserFlags(ndr
, NDR_SCALARS
, &r
->user_flags
));
988 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
989 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
990 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
991 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
992 if (_ptr_domain_sid
) {
993 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
995 r
->domain_sid
= NULL
;
997 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
998 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
999 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1000 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
1003 if (ndr_flags
& NDR_BUFFERS
) {
1004 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1005 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1006 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1007 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1008 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1009 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1010 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1011 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1012 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1013 if (r
->domain_sid
) {
1014 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1015 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
1016 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
1020 return NDR_ERR_SUCCESS
;
1023 _PUBLIC_
void ndr_print_netr_SamBaseInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_SamBaseInfo
*r
)
1025 uint32_t cntr_unknown_0
;
1026 ndr_print_struct(ndr
, name
, "netr_SamBaseInfo");
1028 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
1029 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
1030 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
1031 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
1032 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
1033 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
1034 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1035 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1036 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
1037 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
1038 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
1039 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
1040 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
1041 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
1042 ndr_print_uint32(ndr
, "rid", r
->rid
);
1043 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1044 ndr_print_samr_RidWithAttributeArray(ndr
, "groups", &r
->groups
);
1045 ndr_print_netr_UserFlags(ndr
, "user_flags", r
->user_flags
);
1046 ndr_print_netr_UserSessionKey(ndr
, "key", &r
->key
);
1047 ndr_print_lsa_StringLarge(ndr
, "logon_server", &r
->logon_server
);
1048 ndr_print_lsa_StringLarge(ndr
, "domain", &r
->domain
);
1049 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
1051 if (r
->domain_sid
) {
1052 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
1055 ndr_print_netr_LMSessionKey(ndr
, "LMSessKey", &r
->LMSessKey
);
1056 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
1057 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)7);
1059 for (cntr_unknown_0
=0;cntr_unknown_0
<7;cntr_unknown_0
++) {
1061 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
1062 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1070 static enum ndr_err_code
ndr_push_netr_SamInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo2
*r
)
1072 if (ndr_flags
& NDR_SCALARS
) {
1073 NDR_CHECK(ndr_push_align(ndr
, 4));
1074 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1076 if (ndr_flags
& NDR_BUFFERS
) {
1077 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1079 return NDR_ERR_SUCCESS
;
1082 static enum ndr_err_code
ndr_pull_netr_SamInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo2
*r
)
1084 if (ndr_flags
& NDR_SCALARS
) {
1085 NDR_CHECK(ndr_pull_align(ndr
, 4));
1086 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1088 if (ndr_flags
& NDR_BUFFERS
) {
1089 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1091 return NDR_ERR_SUCCESS
;
1094 _PUBLIC_
void ndr_print_netr_SamInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo2
*r
)
1096 ndr_print_struct(ndr
, name
, "netr_SamInfo2");
1098 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1102 static enum ndr_err_code
ndr_push_netr_SidAttr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SidAttr
*r
)
1104 if (ndr_flags
& NDR_SCALARS
) {
1105 NDR_CHECK(ndr_push_align(ndr
, 4));
1106 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
1107 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1109 if (ndr_flags
& NDR_BUFFERS
) {
1111 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1114 return NDR_ERR_SUCCESS
;
1117 static enum ndr_err_code
ndr_pull_netr_SidAttr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SidAttr
*r
)
1120 TALLOC_CTX
*_mem_save_sid_0
;
1121 if (ndr_flags
& NDR_SCALARS
) {
1122 NDR_CHECK(ndr_pull_align(ndr
, 4));
1123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
1125 NDR_PULL_ALLOC(ndr
, r
->sid
);
1129 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1131 if (ndr_flags
& NDR_BUFFERS
) {
1133 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1134 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
1135 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
1139 return NDR_ERR_SUCCESS
;
1142 _PUBLIC_
void ndr_print_netr_SidAttr(struct ndr_print
*ndr
, const char *name
, const struct netr_SidAttr
*r
)
1144 ndr_print_struct(ndr
, name
, "netr_SidAttr");
1146 ndr_print_ptr(ndr
, "sid", r
->sid
);
1149 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
1152 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1156 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SamInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo3
*r
)
1158 uint32_t cntr_sids_1
;
1159 if (ndr_flags
& NDR_SCALARS
) {
1160 NDR_CHECK(ndr_push_align(ndr
, 4));
1161 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1163 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1165 if (ndr_flags
& NDR_BUFFERS
) {
1166 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1169 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1170 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1172 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1173 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1177 return NDR_ERR_SUCCESS
;
1180 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SamInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo3
*r
)
1183 uint32_t cntr_sids_1
;
1184 TALLOC_CTX
*_mem_save_sids_0
;
1185 TALLOC_CTX
*_mem_save_sids_1
;
1186 if (ndr_flags
& NDR_SCALARS
) {
1187 NDR_CHECK(ndr_pull_align(ndr
, 4));
1188 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1192 NDR_PULL_ALLOC(ndr
, r
->sids
);
1197 if (ndr_flags
& NDR_BUFFERS
) {
1198 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1200 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1201 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1202 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1203 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1204 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1205 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1206 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1207 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1209 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1210 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1213 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1216 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1219 return NDR_ERR_SUCCESS
;
1222 _PUBLIC_
void ndr_print_netr_SamInfo3(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo3
*r
)
1224 uint32_t cntr_sids_1
;
1225 ndr_print_struct(ndr
, name
, "netr_SamInfo3");
1227 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1228 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1229 ndr_print_ptr(ndr
, "sids", r
->sids
);
1232 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1234 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1236 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1237 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1247 static enum ndr_err_code
ndr_push_netr_SamInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo6
*r
)
1249 uint32_t cntr_sids_1
;
1250 uint32_t cntr_unknown4_0
;
1251 if (ndr_flags
& NDR_SCALARS
) {
1252 NDR_CHECK(ndr_push_align(ndr
, 4));
1253 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1255 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1256 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1257 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1258 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
[cntr_unknown4_0
]));
1262 if (ndr_flags
& NDR_BUFFERS
) {
1263 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1266 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1267 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1269 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1270 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1273 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1274 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1276 return NDR_ERR_SUCCESS
;
1279 static enum ndr_err_code
ndr_pull_netr_SamInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo6
*r
)
1282 uint32_t cntr_sids_1
;
1283 TALLOC_CTX
*_mem_save_sids_0
;
1284 TALLOC_CTX
*_mem_save_sids_1
;
1285 uint32_t cntr_unknown4_0
;
1286 if (ndr_flags
& NDR_SCALARS
) {
1287 NDR_CHECK(ndr_pull_align(ndr
, 4));
1288 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1289 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1292 NDR_PULL_ALLOC(ndr
, r
->sids
);
1296 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1297 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1298 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
[cntr_unknown4_0
]));
1302 if (ndr_flags
& NDR_BUFFERS
) {
1303 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1305 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1306 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1307 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1308 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1309 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1310 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1311 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1312 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1314 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1315 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1320 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1321 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1323 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1326 return NDR_ERR_SUCCESS
;
1329 _PUBLIC_
void ndr_print_netr_SamInfo6(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo6
*r
)
1331 uint32_t cntr_sids_1
;
1332 uint32_t cntr_unknown4_0
;
1333 ndr_print_struct(ndr
, name
, "netr_SamInfo6");
1335 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1336 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1337 ndr_print_ptr(ndr
, "sids", r
->sids
);
1340 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1342 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1344 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1345 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1352 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
1353 ndr_print_lsa_String(ndr
, "principle", &r
->principle
);
1354 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown4", (int)20);
1356 for (cntr_unknown4_0
=0;cntr_unknown4_0
<20;cntr_unknown4_0
++) {
1358 if (asprintf(&idx_0
, "[%d]", cntr_unknown4_0
) != -1) {
1359 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
[cntr_unknown4_0
]);
1367 static enum ndr_err_code
ndr_push_netr_PacInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PacInfo
*r
)
1369 uint32_t cntr_expansionroom_0
;
1370 if (ndr_flags
& NDR_SCALARS
) {
1371 NDR_CHECK(ndr_push_align(ndr
, 4));
1372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1373 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1374 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1375 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1376 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1378 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->auth
));
1379 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1380 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->expansionroom
[cntr_expansionroom_0
]));
1383 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1384 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1385 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1386 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1388 if (ndr_flags
& NDR_BUFFERS
) {
1390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1391 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, r
->pac_size
));
1393 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1394 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1395 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1398 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, r
->auth_size
));
1400 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1401 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1402 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1403 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1405 return NDR_ERR_SUCCESS
;
1408 static enum ndr_err_code
ndr_pull_netr_PacInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PacInfo
*r
)
1411 TALLOC_CTX
*_mem_save_pac_0
;
1413 TALLOC_CTX
*_mem_save_auth_0
;
1414 uint32_t cntr_expansionroom_0
;
1415 if (ndr_flags
& NDR_SCALARS
) {
1416 NDR_CHECK(ndr_pull_align(ndr
, 4));
1417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pac_size
));
1418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1420 NDR_PULL_ALLOC(ndr
, r
->pac
);
1424 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1425 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1426 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_size
));
1428 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_auth
));
1430 NDR_PULL_ALLOC(ndr
, r
->auth
);
1434 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1435 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->expansionroom
[cntr_expansionroom_0
]));
1438 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1439 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1440 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1441 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1443 if (ndr_flags
& NDR_BUFFERS
) {
1445 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1446 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1447 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pac
));
1448 NDR_PULL_ALLOC_N(ndr
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
));
1449 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
)));
1450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1452 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1453 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1454 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1456 _mem_save_auth_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1457 NDR_PULL_SET_MEM_CTX(ndr
, r
->auth
, 0);
1458 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->auth
));
1459 NDR_PULL_ALLOC_N(ndr
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
));
1460 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
)));
1461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_auth_0
, 0);
1463 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1464 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1465 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1466 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1468 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pac
, r
->pac_size
));
1471 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->auth
, r
->auth_size
));
1474 return NDR_ERR_SUCCESS
;
1477 _PUBLIC_
void ndr_print_netr_PacInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PacInfo
*r
)
1479 uint32_t cntr_expansionroom_0
;
1480 ndr_print_struct(ndr
, name
, "netr_PacInfo");
1482 ndr_print_uint32(ndr
, "pac_size", r
->pac_size
);
1483 ndr_print_ptr(ndr
, "pac", r
->pac
);
1486 ndr_print_array_uint8(ndr
, "pac", r
->pac
, r
->pac_size
);
1489 ndr_print_lsa_String(ndr
, "logon_domain", &r
->logon_domain
);
1490 ndr_print_lsa_String(ndr
, "logon_server", &r
->logon_server
);
1491 ndr_print_lsa_String(ndr
, "principal_name", &r
->principal_name
);
1492 ndr_print_uint32(ndr
, "auth_size", r
->auth_size
);
1493 ndr_print_ptr(ndr
, "auth", r
->auth
);
1496 ndr_print_array_uint8(ndr
, "auth", r
->auth
, r
->auth_size
);
1499 ndr_print_netr_UserSessionKey(ndr
, "user_session_key", &r
->user_session_key
);
1500 ndr
->print(ndr
, "%s: ARRAY(%d)", "expansionroom", (int)10);
1502 for (cntr_expansionroom_0
=0;cntr_expansionroom_0
<10;cntr_expansionroom_0
++) {
1504 if (asprintf(&idx_0
, "[%d]", cntr_expansionroom_0
) != -1) {
1505 ndr_print_uint32(ndr
, "expansionroom", r
->expansionroom
[cntr_expansionroom_0
]);
1510 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1511 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1512 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1513 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1517 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Validation(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Validation
*r
)
1519 if (ndr_flags
& NDR_SCALARS
) {
1520 int level
= ndr_push_get_switch_value(ndr
, r
);
1521 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
1524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam2
));
1528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam3
));
1532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1536 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1540 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam6
));
1544 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1547 if (ndr_flags
& NDR_BUFFERS
) {
1548 int level
= ndr_push_get_switch_value(ndr
, r
);
1552 NDR_CHECK(ndr_push_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1558 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1564 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1570 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1576 NDR_CHECK(ndr_push_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1581 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1584 return NDR_ERR_SUCCESS
;
1587 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Validation(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Validation
*r
)
1591 TALLOC_CTX
*_mem_save_sam2_0
;
1592 TALLOC_CTX
*_mem_save_sam3_0
;
1593 TALLOC_CTX
*_mem_save_pac_0
;
1594 TALLOC_CTX
*_mem_save_sam6_0
;
1595 level
= ndr_pull_get_switch_value(ndr
, r
);
1596 if (ndr_flags
& NDR_SCALARS
) {
1597 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1598 if (_level
!= level
) {
1599 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
1604 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam2
));
1606 NDR_PULL_ALLOC(ndr
, r
->sam2
);
1614 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam3
));
1616 NDR_PULL_ALLOC(ndr
, r
->sam3
);
1624 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1626 NDR_PULL_ALLOC(ndr
, r
->pac
);
1634 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1636 NDR_PULL_ALLOC(ndr
, r
->pac
);
1644 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam6
));
1646 NDR_PULL_ALLOC(ndr
, r
->sam6
);
1653 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1656 if (ndr_flags
& NDR_BUFFERS
) {
1660 _mem_save_sam2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1661 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam2
, 0);
1662 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam2_0
, 0);
1669 _mem_save_sam3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1670 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam3
, 0);
1671 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam3_0
, 0);
1678 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1679 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1680 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1687 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1688 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1689 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1696 _mem_save_sam6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1697 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam6
, 0);
1698 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam6_0
, 0);
1704 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1707 return NDR_ERR_SUCCESS
;
1710 _PUBLIC_
void ndr_print_netr_Validation(struct ndr_print
*ndr
, const char *name
, const union netr_Validation
*r
)
1713 level
= ndr_print_get_switch_value(ndr
, r
);
1714 ndr_print_union(ndr
, name
, level
, "netr_Validation");
1717 ndr_print_ptr(ndr
, "sam2", r
->sam2
);
1720 ndr_print_netr_SamInfo2(ndr
, "sam2", r
->sam2
);
1726 ndr_print_ptr(ndr
, "sam3", r
->sam3
);
1729 ndr_print_netr_SamInfo3(ndr
, "sam3", r
->sam3
);
1735 ndr_print_ptr(ndr
, "pac", r
->pac
);
1738 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
1744 ndr_print_ptr(ndr
, "pac", r
->pac
);
1747 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
1753 ndr_print_ptr(ndr
, "sam6", r
->sam6
);
1756 ndr_print_netr_SamInfo6(ndr
, "sam6", r
->sam6
);
1762 ndr_print_bad_level(ndr
, name
, level
);
1766 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Credential(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Credential
*r
)
1769 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1770 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1771 if (ndr_flags
& NDR_SCALARS
) {
1772 NDR_CHECK(ndr_push_align(ndr
, 1));
1773 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
1775 if (ndr_flags
& NDR_BUFFERS
) {
1777 ndr
->flags
= _flags_save_STRUCT
;
1779 return NDR_ERR_SUCCESS
;
1782 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Credential(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Credential
*r
)
1785 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1786 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1787 if (ndr_flags
& NDR_SCALARS
) {
1788 NDR_CHECK(ndr_pull_align(ndr
, 1));
1789 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
1791 if (ndr_flags
& NDR_BUFFERS
) {
1793 ndr
->flags
= _flags_save_STRUCT
;
1795 return NDR_ERR_SUCCESS
;
1798 _PUBLIC_
void ndr_print_netr_Credential(struct ndr_print
*ndr
, const char *name
, const struct netr_Credential
*r
)
1800 ndr_print_struct(ndr
, name
, "netr_Credential");
1802 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1803 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1805 ndr_print_array_uint8(ndr
, "data", r
->data
, 8);
1807 ndr
->flags
= _flags_save_STRUCT
;
1811 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Authenticator(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Authenticator
*r
)
1813 if (ndr_flags
& NDR_SCALARS
) {
1814 NDR_CHECK(ndr_push_align(ndr
, 4));
1815 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
1816 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
1818 if (ndr_flags
& NDR_BUFFERS
) {
1820 return NDR_ERR_SUCCESS
;
1823 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Authenticator(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Authenticator
*r
)
1825 if (ndr_flags
& NDR_SCALARS
) {
1826 NDR_CHECK(ndr_pull_align(ndr
, 4));
1827 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
1828 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
1830 if (ndr_flags
& NDR_BUFFERS
) {
1832 return NDR_ERR_SUCCESS
;
1835 _PUBLIC_
void ndr_print_netr_Authenticator(struct ndr_print
*ndr
, const char *name
, const struct netr_Authenticator
*r
)
1837 ndr_print_struct(ndr
, name
, "netr_Authenticator");
1839 ndr_print_netr_Credential(ndr
, "cred", &r
->cred
);
1840 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
1844 static enum ndr_err_code
ndr_push_netr_LogonLevel(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonLevel r
)
1846 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
1847 return NDR_ERR_SUCCESS
;
1850 static enum ndr_err_code
ndr_pull_netr_LogonLevel(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonLevel
*r
)
1853 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
1855 return NDR_ERR_SUCCESS
;
1858 _PUBLIC_
void ndr_print_netr_LogonLevel(struct ndr_print
*ndr
, const char *name
, enum netr_LogonLevel r
)
1860 const char *val
= NULL
;
1863 case INTERACTIVE_LOGON_TYPE
: val
= "INTERACTIVE_LOGON_TYPE"; break;
1864 case NET_LOGON_TYPE
: val
= "NET_LOGON_TYPE"; break;
1866 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1869 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
)
1871 if (ndr_flags
& NDR_SCALARS
) {
1872 NDR_CHECK(ndr_push_align(ndr
, 4));
1873 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
1874 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1875 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1876 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1877 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
1879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
1880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
1881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
1883 if (ndr_flags
& NDR_BUFFERS
) {
1884 if (r
->account_name
) {
1885 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
1886 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
1888 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
1890 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1891 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1892 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1893 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1895 return NDR_ERR_SUCCESS
;
1898 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_USER
*r
)
1900 uint32_t _ptr_account_name
;
1901 TALLOC_CTX
*_mem_save_account_name_0
;
1902 if (ndr_flags
& NDR_SCALARS
) {
1903 NDR_CHECK(ndr_pull_align(ndr
, 4));
1904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
1905 if (_ptr_account_name
) {
1906 NDR_PULL_ALLOC(ndr
, r
->account_name
);
1908 r
->account_name
= NULL
;
1910 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1911 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1912 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1913 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1914 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
1915 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
1916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
1917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
1919 if (ndr_flags
& NDR_BUFFERS
) {
1920 if (r
->account_name
) {
1921 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1922 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
1923 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
1924 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
1925 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
1926 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->account_name
), ndr_get_array_length(ndr
, &r
->account_name
));
1928 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
1929 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
1930 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
1932 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1933 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1934 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1935 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1937 return NDR_ERR_SUCCESS
;
1940 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_USER
*r
)
1942 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_USER");
1944 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
1946 if (r
->account_name
) {
1947 ndr_print_string(ndr
, "account_name", r
->account_name
);
1950 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1951 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1952 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1953 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1954 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
1955 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
1956 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
1957 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
1961 static enum ndr_err_code
ndr_push_netr_USER_KEY16(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY16
*r
)
1963 if (ndr_flags
& NDR_SCALARS
) {
1964 NDR_CHECK(ndr_push_align(ndr
, 4));
1965 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
1966 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
1967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
1968 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
1970 if (ndr_flags
& NDR_BUFFERS
) {
1971 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->pwd
));
1973 return NDR_ERR_SUCCESS
;
1976 static enum ndr_err_code
ndr_pull_netr_USER_KEY16(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY16
*r
)
1978 if (ndr_flags
& NDR_SCALARS
) {
1979 NDR_CHECK(ndr_pull_align(ndr
, 4));
1980 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
1981 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
1982 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
1983 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
1985 if (ndr_flags
& NDR_BUFFERS
) {
1986 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->pwd
));
1988 return NDR_ERR_SUCCESS
;
1991 _PUBLIC_
void ndr_print_netr_USER_KEY16(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY16
*r
)
1993 ndr_print_struct(ndr
, name
, "netr_USER_KEY16");
1995 ndr_print_uint16(ndr
, "length", r
->length
);
1996 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
1997 ndr_print_uint32(ndr
, "flags", r
->flags
);
1998 ndr_print_samr_Password(ndr
, "pwd", &r
->pwd
);
2002 static enum ndr_err_code
ndr_push_netr_PasswordHistory(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordHistory
*r
)
2004 if (ndr_flags
& NDR_SCALARS
) {
2005 NDR_CHECK(ndr_push_align(ndr
, 4));
2006 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2007 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nt_flags
));
2009 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2010 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lm_flags
));
2012 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2013 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2015 if (ndr_flags
& NDR_BUFFERS
) {
2017 return NDR_ERR_SUCCESS
;
2020 static enum ndr_err_code
ndr_pull_netr_PasswordHistory(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordHistory
*r
)
2022 if (ndr_flags
& NDR_SCALARS
) {
2023 NDR_CHECK(ndr_pull_align(ndr
, 4));
2024 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_length
));
2025 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_size
));
2026 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nt_flags
));
2027 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_length
));
2028 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_size
));
2029 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lm_flags
));
2030 NDR_PULL_ALLOC_N(ndr
, r
->nt_history
, r
->nt_length
);
2031 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2032 NDR_PULL_ALLOC_N(ndr
, r
->lm_history
, r
->lm_length
);
2033 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2035 if (ndr_flags
& NDR_BUFFERS
) {
2037 return NDR_ERR_SUCCESS
;
2040 _PUBLIC_
void ndr_print_netr_PasswordHistory(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordHistory
*r
)
2042 ndr_print_struct(ndr
, name
, "netr_PasswordHistory");
2044 ndr_print_uint16(ndr
, "nt_length", r
->nt_length
);
2045 ndr_print_uint16(ndr
, "nt_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->nt_length
:r
->nt_size
);
2046 ndr_print_uint32(ndr
, "nt_flags", r
->nt_flags
);
2047 ndr_print_uint16(ndr
, "lm_length", r
->lm_length
);
2048 ndr_print_uint16(ndr
, "lm_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->lm_length
:r
->lm_size
);
2049 ndr_print_uint32(ndr
, "lm_flags", r
->lm_flags
);
2050 ndr_print_array_uint8(ndr
, "nt_history", r
->nt_history
, r
->nt_length
);
2051 ndr_print_array_uint8(ndr
, "lm_history", r
->lm_history
, r
->lm_length
);
2055 static enum ndr_err_code
ndr_push_netr_USER_KEYS2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS2
*r
)
2057 if (ndr_flags
& NDR_SCALARS
) {
2058 NDR_CHECK(ndr_push_align(ndr
, 4));
2059 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2060 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2061 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2063 if (ndr_flags
& NDR_BUFFERS
) {
2064 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2065 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2067 return NDR_ERR_SUCCESS
;
2070 static enum ndr_err_code
ndr_pull_netr_USER_KEYS2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS2
*r
)
2072 if (ndr_flags
& NDR_SCALARS
) {
2073 NDR_CHECK(ndr_pull_align(ndr
, 4));
2074 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2075 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2076 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2078 if (ndr_flags
& NDR_BUFFERS
) {
2079 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2080 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2082 return NDR_ERR_SUCCESS
;
2085 _PUBLIC_
void ndr_print_netr_USER_KEYS2(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS2
*r
)
2087 ndr_print_struct(ndr
, name
, "netr_USER_KEYS2");
2089 ndr_print_netr_USER_KEY16(ndr
, "lmpassword", &r
->lmpassword
);
2090 ndr_print_netr_USER_KEY16(ndr
, "ntpassword", &r
->ntpassword
);
2091 ndr_print_netr_PasswordHistory(ndr
, "history", &r
->history
);
2095 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
)
2097 if (ndr_flags
& NDR_SCALARS
) {
2098 NDR_CHECK(ndr_push_align(ndr
, 4));
2099 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2101 if (ndr_flags
& NDR_BUFFERS
) {
2102 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_BUFFERS
, &r
->keys2
));
2104 return NDR_ERR_SUCCESS
;
2107 static enum ndr_err_code
ndr_pull_netr_USER_KEY_UNION(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY_UNION
*r
)
2109 if (ndr_flags
& NDR_SCALARS
) {
2110 NDR_CHECK(ndr_pull_align(ndr
, 4));
2111 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2113 if (ndr_flags
& NDR_BUFFERS
) {
2114 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_BUFFERS
, &r
->keys2
));
2116 return NDR_ERR_SUCCESS
;
2119 _PUBLIC_
void ndr_print_netr_USER_KEY_UNION(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY_UNION
*r
)
2121 ndr_print_struct(ndr
, name
, "netr_USER_KEY_UNION");
2123 ndr_print_netr_USER_KEYS2(ndr
, "keys2", &r
->keys2
);
2127 _PUBLIC_
enum ndr_err_code
ndr_push_netr_USER_KEYS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS
*r
)
2129 if (ndr_flags
& NDR_SCALARS
) {
2130 NDR_CHECK(ndr_push_align(ndr
, 4));
2131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2132 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2134 if (ndr_flags
& NDR_BUFFERS
) {
2135 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_BUFFERS
, &r
->keys
));
2137 return NDR_ERR_SUCCESS
;
2140 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_USER_KEYS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS
*r
)
2142 if (ndr_flags
& NDR_SCALARS
) {
2143 NDR_CHECK(ndr_pull_align(ndr
, 4));
2144 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2145 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2147 if (ndr_flags
& NDR_BUFFERS
) {
2148 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_BUFFERS
, &r
->keys
));
2150 return NDR_ERR_SUCCESS
;
2153 _PUBLIC_
void ndr_print_netr_USER_KEYS(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS
*r
)
2155 ndr_print_struct(ndr
, name
, "netr_USER_KEYS");
2157 ndr_print_uint32(ndr
, "version", r
->version
);
2158 ndr_print_netr_USER_KEY_UNION(ndr
, "keys", &r
->keys
);
2162 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
)
2164 if (ndr_flags
& NDR_SCALARS
) {
2165 NDR_CHECK(ndr_push_align(ndr
, 4));
2166 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->SensitiveDataFlag
));
2167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2169 uint32_t _flags_save_uint8
= ndr
->flags
;
2170 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2171 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->SensitiveData
));
2172 ndr
->flags
= _flags_save_uint8
;
2175 if (ndr_flags
& NDR_BUFFERS
) {
2177 uint32_t _flags_save_uint8
= ndr
->flags
;
2178 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2179 if (r
->SensitiveData
) {
2180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2181 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, r
->DataLength
));
2183 ndr
->flags
= _flags_save_uint8
;
2186 return NDR_ERR_SUCCESS
;
2189 static enum ndr_err_code
ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_PRIVATE_INFO
*r
)
2191 uint32_t _ptr_SensitiveData
;
2192 TALLOC_CTX
*_mem_save_SensitiveData_0
;
2193 if (ndr_flags
& NDR_SCALARS
) {
2194 NDR_CHECK(ndr_pull_align(ndr
, 4));
2195 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->SensitiveDataFlag
));
2196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->DataLength
));
2198 uint32_t _flags_save_uint8
= ndr
->flags
;
2199 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2200 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_SensitiveData
));
2201 if (_ptr_SensitiveData
) {
2202 NDR_PULL_ALLOC(ndr
, r
->SensitiveData
);
2204 r
->SensitiveData
= NULL
;
2206 ndr
->flags
= _flags_save_uint8
;
2209 if (ndr_flags
& NDR_BUFFERS
) {
2211 uint32_t _flags_save_uint8
= ndr
->flags
;
2212 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2213 if (r
->SensitiveData
) {
2214 _mem_save_SensitiveData_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2215 NDR_PULL_SET_MEM_CTX(ndr
, r
->SensitiveData
, 0);
2216 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->SensitiveData
));
2217 NDR_PULL_ALLOC_N(ndr
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
));
2218 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
)));
2219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_SensitiveData_0
, 0);
2221 ndr
->flags
= _flags_save_uint8
;
2223 if (r
->SensitiveData
) {
2224 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->SensitiveData
, r
->DataLength
));
2227 return NDR_ERR_SUCCESS
;
2230 _PUBLIC_
void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_PRIVATE_INFO
*r
)
2232 ndr_print_struct(ndr
, name
, "netr_USER_PRIVATE_INFO");
2234 ndr_print_uint8(ndr
, "SensitiveDataFlag", r
->SensitiveDataFlag
);
2235 ndr_print_uint32(ndr
, "DataLength", r
->DataLength
);
2236 ndr_print_ptr(ndr
, "SensitiveData", r
->SensitiveData
);
2238 if (r
->SensitiveData
) {
2239 ndr_print_array_uint8(ndr
, "SensitiveData", r
->SensitiveData
, r
->DataLength
);
2245 static enum ndr_err_code
ndr_push_netr_DELTA_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_USER
*r
)
2247 if (ndr_flags
& NDR_SCALARS
) {
2248 NDR_CHECK(ndr_push_align(ndr
, 4));
2249 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2250 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2253 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2254 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2255 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2256 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2257 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2258 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2259 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2260 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2261 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2262 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2263 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2264 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2265 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2266 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2267 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2268 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_present
));
2269 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_present
));
2270 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2271 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2272 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->parameters
));
2273 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2274 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2275 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2276 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2277 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2278 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2279 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2280 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2281 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2283 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2287 if (ndr_flags
& NDR_BUFFERS
) {
2288 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2289 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2290 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2291 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2292 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2293 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2294 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2295 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2296 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2297 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2298 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2299 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->parameters
));
2300 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2301 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2302 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2303 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2304 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2305 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2307 return NDR_ERR_SUCCESS
;
2310 static enum ndr_err_code
ndr_pull_netr_DELTA_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_USER
*r
)
2312 if (ndr_flags
& NDR_SCALARS
) {
2313 NDR_CHECK(ndr_pull_align(ndr
, 4));
2314 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2315 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2318 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2319 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2320 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2321 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2322 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2323 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2324 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2325 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2326 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2327 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2328 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2329 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2330 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2331 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2332 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2333 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_present
));
2334 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_present
));
2335 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2336 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2337 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->parameters
));
2338 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2339 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2340 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2341 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2342 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2343 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2344 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2345 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2346 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2347 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2352 if (ndr_flags
& NDR_BUFFERS
) {
2353 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2354 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2355 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2356 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2357 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2358 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2359 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2360 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2361 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2362 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2363 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2364 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->parameters
));
2365 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2366 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2367 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2368 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2369 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2370 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2372 return NDR_ERR_SUCCESS
;
2375 _PUBLIC_
void ndr_print_netr_DELTA_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_USER
*r
)
2377 ndr_print_struct(ndr
, name
, "netr_DELTA_USER");
2379 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2380 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2381 ndr_print_uint32(ndr
, "rid", r
->rid
);
2382 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2383 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2384 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2385 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2386 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2387 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2388 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2389 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2390 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2391 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2392 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2393 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2394 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2395 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2396 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
2397 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
2398 ndr_print_uint8(ndr
, "nt_password_present", r
->nt_password_present
);
2399 ndr_print_uint8(ndr
, "lm_password_present", r
->lm_password_present
);
2400 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2401 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2402 ndr_print_lsa_String(ndr
, "parameters", &r
->parameters
);
2403 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2404 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2405 ndr_print_netr_USER_PRIVATE_INFO(ndr
, "user_private_info", &r
->user_private_info
);
2406 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2407 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2408 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2409 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2410 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2411 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2412 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2413 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2414 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2415 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2419 static enum ndr_err_code
ndr_push_netr_DELTA_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DOMAIN
*r
)
2421 if (ndr_flags
& NDR_SCALARS
) {
2422 NDR_CHECK(ndr_push_align(ndr
, 4));
2423 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2424 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2425 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
2426 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
2427 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
2428 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
2429 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
2430 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2431 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
2432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2433 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2434 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2435 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2436 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2437 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_to_chgpass
));
2439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2443 if (ndr_flags
& NDR_BUFFERS
) {
2444 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2445 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2446 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2447 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2448 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2449 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2450 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2452 return NDR_ERR_SUCCESS
;
2455 static enum ndr_err_code
ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DOMAIN
*r
)
2457 if (ndr_flags
& NDR_SCALARS
) {
2458 NDR_CHECK(ndr_pull_align(ndr
, 4));
2459 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2460 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2461 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
2462 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
2463 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
2464 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
2465 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
2466 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
2467 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
2468 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2469 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2470 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2471 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2472 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2473 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2474 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_to_chgpass
));
2475 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2477 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2479 if (ndr_flags
& NDR_BUFFERS
) {
2480 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2481 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2482 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2483 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2484 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2485 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2486 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2488 return NDR_ERR_SUCCESS
;
2491 _PUBLIC_
void ndr_print_netr_DELTA_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DOMAIN
*r
)
2493 ndr_print_struct(ndr
, name
, "netr_DELTA_DOMAIN");
2495 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
2496 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2497 ndr_print_dlong(ndr
, "force_logoff_time", r
->force_logoff_time
);
2498 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
2499 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
2500 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
2501 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
2502 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
2503 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
2504 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2505 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2506 ndr_print_lsa_BinaryString(ndr
, "account_lockout", &r
->account_lockout
);
2507 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2508 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2509 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2510 ndr_print_uint32(ndr
, "logon_to_chgpass", r
->logon_to_chgpass
);
2511 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2512 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2513 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2517 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP
*r
)
2519 if (ndr_flags
& NDR_SCALARS
) {
2520 NDR_CHECK(ndr_push_align(ndr
, 4));
2521 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
2524 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2526 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2527 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2528 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2529 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2530 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2536 if (ndr_flags
& NDR_BUFFERS
) {
2537 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2538 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2539 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2540 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2541 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2542 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2543 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2545 return NDR_ERR_SUCCESS
;
2548 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP
*r
)
2550 if (ndr_flags
& NDR_SCALARS
) {
2551 NDR_CHECK(ndr_pull_align(ndr
, 4));
2552 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2553 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2554 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
2555 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2556 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2557 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2558 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2559 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2560 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2561 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2562 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2563 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2565 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2567 if (ndr_flags
& NDR_BUFFERS
) {
2568 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2569 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2570 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2571 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2572 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2573 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2574 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2576 return NDR_ERR_SUCCESS
;
2579 _PUBLIC_
void ndr_print_netr_DELTA_GROUP(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP
*r
)
2581 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP");
2583 ndr_print_lsa_String(ndr
, "group_name", &r
->group_name
);
2584 ndr_print_uint32(ndr
, "rid", r
->rid
);
2585 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
2586 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2587 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2588 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2589 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2590 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2591 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2592 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2593 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2594 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2595 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2596 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2600 static enum ndr_err_code
ndr_push_netr_DELTA_RENAME(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_RENAME
*r
)
2602 if (ndr_flags
& NDR_SCALARS
) {
2603 NDR_CHECK(ndr_push_align(ndr
, 4));
2604 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2605 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2606 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2607 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2608 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2609 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2615 if (ndr_flags
& NDR_BUFFERS
) {
2616 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2617 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2618 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2619 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2620 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2621 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2623 return NDR_ERR_SUCCESS
;
2626 static enum ndr_err_code
ndr_pull_netr_DELTA_RENAME(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_RENAME
*r
)
2628 if (ndr_flags
& NDR_SCALARS
) {
2629 NDR_CHECK(ndr_pull_align(ndr
, 4));
2630 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2631 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2632 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2633 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2634 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2635 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2636 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2637 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2641 if (ndr_flags
& NDR_BUFFERS
) {
2642 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2643 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2644 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2645 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2646 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2647 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2649 return NDR_ERR_SUCCESS
;
2652 _PUBLIC_
void ndr_print_netr_DELTA_RENAME(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_RENAME
*r
)
2654 ndr_print_struct(ndr
, name
, "netr_DELTA_RENAME");
2656 ndr_print_lsa_String(ndr
, "OldName", &r
->OldName
);
2657 ndr_print_lsa_String(ndr
, "NewName", &r
->NewName
);
2658 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2659 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2660 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2661 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2662 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2663 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2664 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2665 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2669 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
)
2671 uint32_t cntr_rids_1
;
2672 uint32_t cntr_attribs_1
;
2673 if (ndr_flags
& NDR_SCALARS
) {
2674 NDR_CHECK(ndr_push_align(ndr
, 4));
2675 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
2676 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribs
));
2677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2681 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2683 if (ndr_flags
& NDR_BUFFERS
) {
2685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2686 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
2691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2692 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribs
[cntr_attribs_1
]));
2697 return NDR_ERR_SUCCESS
;
2700 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP_MEMBER
*r
)
2703 uint32_t cntr_rids_1
;
2704 TALLOC_CTX
*_mem_save_rids_0
;
2705 TALLOC_CTX
*_mem_save_rids_1
;
2706 uint32_t _ptr_attribs
;
2707 uint32_t cntr_attribs_1
;
2708 TALLOC_CTX
*_mem_save_attribs_0
;
2709 TALLOC_CTX
*_mem_save_attribs_1
;
2710 if (ndr_flags
& NDR_SCALARS
) {
2711 NDR_CHECK(ndr_pull_align(ndr
, 4));
2712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
2714 NDR_PULL_ALLOC(ndr
, r
->rids
);
2718 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribs
));
2720 NDR_PULL_ALLOC(ndr
, r
->attribs
);
2724 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_rids
));
2725 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2726 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2727 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2728 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2730 if (ndr_flags
& NDR_BUFFERS
) {
2732 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2733 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2734 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
2735 NDR_PULL_ALLOC_N(ndr
, r
->rids
, ndr_get_array_size(ndr
, &r
->rids
));
2736 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2737 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2738 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2739 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
2741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
2742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
2745 _mem_save_attribs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2746 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2747 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribs
));
2748 NDR_PULL_ALLOC_N(ndr
, r
->attribs
, ndr_get_array_size(ndr
, &r
->attribs
));
2749 _mem_save_attribs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2750 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2751 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribs
[cntr_attribs_1
]));
2754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_1
, 0);
2755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_0
, 0);
2758 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->num_rids
));
2761 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attribs
, r
->num_rids
));
2764 return NDR_ERR_SUCCESS
;
2767 _PUBLIC_
void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP_MEMBER
*r
)
2769 uint32_t cntr_rids_1
;
2770 uint32_t cntr_attribs_1
;
2771 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP_MEMBER");
2773 ndr_print_ptr(ndr
, "rids", r
->rids
);
2776 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->num_rids
);
2778 for (cntr_rids_1
=0;cntr_rids_1
<r
->num_rids
;cntr_rids_1
++) {
2780 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
2781 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
2788 ndr_print_ptr(ndr
, "attribs", r
->attribs
);
2791 ndr
->print(ndr
, "%s: ARRAY(%d)", "attribs", (int)r
->num_rids
);
2793 for (cntr_attribs_1
=0;cntr_attribs_1
<r
->num_rids
;cntr_attribs_1
++) {
2795 if (asprintf(&idx_1
, "[%d]", cntr_attribs_1
) != -1) {
2796 ndr_print_uint32(ndr
, "attribs", r
->attribs
[cntr_attribs_1
]);
2803 ndr_print_uint32(ndr
, "num_rids", r
->num_rids
);
2804 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
2805 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
2806 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
2807 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
2811 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS
*r
)
2813 if (ndr_flags
& NDR_SCALARS
) {
2814 NDR_CHECK(ndr_push_align(ndr
, 4));
2815 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
2816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2818 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2819 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2820 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2821 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2822 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2828 if (ndr_flags
& NDR_BUFFERS
) {
2829 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
2830 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2831 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2832 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2833 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2834 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2836 return NDR_ERR_SUCCESS
;
2839 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS
*r
)
2841 if (ndr_flags
& NDR_SCALARS
) {
2842 NDR_CHECK(ndr_pull_align(ndr
, 4));
2843 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
2844 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2845 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2846 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2847 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2848 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2849 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2850 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2851 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2852 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2853 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2856 if (ndr_flags
& NDR_BUFFERS
) {
2857 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
2858 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2859 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2860 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2861 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2862 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2864 return NDR_ERR_SUCCESS
;
2867 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS
*r
)
2869 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS");
2871 ndr_print_lsa_String(ndr
, "alias_name", &r
->alias_name
);
2872 ndr_print_uint32(ndr
, "rid", r
->rid
);
2873 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2874 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2875 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2876 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2877 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2878 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2879 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2880 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2881 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2882 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2886 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
)
2888 if (ndr_flags
& NDR_SCALARS
) {
2889 NDR_CHECK(ndr_push_align(ndr
, 4));
2890 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
2891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2892 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2894 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2896 if (ndr_flags
& NDR_BUFFERS
) {
2897 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
2899 return NDR_ERR_SUCCESS
;
2902 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS_MEMBER
*r
)
2904 if (ndr_flags
& NDR_SCALARS
) {
2905 NDR_CHECK(ndr_pull_align(ndr
, 4));
2906 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
2907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2908 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2910 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2912 if (ndr_flags
& NDR_BUFFERS
) {
2913 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
2915 return NDR_ERR_SUCCESS
;
2918 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
2920 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS_MEMBER");
2922 ndr_print_lsa_SidArray(ndr
, "sids", &r
->sids
);
2923 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
2924 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
2925 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
2926 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
2930 static enum ndr_err_code
ndr_push_netr_QUOTA_LIMITS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_QUOTA_LIMITS
*r
)
2932 if (ndr_flags
& NDR_SCALARS
) {
2933 NDR_CHECK(ndr_push_align(ndr
, 4));
2934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagedpoollimit
));
2935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nonpagedpoollimit
));
2936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minimumworkingsetsize
));
2937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maximumworkingsetsize
));
2938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagefilelimit
));
2939 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timelimit
));
2941 if (ndr_flags
& NDR_BUFFERS
) {
2943 return NDR_ERR_SUCCESS
;
2946 static enum ndr_err_code
ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_QUOTA_LIMITS
*r
)
2948 if (ndr_flags
& NDR_SCALARS
) {
2949 NDR_CHECK(ndr_pull_align(ndr
, 4));
2950 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagedpoollimit
));
2951 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nonpagedpoollimit
));
2952 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minimumworkingsetsize
));
2953 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maximumworkingsetsize
));
2954 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagefilelimit
));
2955 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timelimit
));
2957 if (ndr_flags
& NDR_BUFFERS
) {
2959 return NDR_ERR_SUCCESS
;
2962 _PUBLIC_
void ndr_print_netr_QUOTA_LIMITS(struct ndr_print
*ndr
, const char *name
, const struct netr_QUOTA_LIMITS
*r
)
2964 ndr_print_struct(ndr
, name
, "netr_QUOTA_LIMITS");
2966 ndr_print_uint32(ndr
, "pagedpoollimit", r
->pagedpoollimit
);
2967 ndr_print_uint32(ndr
, "nonpagedpoollimit", r
->nonpagedpoollimit
);
2968 ndr_print_uint32(ndr
, "minimumworkingsetsize", r
->minimumworkingsetsize
);
2969 ndr_print_uint32(ndr
, "maximumworkingsetsize", r
->maximumworkingsetsize
);
2970 ndr_print_uint32(ndr
, "pagefilelimit", r
->pagefilelimit
);
2971 ndr_print_NTTIME(ndr
, "timelimit", r
->timelimit
);
2975 static enum ndr_err_code
ndr_push_netr_DELTA_POLICY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_POLICY
*r
)
2977 uint32_t cntr_eventauditoptions_1
;
2978 if (ndr_flags
& NDR_SCALARS
) {
2979 NDR_CHECK(ndr_push_align(ndr
, 4));
2980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlogsize
));
2981 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->auditretentionperiod
));
2982 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auditingmode
));
2983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
));
2984 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eventauditoptions
));
2985 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
2986 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
2987 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
2988 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2989 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->db_create_time
));
2990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2991 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2992 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2993 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2994 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2995 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3001 if (ndr_flags
& NDR_BUFFERS
) {
3002 if (r
->eventauditoptions
) {
3003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
+ 1));
3004 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3008 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3010 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3012 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3013 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3014 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3015 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3016 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3018 return NDR_ERR_SUCCESS
;
3021 static enum ndr_err_code
ndr_pull_netr_DELTA_POLICY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_POLICY
*r
)
3023 uint32_t _ptr_eventauditoptions
;
3024 uint32_t cntr_eventauditoptions_1
;
3025 TALLOC_CTX
*_mem_save_eventauditoptions_0
;
3026 TALLOC_CTX
*_mem_save_eventauditoptions_1
;
3028 TALLOC_CTX
*_mem_save_sid_0
;
3029 if (ndr_flags
& NDR_SCALARS
) {
3030 NDR_CHECK(ndr_pull_align(ndr
, 4));
3031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlogsize
));
3032 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->auditretentionperiod
));
3033 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auditingmode
));
3034 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxauditeventcount
));
3035 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eventauditoptions
));
3036 if (_ptr_eventauditoptions
) {
3037 NDR_PULL_ALLOC(ndr
, r
->eventauditoptions
);
3039 r
->eventauditoptions
= NULL
;
3041 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
3044 NDR_PULL_ALLOC(ndr
, r
->sid
);
3048 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3049 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
3050 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->db_create_time
));
3051 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3052 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3053 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3054 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3055 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3056 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3057 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3058 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3059 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3060 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3062 if (ndr_flags
& NDR_BUFFERS
) {
3063 if (r
->eventauditoptions
) {
3064 _mem_save_eventauditoptions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3065 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3066 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eventauditoptions
));
3067 NDR_PULL_ALLOC_N(ndr
, r
->eventauditoptions
, ndr_get_array_size(ndr
, &r
->eventauditoptions
));
3068 _mem_save_eventauditoptions_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3069 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3070 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3071 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_1
, 0);
3074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_0
, 0);
3076 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3078 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3079 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
3080 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
3083 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3084 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3085 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3086 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3087 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3088 if (r
->eventauditoptions
) {
3089 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eventauditoptions
, r
->maxauditeventcount
+ 1));
3092 return NDR_ERR_SUCCESS
;
3095 _PUBLIC_
void ndr_print_netr_DELTA_POLICY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_POLICY
*r
)
3097 uint32_t cntr_eventauditoptions_1
;
3098 ndr_print_struct(ndr
, name
, "netr_DELTA_POLICY");
3100 ndr_print_uint32(ndr
, "maxlogsize", r
->maxlogsize
);
3101 ndr_print_NTTIME(ndr
, "auditretentionperiod", r
->auditretentionperiod
);
3102 ndr_print_uint8(ndr
, "auditingmode", r
->auditingmode
);
3103 ndr_print_uint32(ndr
, "maxauditeventcount", r
->maxauditeventcount
);
3104 ndr_print_ptr(ndr
, "eventauditoptions", r
->eventauditoptions
);
3106 if (r
->eventauditoptions
) {
3107 ndr
->print(ndr
, "%s: ARRAY(%d)", "eventauditoptions", (int)r
->maxauditeventcount
+ 1);
3109 for (cntr_eventauditoptions_1
=0;cntr_eventauditoptions_1
<r
->maxauditeventcount
+ 1;cntr_eventauditoptions_1
++) {
3111 if (asprintf(&idx_1
, "[%d]", cntr_eventauditoptions_1
) != -1) {
3112 ndr_print_uint32(ndr
, "eventauditoptions", r
->eventauditoptions
[cntr_eventauditoptions_1
]);
3119 ndr_print_lsa_String(ndr
, "primary_domain_name", &r
->primary_domain_name
);
3120 ndr_print_ptr(ndr
, "sid", r
->sid
);
3123 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
3126 ndr_print_netr_QUOTA_LIMITS(ndr
, "quota_limits", &r
->quota_limits
);
3127 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
3128 ndr_print_NTTIME(ndr
, "db_create_time", r
->db_create_time
);
3129 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3130 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3131 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3132 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3133 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3134 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3135 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3136 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3137 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3138 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3142 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
)
3144 uint32_t cntr_controller_names_1
;
3145 if (ndr_flags
& NDR_SCALARS
) {
3146 NDR_CHECK(ndr_push_align(ndr
, 4));
3147 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3149 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->controller_names
));
3150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3151 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3152 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3153 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3154 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3155 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3156 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->posix_offset
));
3157 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3161 if (ndr_flags
& NDR_BUFFERS
) {
3162 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3163 if (r
->controller_names
) {
3164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3165 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3166 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3168 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3169 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3172 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3173 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3174 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3175 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3176 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3178 return NDR_ERR_SUCCESS
;
3181 static enum ndr_err_code
ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3183 uint32_t _ptr_controller_names
;
3184 uint32_t cntr_controller_names_1
;
3185 TALLOC_CTX
*_mem_save_controller_names_0
;
3186 TALLOC_CTX
*_mem_save_controller_names_1
;
3187 if (ndr_flags
& NDR_SCALARS
) {
3188 NDR_CHECK(ndr_pull_align(ndr
, 4));
3189 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3190 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_controllers
));
3191 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_controller_names
));
3192 if (_ptr_controller_names
) {
3193 NDR_PULL_ALLOC(ndr
, r
->controller_names
);
3195 r
->controller_names
= NULL
;
3197 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3198 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3199 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3200 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3201 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3202 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3203 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->posix_offset
));
3204 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3205 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3206 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3208 if (ndr_flags
& NDR_BUFFERS
) {
3209 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3210 if (r
->controller_names
) {
3211 _mem_save_controller_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3212 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3213 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->controller_names
));
3214 NDR_PULL_ALLOC_N(ndr
, r
->controller_names
, ndr_get_array_size(ndr
, &r
->controller_names
));
3215 _mem_save_controller_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3216 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3217 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3218 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3220 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3221 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3223 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_1
, 0);
3224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_0
, 0);
3226 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3227 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3228 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3229 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3230 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3231 if (r
->controller_names
) {
3232 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->controller_names
, r
->num_controllers
));
3235 return NDR_ERR_SUCCESS
;
3238 _PUBLIC_
void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3240 uint32_t cntr_controller_names_1
;
3241 ndr_print_struct(ndr
, name
, "netr_DELTA_TRUSTED_DOMAIN");
3243 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
3244 ndr_print_uint32(ndr
, "num_controllers", r
->num_controllers
);
3245 ndr_print_ptr(ndr
, "controller_names", r
->controller_names
);
3247 if (r
->controller_names
) {
3248 ndr
->print(ndr
, "%s: ARRAY(%d)", "controller_names", (int)r
->num_controllers
);
3250 for (cntr_controller_names_1
=0;cntr_controller_names_1
<r
->num_controllers
;cntr_controller_names_1
++) {
3252 if (asprintf(&idx_1
, "[%d]", cntr_controller_names_1
) != -1) {
3253 ndr_print_lsa_String(ndr
, "controller_names", &r
->controller_names
[cntr_controller_names_1
]);
3260 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3261 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3262 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3263 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3264 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3265 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3266 ndr_print_uint32(ndr
, "posix_offset", r
->posix_offset
);
3267 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3268 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3269 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3273 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
)
3275 if (ndr_flags
& NDR_SCALARS
) {
3276 NDR_CHECK(ndr_push_align(ndr
, 2));
3277 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3279 if (ndr_flags
& NDR_BUFFERS
) {
3281 return NDR_ERR_SUCCESS
;
3284 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_TRUST
*r
)
3286 if (ndr_flags
& NDR_SCALARS
) {
3287 NDR_CHECK(ndr_pull_align(ndr
, 2));
3288 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3290 if (ndr_flags
& NDR_BUFFERS
) {
3292 return NDR_ERR_SUCCESS
;
3295 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_TRUST
*r
)
3297 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_TRUST");
3299 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3303 static enum ndr_err_code
ndr_push_netr_DELTA_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ACCOUNT
*r
)
3305 uint32_t cntr_privilege_attrib_1
;
3306 uint32_t cntr_privilege_name_1
;
3307 if (ndr_flags
& NDR_SCALARS
) {
3308 NDR_CHECK(ndr_push_align(ndr
, 4));
3309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_control
));
3311 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_attrib
));
3312 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_name
));
3313 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->system_flags
));
3315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3316 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3317 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3318 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3319 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3320 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3326 if (ndr_flags
& NDR_BUFFERS
) {
3327 if (r
->privilege_attrib
) {
3328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3329 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3333 if (r
->privilege_name
) {
3334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3335 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3336 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3338 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3339 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3342 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3343 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3344 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3345 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3346 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3348 return NDR_ERR_SUCCESS
;
3351 static enum ndr_err_code
ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ACCOUNT
*r
)
3353 uint32_t _ptr_privilege_attrib
;
3354 uint32_t cntr_privilege_attrib_1
;
3355 TALLOC_CTX
*_mem_save_privilege_attrib_0
;
3356 TALLOC_CTX
*_mem_save_privilege_attrib_1
;
3357 uint32_t _ptr_privilege_name
;
3358 uint32_t cntr_privilege_name_1
;
3359 TALLOC_CTX
*_mem_save_privilege_name_0
;
3360 TALLOC_CTX
*_mem_save_privilege_name_1
;
3361 if (ndr_flags
& NDR_SCALARS
) {
3362 NDR_CHECK(ndr_pull_align(ndr
, 4));
3363 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_entries
));
3364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_control
));
3365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_attrib
));
3366 if (_ptr_privilege_attrib
) {
3367 NDR_PULL_ALLOC(ndr
, r
->privilege_attrib
);
3369 r
->privilege_attrib
= NULL
;
3371 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_name
));
3372 if (_ptr_privilege_name
) {
3373 NDR_PULL_ALLOC(ndr
, r
->privilege_name
);
3375 r
->privilege_name
= NULL
;
3377 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->system_flags
));
3379 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3380 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3381 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3382 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3383 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3384 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3386 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3390 if (ndr_flags
& NDR_BUFFERS
) {
3391 if (r
->privilege_attrib
) {
3392 _mem_save_privilege_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3393 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3394 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_attrib
));
3395 NDR_PULL_ALLOC_N(ndr
, r
->privilege_attrib
, ndr_get_array_size(ndr
, &r
->privilege_attrib
));
3396 _mem_save_privilege_attrib_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3397 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3398 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_1
, 0);
3402 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_0
, 0);
3404 if (r
->privilege_name
) {
3405 _mem_save_privilege_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3406 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3407 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_name
));
3408 NDR_PULL_ALLOC_N(ndr
, r
->privilege_name
, ndr_get_array_size(ndr
, &r
->privilege_name
));
3409 _mem_save_privilege_name_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3410 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3411 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3412 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3414 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3415 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_1
, 0);
3418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_0
, 0);
3420 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3421 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3422 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3423 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3424 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3425 if (r
->privilege_attrib
) {
3426 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_attrib
, r
->privilege_entries
));
3428 if (r
->privilege_name
) {
3429 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_name
, r
->privilege_entries
));
3432 return NDR_ERR_SUCCESS
;
3435 _PUBLIC_
void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ACCOUNT
*r
)
3437 uint32_t cntr_privilege_attrib_1
;
3438 uint32_t cntr_privilege_name_1
;
3439 ndr_print_struct(ndr
, name
, "netr_DELTA_ACCOUNT");
3441 ndr_print_uint32(ndr
, "privilege_entries", r
->privilege_entries
);
3442 ndr_print_uint32(ndr
, "privilege_control", r
->privilege_control
);
3443 ndr_print_ptr(ndr
, "privilege_attrib", r
->privilege_attrib
);
3445 if (r
->privilege_attrib
) {
3446 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_attrib", (int)r
->privilege_entries
);
3448 for (cntr_privilege_attrib_1
=0;cntr_privilege_attrib_1
<r
->privilege_entries
;cntr_privilege_attrib_1
++) {
3450 if (asprintf(&idx_1
, "[%d]", cntr_privilege_attrib_1
) != -1) {
3451 ndr_print_uint32(ndr
, "privilege_attrib", r
->privilege_attrib
[cntr_privilege_attrib_1
]);
3458 ndr_print_ptr(ndr
, "privilege_name", r
->privilege_name
);
3460 if (r
->privilege_name
) {
3461 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_name", (int)r
->privilege_entries
);
3463 for (cntr_privilege_name_1
=0;cntr_privilege_name_1
<r
->privilege_entries
;cntr_privilege_name_1
++) {
3465 if (asprintf(&idx_1
, "[%d]", cntr_privilege_name_1
) != -1) {
3466 ndr_print_lsa_String(ndr
, "privilege_name", &r
->privilege_name
[cntr_privilege_name_1
]);
3473 ndr_print_netr_QUOTA_LIMITS(ndr
, "quotalimits", &r
->quotalimits
);
3474 ndr_print_uint32(ndr
, "system_flags", r
->system_flags
);
3475 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3476 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3477 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3478 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3479 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3480 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3481 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3482 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3483 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3484 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3488 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
)
3490 if (ndr_flags
& NDR_SCALARS
) {
3491 NDR_CHECK(ndr_push_align(ndr
, 2));
3492 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3494 if (ndr_flags
& NDR_BUFFERS
) {
3496 return NDR_ERR_SUCCESS
;
3499 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_ACCOUNT
*r
)
3501 if (ndr_flags
& NDR_SCALARS
) {
3502 NDR_CHECK(ndr_pull_align(ndr
, 2));
3503 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3505 if (ndr_flags
& NDR_BUFFERS
) {
3507 return NDR_ERR_SUCCESS
;
3510 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3512 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_ACCOUNT");
3514 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3518 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
)
3520 if (ndr_flags
& NDR_SCALARS
) {
3521 NDR_CHECK(ndr_push_align(ndr
, 2));
3522 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3524 if (ndr_flags
& NDR_BUFFERS
) {
3526 return NDR_ERR_SUCCESS
;
3529 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_SECRET
*r
)
3531 if (ndr_flags
& NDR_SCALARS
) {
3532 NDR_CHECK(ndr_pull_align(ndr
, 2));
3533 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3535 if (ndr_flags
& NDR_BUFFERS
) {
3537 return NDR_ERR_SUCCESS
;
3540 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_SECRET
*r
)
3542 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_SECRET");
3544 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3548 static enum ndr_err_code
ndr_push_netr_CIPHER_VALUE(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CIPHER_VALUE
*r
)
3550 if (ndr_flags
& NDR_SCALARS
) {
3551 NDR_CHECK(ndr_push_align(ndr
, 4));
3552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3554 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cipher_data
));
3556 if (ndr_flags
& NDR_BUFFERS
) {
3557 if (r
->cipher_data
) {
3558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3561 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, r
->len
));
3564 return NDR_ERR_SUCCESS
;
3567 static enum ndr_err_code
ndr_pull_netr_CIPHER_VALUE(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CIPHER_VALUE
*r
)
3569 uint32_t _ptr_cipher_data
;
3570 TALLOC_CTX
*_mem_save_cipher_data_0
;
3571 if (ndr_flags
& NDR_SCALARS
) {
3572 NDR_CHECK(ndr_pull_align(ndr
, 4));
3573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
3574 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlen
));
3575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cipher_data
));
3576 if (_ptr_cipher_data
) {
3577 NDR_PULL_ALLOC(ndr
, r
->cipher_data
);
3579 r
->cipher_data
= NULL
;
3582 if (ndr_flags
& NDR_BUFFERS
) {
3583 if (r
->cipher_data
) {
3584 _mem_save_cipher_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3585 NDR_PULL_SET_MEM_CTX(ndr
, r
->cipher_data
, 0);
3586 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cipher_data
));
3587 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->cipher_data
));
3588 if (ndr_get_array_length(ndr
, &r
->cipher_data
) > ndr_get_array_size(ndr
, &r
->cipher_data
)) {
3589 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->cipher_data
), ndr_get_array_length(ndr
, &r
->cipher_data
));
3591 NDR_PULL_ALLOC_N(ndr
, r
->cipher_data
, ndr_get_array_size(ndr
, &r
->cipher_data
));
3592 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, ndr_get_array_length(ndr
, &r
->cipher_data
)));
3593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cipher_data_0
, 0);
3595 if (r
->cipher_data
) {
3596 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cipher_data
, r
->maxlen
));
3598 if (r
->cipher_data
) {
3599 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->cipher_data
, r
->len
));
3602 return NDR_ERR_SUCCESS
;
3605 _PUBLIC_
void ndr_print_netr_CIPHER_VALUE(struct ndr_print
*ndr
, const char *name
, const struct netr_CIPHER_VALUE
*r
)
3607 ndr_print_struct(ndr
, name
, "netr_CIPHER_VALUE");
3609 ndr_print_uint32(ndr
, "len", r
->len
);
3610 ndr_print_uint32(ndr
, "maxlen", r
->maxlen
);
3611 ndr_print_ptr(ndr
, "cipher_data", r
->cipher_data
);
3613 if (r
->cipher_data
) {
3614 ndr_print_array_uint8(ndr
, "cipher_data", r
->cipher_data
, r
->len
);
3620 static enum ndr_err_code
ndr_push_netr_DELTA_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_SECRET
*r
)
3622 if (ndr_flags
& NDR_SCALARS
) {
3623 NDR_CHECK(ndr_push_align(ndr
, 4));
3624 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3625 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->current_cipher_set_time
));
3626 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3627 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->old_cipher_set_time
));
3628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3629 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3630 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3631 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3632 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3633 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3639 if (ndr_flags
& NDR_BUFFERS
) {
3640 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3641 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3642 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3643 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3644 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3645 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3646 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3648 return NDR_ERR_SUCCESS
;
3651 static enum ndr_err_code
ndr_pull_netr_DELTA_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_SECRET
*r
)
3653 if (ndr_flags
& NDR_SCALARS
) {
3654 NDR_CHECK(ndr_pull_align(ndr
, 4));
3655 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3656 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->current_cipher_set_time
));
3657 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3658 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->old_cipher_set_time
));
3659 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3660 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3661 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3662 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3663 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3664 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3666 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3668 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3670 if (ndr_flags
& NDR_BUFFERS
) {
3671 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3672 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3673 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3674 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3675 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3676 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3677 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3679 return NDR_ERR_SUCCESS
;
3682 _PUBLIC_
void ndr_print_netr_DELTA_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_SECRET
*r
)
3684 ndr_print_struct(ndr
, name
, "netr_DELTA_SECRET");
3686 ndr_print_netr_CIPHER_VALUE(ndr
, "current_cipher", &r
->current_cipher
);
3687 ndr_print_NTTIME(ndr
, "current_cipher_set_time", r
->current_cipher_set_time
);
3688 ndr_print_netr_CIPHER_VALUE(ndr
, "old_cipher", &r
->old_cipher
);
3689 ndr_print_NTTIME(ndr
, "old_cipher_set_time", r
->old_cipher_set_time
);
3690 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3691 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3692 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3693 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3694 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3695 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3696 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3697 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3698 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3699 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3703 static enum ndr_err_code
ndr_push_netr_DeltaEnum(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DeltaEnum r
)
3705 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
3706 return NDR_ERR_SUCCESS
;
3709 static enum ndr_err_code
ndr_pull_netr_DeltaEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DeltaEnum
*r
)
3712 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
3714 return NDR_ERR_SUCCESS
;
3717 _PUBLIC_
void ndr_print_netr_DeltaEnum(struct ndr_print
*ndr
, const char *name
, enum netr_DeltaEnum r
)
3719 const char *val
= NULL
;
3722 case NETR_DELTA_DOMAIN
: val
= "NETR_DELTA_DOMAIN"; break;
3723 case NETR_DELTA_GROUP
: val
= "NETR_DELTA_GROUP"; break;
3724 case NETR_DELTA_DELETE_GROUP
: val
= "NETR_DELTA_DELETE_GROUP"; break;
3725 case NETR_DELTA_RENAME_GROUP
: val
= "NETR_DELTA_RENAME_GROUP"; break;
3726 case NETR_DELTA_USER
: val
= "NETR_DELTA_USER"; break;
3727 case NETR_DELTA_DELETE_USER
: val
= "NETR_DELTA_DELETE_USER"; break;
3728 case NETR_DELTA_RENAME_USER
: val
= "NETR_DELTA_RENAME_USER"; break;
3729 case NETR_DELTA_GROUP_MEMBER
: val
= "NETR_DELTA_GROUP_MEMBER"; break;
3730 case NETR_DELTA_ALIAS
: val
= "NETR_DELTA_ALIAS"; break;
3731 case NETR_DELTA_DELETE_ALIAS
: val
= "NETR_DELTA_DELETE_ALIAS"; break;
3732 case NETR_DELTA_RENAME_ALIAS
: val
= "NETR_DELTA_RENAME_ALIAS"; break;
3733 case NETR_DELTA_ALIAS_MEMBER
: val
= "NETR_DELTA_ALIAS_MEMBER"; break;
3734 case NETR_DELTA_POLICY
: val
= "NETR_DELTA_POLICY"; break;
3735 case NETR_DELTA_TRUSTED_DOMAIN
: val
= "NETR_DELTA_TRUSTED_DOMAIN"; break;
3736 case NETR_DELTA_DELETE_TRUST
: val
= "NETR_DELTA_DELETE_TRUST"; break;
3737 case NETR_DELTA_ACCOUNT
: val
= "NETR_DELTA_ACCOUNT"; break;
3738 case NETR_DELTA_DELETE_ACCOUNT
: val
= "NETR_DELTA_DELETE_ACCOUNT"; break;
3739 case NETR_DELTA_SECRET
: val
= "NETR_DELTA_SECRET"; break;
3740 case NETR_DELTA_DELETE_SECRET
: val
= "NETR_DELTA_DELETE_SECRET"; break;
3741 case NETR_DELTA_DELETE_GROUP2
: val
= "NETR_DELTA_DELETE_GROUP2"; break;
3742 case NETR_DELTA_DELETE_USER2
: val
= "NETR_DELTA_DELETE_USER2"; break;
3743 case NETR_DELTA_MODIFY_COUNT
: val
= "NETR_DELTA_MODIFY_COUNT"; break;
3745 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3748 static enum ndr_err_code
ndr_push_netr_DELTA_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_UNION
*r
)
3750 if (ndr_flags
& NDR_SCALARS
) {
3751 int level
= ndr_push_get_switch_value(ndr
, r
);
3752 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
3754 case NETR_DELTA_DOMAIN
: {
3755 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
3758 case NETR_DELTA_GROUP
: {
3759 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group
));
3762 case NETR_DELTA_DELETE_GROUP
: {
3765 case NETR_DELTA_RENAME_GROUP
: {
3766 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_group
));
3769 case NETR_DELTA_USER
: {
3770 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
3773 case NETR_DELTA_DELETE_USER
: {
3776 case NETR_DELTA_RENAME_USER
: {
3777 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_user
));
3780 case NETR_DELTA_GROUP_MEMBER
: {
3781 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_member
));
3784 case NETR_DELTA_ALIAS
: {
3785 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias
));
3788 case NETR_DELTA_DELETE_ALIAS
: {
3791 case NETR_DELTA_RENAME_ALIAS
: {
3792 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_alias
));
3795 case NETR_DELTA_ALIAS_MEMBER
: {
3796 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias_member
));
3799 case NETR_DELTA_POLICY
: {
3800 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
3803 case NETR_DELTA_TRUSTED_DOMAIN
: {
3804 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain
));
3807 case NETR_DELTA_DELETE_TRUST
: {
3808 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
3811 case NETR_DELTA_ACCOUNT
: {
3812 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account
));
3815 case NETR_DELTA_DELETE_ACCOUNT
: {
3816 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
3819 case NETR_DELTA_SECRET
: {
3820 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secret
));
3823 case NETR_DELTA_DELETE_SECRET
: {
3824 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
3827 case NETR_DELTA_DELETE_GROUP2
: {
3828 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_group
));
3831 case NETR_DELTA_DELETE_USER2
: {
3832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_user
));
3835 case NETR_DELTA_MODIFY_COUNT
: {
3836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->modified_count
));
3840 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3843 if (ndr_flags
& NDR_BUFFERS
) {
3844 int level
= ndr_push_get_switch_value(ndr
, r
);
3846 case NETR_DELTA_DOMAIN
:
3848 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
3852 case NETR_DELTA_GROUP
:
3854 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
3858 case NETR_DELTA_DELETE_GROUP
:
3861 case NETR_DELTA_RENAME_GROUP
:
3862 if (r
->rename_group
) {
3863 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
3867 case NETR_DELTA_USER
:
3869 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
3873 case NETR_DELTA_DELETE_USER
:
3876 case NETR_DELTA_RENAME_USER
:
3877 if (r
->rename_user
) {
3878 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
3882 case NETR_DELTA_GROUP_MEMBER
:
3883 if (r
->group_member
) {
3884 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
3888 case NETR_DELTA_ALIAS
:
3890 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
3894 case NETR_DELTA_DELETE_ALIAS
:
3897 case NETR_DELTA_RENAME_ALIAS
:
3898 if (r
->rename_alias
) {
3899 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
3903 case NETR_DELTA_ALIAS_MEMBER
:
3904 if (r
->alias_member
) {
3905 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
3909 case NETR_DELTA_POLICY
:
3911 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
3915 case NETR_DELTA_TRUSTED_DOMAIN
:
3916 if (r
->trusted_domain
) {
3917 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
3921 case NETR_DELTA_DELETE_TRUST
:
3924 case NETR_DELTA_ACCOUNT
:
3926 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
3930 case NETR_DELTA_DELETE_ACCOUNT
:
3933 case NETR_DELTA_SECRET
:
3935 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
3939 case NETR_DELTA_DELETE_SECRET
:
3942 case NETR_DELTA_DELETE_GROUP2
:
3943 if (r
->delete_group
) {
3944 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
3948 case NETR_DELTA_DELETE_USER2
:
3949 if (r
->delete_user
) {
3950 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
3954 case NETR_DELTA_MODIFY_COUNT
:
3955 if (r
->modified_count
) {
3956 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->modified_count
));
3961 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3964 return NDR_ERR_SUCCESS
;
3967 static enum ndr_err_code
ndr_pull_netr_DELTA_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_UNION
*r
)
3971 TALLOC_CTX
*_mem_save_domain_0
;
3972 TALLOC_CTX
*_mem_save_group_0
;
3973 TALLOC_CTX
*_mem_save_rename_group_0
;
3974 TALLOC_CTX
*_mem_save_user_0
;
3975 TALLOC_CTX
*_mem_save_rename_user_0
;
3976 TALLOC_CTX
*_mem_save_group_member_0
;
3977 TALLOC_CTX
*_mem_save_alias_0
;
3978 TALLOC_CTX
*_mem_save_rename_alias_0
;
3979 TALLOC_CTX
*_mem_save_alias_member_0
;
3980 TALLOC_CTX
*_mem_save_policy_0
;
3981 TALLOC_CTX
*_mem_save_trusted_domain_0
;
3982 TALLOC_CTX
*_mem_save_account_0
;
3983 TALLOC_CTX
*_mem_save_secret_0
;
3984 TALLOC_CTX
*_mem_save_delete_group_0
;
3985 TALLOC_CTX
*_mem_save_delete_user_0
;
3986 TALLOC_CTX
*_mem_save_modified_count_0
;
3987 level
= ndr_pull_get_switch_value(ndr
, r
);
3988 if (ndr_flags
& NDR_SCALARS
) {
3989 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
3990 if (_level
!= level
) {
3991 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
3994 case NETR_DELTA_DOMAIN
: {
3995 uint32_t _ptr_domain
;
3996 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
3998 NDR_PULL_ALLOC(ndr
, r
->domain
);
4004 case NETR_DELTA_GROUP
: {
4005 uint32_t _ptr_group
;
4006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group
));
4008 NDR_PULL_ALLOC(ndr
, r
->group
);
4014 case NETR_DELTA_DELETE_GROUP
: {
4017 case NETR_DELTA_RENAME_GROUP
: {
4018 uint32_t _ptr_rename_group
;
4019 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_group
));
4020 if (_ptr_rename_group
) {
4021 NDR_PULL_ALLOC(ndr
, r
->rename_group
);
4023 r
->rename_group
= NULL
;
4027 case NETR_DELTA_USER
: {
4029 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
4031 NDR_PULL_ALLOC(ndr
, r
->user
);
4037 case NETR_DELTA_DELETE_USER
: {
4040 case NETR_DELTA_RENAME_USER
: {
4041 uint32_t _ptr_rename_user
;
4042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_user
));
4043 if (_ptr_rename_user
) {
4044 NDR_PULL_ALLOC(ndr
, r
->rename_user
);
4046 r
->rename_user
= NULL
;
4050 case NETR_DELTA_GROUP_MEMBER
: {
4051 uint32_t _ptr_group_member
;
4052 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_member
));
4053 if (_ptr_group_member
) {
4054 NDR_PULL_ALLOC(ndr
, r
->group_member
);
4056 r
->group_member
= NULL
;
4060 case NETR_DELTA_ALIAS
: {
4061 uint32_t _ptr_alias
;
4062 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias
));
4064 NDR_PULL_ALLOC(ndr
, r
->alias
);
4070 case NETR_DELTA_DELETE_ALIAS
: {
4073 case NETR_DELTA_RENAME_ALIAS
: {
4074 uint32_t _ptr_rename_alias
;
4075 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_alias
));
4076 if (_ptr_rename_alias
) {
4077 NDR_PULL_ALLOC(ndr
, r
->rename_alias
);
4079 r
->rename_alias
= NULL
;
4083 case NETR_DELTA_ALIAS_MEMBER
: {
4084 uint32_t _ptr_alias_member
;
4085 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias_member
));
4086 if (_ptr_alias_member
) {
4087 NDR_PULL_ALLOC(ndr
, r
->alias_member
);
4089 r
->alias_member
= NULL
;
4093 case NETR_DELTA_POLICY
: {
4094 uint32_t _ptr_policy
;
4095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
4097 NDR_PULL_ALLOC(ndr
, r
->policy
);
4103 case NETR_DELTA_TRUSTED_DOMAIN
: {
4104 uint32_t _ptr_trusted_domain
;
4105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain
));
4106 if (_ptr_trusted_domain
) {
4107 NDR_PULL_ALLOC(ndr
, r
->trusted_domain
);
4109 r
->trusted_domain
= NULL
;
4113 case NETR_DELTA_DELETE_TRUST
: {
4114 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4117 case NETR_DELTA_ACCOUNT
: {
4118 uint32_t _ptr_account
;
4119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account
));
4121 NDR_PULL_ALLOC(ndr
, r
->account
);
4127 case NETR_DELTA_DELETE_ACCOUNT
: {
4128 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4131 case NETR_DELTA_SECRET
: {
4132 uint32_t _ptr_secret
;
4133 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secret
));
4135 NDR_PULL_ALLOC(ndr
, r
->secret
);
4141 case NETR_DELTA_DELETE_SECRET
: {
4142 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4145 case NETR_DELTA_DELETE_GROUP2
: {
4146 uint32_t _ptr_delete_group
;
4147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_group
));
4148 if (_ptr_delete_group
) {
4149 NDR_PULL_ALLOC(ndr
, r
->delete_group
);
4151 r
->delete_group
= NULL
;
4155 case NETR_DELTA_DELETE_USER2
: {
4156 uint32_t _ptr_delete_user
;
4157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_user
));
4158 if (_ptr_delete_user
) {
4159 NDR_PULL_ALLOC(ndr
, r
->delete_user
);
4161 r
->delete_user
= NULL
;
4165 case NETR_DELTA_MODIFY_COUNT
: {
4166 uint32_t _ptr_modified_count
;
4167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_modified_count
));
4168 if (_ptr_modified_count
) {
4169 NDR_PULL_ALLOC(ndr
, r
->modified_count
);
4171 r
->modified_count
= NULL
;
4176 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4179 if (ndr_flags
& NDR_BUFFERS
) {
4181 case NETR_DELTA_DOMAIN
:
4183 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4184 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4185 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4190 case NETR_DELTA_GROUP
:
4192 _mem_save_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4193 NDR_PULL_SET_MEM_CTX(ndr
, r
->group
, 0);
4194 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_0
, 0);
4199 case NETR_DELTA_DELETE_GROUP
:
4202 case NETR_DELTA_RENAME_GROUP
:
4203 if (r
->rename_group
) {
4204 _mem_save_rename_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4205 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_group
, 0);
4206 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_group_0
, 0);
4211 case NETR_DELTA_USER
:
4213 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4214 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
4215 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
4220 case NETR_DELTA_DELETE_USER
:
4223 case NETR_DELTA_RENAME_USER
:
4224 if (r
->rename_user
) {
4225 _mem_save_rename_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4226 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_user
, 0);
4227 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4228 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_user_0
, 0);
4232 case NETR_DELTA_GROUP_MEMBER
:
4233 if (r
->group_member
) {
4234 _mem_save_group_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4235 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_member
, 0);
4236 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4237 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_member_0
, 0);
4241 case NETR_DELTA_ALIAS
:
4243 _mem_save_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4244 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias
, 0);
4245 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_0
, 0);
4250 case NETR_DELTA_DELETE_ALIAS
:
4253 case NETR_DELTA_RENAME_ALIAS
:
4254 if (r
->rename_alias
) {
4255 _mem_save_rename_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4256 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_alias
, 0);
4257 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4258 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_alias_0
, 0);
4262 case NETR_DELTA_ALIAS_MEMBER
:
4263 if (r
->alias_member
) {
4264 _mem_save_alias_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4265 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias_member
, 0);
4266 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_member_0
, 0);
4271 case NETR_DELTA_POLICY
:
4273 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4274 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
4275 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
4280 case NETR_DELTA_TRUSTED_DOMAIN
:
4281 if (r
->trusted_domain
) {
4282 _mem_save_trusted_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4283 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain
, 0);
4284 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4285 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_0
, 0);
4289 case NETR_DELTA_DELETE_TRUST
:
4292 case NETR_DELTA_ACCOUNT
:
4294 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4295 NDR_PULL_SET_MEM_CTX(ndr
, r
->account
, 0);
4296 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, 0);
4301 case NETR_DELTA_DELETE_ACCOUNT
:
4304 case NETR_DELTA_SECRET
:
4306 _mem_save_secret_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4307 NDR_PULL_SET_MEM_CTX(ndr
, r
->secret
, 0);
4308 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secret_0
, 0);
4313 case NETR_DELTA_DELETE_SECRET
:
4316 case NETR_DELTA_DELETE_GROUP2
:
4317 if (r
->delete_group
) {
4318 _mem_save_delete_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4319 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_group
, 0);
4320 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_group_0
, 0);
4325 case NETR_DELTA_DELETE_USER2
:
4326 if (r
->delete_user
) {
4327 _mem_save_delete_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4328 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_user
, 0);
4329 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_user_0
, 0);
4334 case NETR_DELTA_MODIFY_COUNT
:
4335 if (r
->modified_count
) {
4336 _mem_save_modified_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4337 NDR_PULL_SET_MEM_CTX(ndr
, r
->modified_count
, 0);
4338 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->modified_count
));
4339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_modified_count_0
, 0);
4344 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4347 return NDR_ERR_SUCCESS
;
4350 _PUBLIC_
void ndr_print_netr_DELTA_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_UNION
*r
)
4353 level
= ndr_print_get_switch_value(ndr
, r
);
4354 ndr_print_union(ndr
, name
, level
, "netr_DELTA_UNION");
4356 case NETR_DELTA_DOMAIN
:
4357 ndr_print_ptr(ndr
, "domain", r
->domain
);
4360 ndr_print_netr_DELTA_DOMAIN(ndr
, "domain", r
->domain
);
4365 case NETR_DELTA_GROUP
:
4366 ndr_print_ptr(ndr
, "group", r
->group
);
4369 ndr_print_netr_DELTA_GROUP(ndr
, "group", r
->group
);
4374 case NETR_DELTA_DELETE_GROUP
:
4377 case NETR_DELTA_RENAME_GROUP
:
4378 ndr_print_ptr(ndr
, "rename_group", r
->rename_group
);
4380 if (r
->rename_group
) {
4381 ndr_print_netr_DELTA_RENAME(ndr
, "rename_group", r
->rename_group
);
4386 case NETR_DELTA_USER
:
4387 ndr_print_ptr(ndr
, "user", r
->user
);
4390 ndr_print_netr_DELTA_USER(ndr
, "user", r
->user
);
4395 case NETR_DELTA_DELETE_USER
:
4398 case NETR_DELTA_RENAME_USER
:
4399 ndr_print_ptr(ndr
, "rename_user", r
->rename_user
);
4401 if (r
->rename_user
) {
4402 ndr_print_netr_DELTA_RENAME(ndr
, "rename_user", r
->rename_user
);
4407 case NETR_DELTA_GROUP_MEMBER
:
4408 ndr_print_ptr(ndr
, "group_member", r
->group_member
);
4410 if (r
->group_member
) {
4411 ndr_print_netr_DELTA_GROUP_MEMBER(ndr
, "group_member", r
->group_member
);
4416 case NETR_DELTA_ALIAS
:
4417 ndr_print_ptr(ndr
, "alias", r
->alias
);
4420 ndr_print_netr_DELTA_ALIAS(ndr
, "alias", r
->alias
);
4425 case NETR_DELTA_DELETE_ALIAS
:
4428 case NETR_DELTA_RENAME_ALIAS
:
4429 ndr_print_ptr(ndr
, "rename_alias", r
->rename_alias
);
4431 if (r
->rename_alias
) {
4432 ndr_print_netr_DELTA_RENAME(ndr
, "rename_alias", r
->rename_alias
);
4437 case NETR_DELTA_ALIAS_MEMBER
:
4438 ndr_print_ptr(ndr
, "alias_member", r
->alias_member
);
4440 if (r
->alias_member
) {
4441 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr
, "alias_member", r
->alias_member
);
4446 case NETR_DELTA_POLICY
:
4447 ndr_print_ptr(ndr
, "policy", r
->policy
);
4450 ndr_print_netr_DELTA_POLICY(ndr
, "policy", r
->policy
);
4455 case NETR_DELTA_TRUSTED_DOMAIN
:
4456 ndr_print_ptr(ndr
, "trusted_domain", r
->trusted_domain
);
4458 if (r
->trusted_domain
) {
4459 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr
, "trusted_domain", r
->trusted_domain
);
4464 case NETR_DELTA_DELETE_TRUST
:
4465 ndr_print_netr_DELTA_DELETE_TRUST(ndr
, "delete_trust", &r
->delete_trust
);
4468 case NETR_DELTA_ACCOUNT
:
4469 ndr_print_ptr(ndr
, "account", r
->account
);
4472 ndr_print_netr_DELTA_ACCOUNT(ndr
, "account", r
->account
);
4477 case NETR_DELTA_DELETE_ACCOUNT
:
4478 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr
, "delete_account", &r
->delete_account
);
4481 case NETR_DELTA_SECRET
:
4482 ndr_print_ptr(ndr
, "secret", r
->secret
);
4485 ndr_print_netr_DELTA_SECRET(ndr
, "secret", r
->secret
);
4490 case NETR_DELTA_DELETE_SECRET
:
4491 ndr_print_netr_DELTA_DELETE_SECRET(ndr
, "delete_secret", &r
->delete_secret
);
4494 case NETR_DELTA_DELETE_GROUP2
:
4495 ndr_print_ptr(ndr
, "delete_group", r
->delete_group
);
4497 if (r
->delete_group
) {
4498 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_group", r
->delete_group
);
4503 case NETR_DELTA_DELETE_USER2
:
4504 ndr_print_ptr(ndr
, "delete_user", r
->delete_user
);
4506 if (r
->delete_user
) {
4507 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_user", r
->delete_user
);
4512 case NETR_DELTA_MODIFY_COUNT
:
4513 ndr_print_ptr(ndr
, "modified_count", r
->modified_count
);
4515 if (r
->modified_count
) {
4516 ndr_print_udlong(ndr
, "modified_count", *r
->modified_count
);
4522 ndr_print_bad_level(ndr
, name
, level
);
4526 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
)
4528 if (ndr_flags
& NDR_SCALARS
) {
4529 int level
= ndr_push_get_switch_value(ndr
, r
);
4530 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4532 case NETR_DELTA_DOMAIN
: {
4533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4536 case NETR_DELTA_GROUP
: {
4537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4540 case NETR_DELTA_DELETE_GROUP
: {
4541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4544 case NETR_DELTA_RENAME_GROUP
: {
4545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4548 case NETR_DELTA_USER
: {
4549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4552 case NETR_DELTA_DELETE_USER
: {
4553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4556 case NETR_DELTA_RENAME_USER
: {
4557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4560 case NETR_DELTA_GROUP_MEMBER
: {
4561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4564 case NETR_DELTA_ALIAS
: {
4565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4568 case NETR_DELTA_DELETE_ALIAS
: {
4569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4572 case NETR_DELTA_RENAME_ALIAS
: {
4573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4576 case NETR_DELTA_ALIAS_MEMBER
: {
4577 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4580 case NETR_DELTA_POLICY
: {
4581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4584 case NETR_DELTA_TRUSTED_DOMAIN
: {
4585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4588 case NETR_DELTA_DELETE_TRUST
: {
4589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4592 case NETR_DELTA_ACCOUNT
: {
4593 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4596 case NETR_DELTA_DELETE_ACCOUNT
: {
4597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4600 case NETR_DELTA_SECRET
: {
4601 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4604 case NETR_DELTA_DELETE_SECRET
: {
4605 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4608 case NETR_DELTA_DELETE_GROUP2
: {
4609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4612 case NETR_DELTA_DELETE_USER2
: {
4613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4616 case NETR_DELTA_MODIFY_COUNT
: {
4620 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4623 if (ndr_flags
& NDR_BUFFERS
) {
4624 int level
= ndr_push_get_switch_value(ndr
, r
);
4626 case NETR_DELTA_DOMAIN
:
4629 case NETR_DELTA_GROUP
:
4632 case NETR_DELTA_DELETE_GROUP
:
4635 case NETR_DELTA_RENAME_GROUP
:
4638 case NETR_DELTA_USER
:
4641 case NETR_DELTA_DELETE_USER
:
4644 case NETR_DELTA_RENAME_USER
:
4647 case NETR_DELTA_GROUP_MEMBER
:
4650 case NETR_DELTA_ALIAS
:
4653 case NETR_DELTA_DELETE_ALIAS
:
4656 case NETR_DELTA_RENAME_ALIAS
:
4659 case NETR_DELTA_ALIAS_MEMBER
:
4662 case NETR_DELTA_POLICY
:
4664 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4668 case NETR_DELTA_TRUSTED_DOMAIN
:
4670 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4674 case NETR_DELTA_DELETE_TRUST
:
4676 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4680 case NETR_DELTA_ACCOUNT
:
4682 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4686 case NETR_DELTA_DELETE_ACCOUNT
:
4688 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4692 case NETR_DELTA_SECRET
:
4694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4697 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4701 case NETR_DELTA_DELETE_SECRET
:
4703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4706 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4710 case NETR_DELTA_DELETE_GROUP2
:
4713 case NETR_DELTA_DELETE_USER2
:
4716 case NETR_DELTA_MODIFY_COUNT
:
4720 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4723 return NDR_ERR_SUCCESS
;
4726 static enum ndr_err_code
ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_ID_UNION
*r
)
4730 TALLOC_CTX
*_mem_save_sid_0
;
4731 TALLOC_CTX
*_mem_save_name_0
;
4732 level
= ndr_pull_get_switch_value(ndr
, r
);
4733 if (ndr_flags
& NDR_SCALARS
) {
4734 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4735 if (_level
!= level
) {
4736 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
4739 case NETR_DELTA_DOMAIN
: {
4740 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4743 case NETR_DELTA_GROUP
: {
4744 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4747 case NETR_DELTA_DELETE_GROUP
: {
4748 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4751 case NETR_DELTA_RENAME_GROUP
: {
4752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4755 case NETR_DELTA_USER
: {
4756 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4759 case NETR_DELTA_DELETE_USER
: {
4760 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4763 case NETR_DELTA_RENAME_USER
: {
4764 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4767 case NETR_DELTA_GROUP_MEMBER
: {
4768 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4771 case NETR_DELTA_ALIAS
: {
4772 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4775 case NETR_DELTA_DELETE_ALIAS
: {
4776 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4779 case NETR_DELTA_RENAME_ALIAS
: {
4780 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4783 case NETR_DELTA_ALIAS_MEMBER
: {
4784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4787 case NETR_DELTA_POLICY
: {
4789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4791 NDR_PULL_ALLOC(ndr
, r
->sid
);
4797 case NETR_DELTA_TRUSTED_DOMAIN
: {
4799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4801 NDR_PULL_ALLOC(ndr
, r
->sid
);
4807 case NETR_DELTA_DELETE_TRUST
: {
4809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4811 NDR_PULL_ALLOC(ndr
, r
->sid
);
4817 case NETR_DELTA_ACCOUNT
: {
4819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4821 NDR_PULL_ALLOC(ndr
, r
->sid
);
4827 case NETR_DELTA_DELETE_ACCOUNT
: {
4829 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4831 NDR_PULL_ALLOC(ndr
, r
->sid
);
4837 case NETR_DELTA_SECRET
: {
4839 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
4841 NDR_PULL_ALLOC(ndr
, r
->name
);
4847 case NETR_DELTA_DELETE_SECRET
: {
4849 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
4851 NDR_PULL_ALLOC(ndr
, r
->name
);
4857 case NETR_DELTA_DELETE_GROUP2
: {
4858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4861 case NETR_DELTA_DELETE_USER2
: {
4862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4865 case NETR_DELTA_MODIFY_COUNT
: {
4869 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4872 if (ndr_flags
& NDR_BUFFERS
) {
4874 case NETR_DELTA_DOMAIN
:
4877 case NETR_DELTA_GROUP
:
4880 case NETR_DELTA_DELETE_GROUP
:
4883 case NETR_DELTA_RENAME_GROUP
:
4886 case NETR_DELTA_USER
:
4889 case NETR_DELTA_DELETE_USER
:
4892 case NETR_DELTA_RENAME_USER
:
4895 case NETR_DELTA_GROUP_MEMBER
:
4898 case NETR_DELTA_ALIAS
:
4901 case NETR_DELTA_DELETE_ALIAS
:
4904 case NETR_DELTA_RENAME_ALIAS
:
4907 case NETR_DELTA_ALIAS_MEMBER
:
4910 case NETR_DELTA_POLICY
:
4912 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4913 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4914 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4915 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4919 case NETR_DELTA_TRUSTED_DOMAIN
:
4921 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4922 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4923 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4928 case NETR_DELTA_DELETE_TRUST
:
4930 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4931 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4932 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4937 case NETR_DELTA_ACCOUNT
:
4939 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4940 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4941 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4946 case NETR_DELTA_DELETE_ACCOUNT
:
4948 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4949 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4950 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4955 case NETR_DELTA_SECRET
:
4957 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4958 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
4959 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
4960 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
4961 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
4962 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
4964 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
4965 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
4966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
4970 case NETR_DELTA_DELETE_SECRET
:
4972 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4973 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
4974 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
4975 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
4976 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
4977 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
4979 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
4980 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
4981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
4985 case NETR_DELTA_DELETE_GROUP2
:
4988 case NETR_DELTA_DELETE_USER2
:
4991 case NETR_DELTA_MODIFY_COUNT
:
4995 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4998 return NDR_ERR_SUCCESS
;
5001 _PUBLIC_
void ndr_print_netr_DELTA_ID_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_ID_UNION
*r
)
5004 level
= ndr_print_get_switch_value(ndr
, r
);
5005 ndr_print_union(ndr
, name
, level
, "netr_DELTA_ID_UNION");
5007 case NETR_DELTA_DOMAIN
:
5008 ndr_print_uint32(ndr
, "rid", r
->rid
);
5011 case NETR_DELTA_GROUP
:
5012 ndr_print_uint32(ndr
, "rid", r
->rid
);
5015 case NETR_DELTA_DELETE_GROUP
:
5016 ndr_print_uint32(ndr
, "rid", r
->rid
);
5019 case NETR_DELTA_RENAME_GROUP
:
5020 ndr_print_uint32(ndr
, "rid", r
->rid
);
5023 case NETR_DELTA_USER
:
5024 ndr_print_uint32(ndr
, "rid", r
->rid
);
5027 case NETR_DELTA_DELETE_USER
:
5028 ndr_print_uint32(ndr
, "rid", r
->rid
);
5031 case NETR_DELTA_RENAME_USER
:
5032 ndr_print_uint32(ndr
, "rid", r
->rid
);
5035 case NETR_DELTA_GROUP_MEMBER
:
5036 ndr_print_uint32(ndr
, "rid", r
->rid
);
5039 case NETR_DELTA_ALIAS
:
5040 ndr_print_uint32(ndr
, "rid", r
->rid
);
5043 case NETR_DELTA_DELETE_ALIAS
:
5044 ndr_print_uint32(ndr
, "rid", r
->rid
);
5047 case NETR_DELTA_RENAME_ALIAS
:
5048 ndr_print_uint32(ndr
, "rid", r
->rid
);
5051 case NETR_DELTA_ALIAS_MEMBER
:
5052 ndr_print_uint32(ndr
, "rid", r
->rid
);
5055 case NETR_DELTA_POLICY
:
5056 ndr_print_ptr(ndr
, "sid", r
->sid
);
5059 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5064 case NETR_DELTA_TRUSTED_DOMAIN
:
5065 ndr_print_ptr(ndr
, "sid", r
->sid
);
5068 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5073 case NETR_DELTA_DELETE_TRUST
:
5074 ndr_print_ptr(ndr
, "sid", r
->sid
);
5077 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5082 case NETR_DELTA_ACCOUNT
:
5083 ndr_print_ptr(ndr
, "sid", r
->sid
);
5086 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5091 case NETR_DELTA_DELETE_ACCOUNT
:
5092 ndr_print_ptr(ndr
, "sid", r
->sid
);
5095 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5100 case NETR_DELTA_SECRET
:
5101 ndr_print_ptr(ndr
, "name", r
->name
);
5104 ndr_print_string(ndr
, "name", r
->name
);
5109 case NETR_DELTA_DELETE_SECRET
:
5110 ndr_print_ptr(ndr
, "name", r
->name
);
5113 ndr_print_string(ndr
, "name", r
->name
);
5118 case NETR_DELTA_DELETE_GROUP2
:
5119 ndr_print_uint32(ndr
, "rid", r
->rid
);
5122 case NETR_DELTA_DELETE_USER2
:
5123 ndr_print_uint32(ndr
, "rid", r
->rid
);
5126 case NETR_DELTA_MODIFY_COUNT
:
5130 ndr_print_bad_level(ndr
, name
, level
);
5134 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM
*r
)
5136 if (ndr_flags
& NDR_SCALARS
) {
5137 NDR_CHECK(ndr_push_align(ndr
, 4));
5138 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, r
->delta_type
));
5139 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5140 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5141 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5142 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5144 if (ndr_flags
& NDR_BUFFERS
) {
5145 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5146 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5148 return NDR_ERR_SUCCESS
;
5151 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM
*r
)
5153 if (ndr_flags
& NDR_SCALARS
) {
5154 NDR_CHECK(ndr_pull_align(ndr
, 4));
5155 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr
, NDR_SCALARS
, &r
->delta_type
));
5156 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5157 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5158 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5159 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5161 if (ndr_flags
& NDR_BUFFERS
) {
5162 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5163 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5165 return NDR_ERR_SUCCESS
;
5168 _PUBLIC_
void ndr_print_netr_DELTA_ENUM(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM
*r
)
5170 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM");
5172 ndr_print_netr_DeltaEnum(ndr
, "delta_type", r
->delta_type
);
5173 ndr_print_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
);
5174 ndr_print_netr_DELTA_ID_UNION(ndr
, "delta_id_union", &r
->delta_id_union
);
5175 ndr_print_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
);
5176 ndr_print_netr_DELTA_UNION(ndr
, "delta_union", &r
->delta_union
);
5180 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
)
5182 uint32_t cntr_delta_enum_1
;
5183 if (ndr_flags
& NDR_SCALARS
) {
5184 NDR_CHECK(ndr_push_align(ndr
, 4));
5185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5186 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delta_enum
));
5188 if (ndr_flags
& NDR_BUFFERS
) {
5189 if (r
->delta_enum
) {
5190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5191 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5192 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5194 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5195 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5199 return NDR_ERR_SUCCESS
;
5202 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM_ARRAY
*r
)
5204 uint32_t _ptr_delta_enum
;
5205 uint32_t cntr_delta_enum_1
;
5206 TALLOC_CTX
*_mem_save_delta_enum_0
;
5207 TALLOC_CTX
*_mem_save_delta_enum_1
;
5208 if (ndr_flags
& NDR_SCALARS
) {
5209 NDR_CHECK(ndr_pull_align(ndr
, 4));
5210 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_deltas
));
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum
));
5212 if (_ptr_delta_enum
) {
5213 NDR_PULL_ALLOC(ndr
, r
->delta_enum
);
5215 r
->delta_enum
= NULL
;
5218 if (ndr_flags
& NDR_BUFFERS
) {
5219 if (r
->delta_enum
) {
5220 _mem_save_delta_enum_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5221 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5222 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->delta_enum
));
5223 NDR_PULL_ALLOC_N(ndr
, r
->delta_enum
, ndr_get_array_size(ndr
, &r
->delta_enum
));
5224 _mem_save_delta_enum_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5225 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5226 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5227 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5229 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5230 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5232 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_1
, 0);
5233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_0
, 0);
5235 if (r
->delta_enum
) {
5236 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->delta_enum
, r
->num_deltas
));
5239 return NDR_ERR_SUCCESS
;
5242 _PUBLIC_
void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5244 uint32_t cntr_delta_enum_1
;
5245 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM_ARRAY");
5247 ndr_print_uint32(ndr
, "num_deltas", r
->num_deltas
);
5248 ndr_print_ptr(ndr
, "delta_enum", r
->delta_enum
);
5250 if (r
->delta_enum
) {
5251 ndr
->print(ndr
, "%s: ARRAY(%d)", "delta_enum", (int)r
->num_deltas
);
5253 for (cntr_delta_enum_1
=0;cntr_delta_enum_1
<r
->num_deltas
;cntr_delta_enum_1
++) {
5255 if (asprintf(&idx_1
, "[%d]", cntr_delta_enum_1
) != -1) {
5256 ndr_print_netr_DELTA_ENUM(ndr
, "delta_enum", &r
->delta_enum
[cntr_delta_enum_1
]);
5266 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
)
5269 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5270 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5271 if (ndr_flags
& NDR_SCALARS
) {
5272 NDR_CHECK(ndr_push_align(ndr
, 4));
5273 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timecreated
));
5275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number
));
5277 if (ndr_flags
& NDR_BUFFERS
) {
5279 ndr
->flags
= _flags_save_STRUCT
;
5281 return NDR_ERR_SUCCESS
;
5284 static enum ndr_err_code
ndr_pull_netr_UAS_INFO_0(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UAS_INFO_0
*r
)
5287 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5288 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5289 if (ndr_flags
& NDR_SCALARS
) {
5290 NDR_CHECK(ndr_pull_align(ndr
, 4));
5291 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5292 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timecreated
));
5293 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number
));
5295 if (ndr_flags
& NDR_BUFFERS
) {
5297 ndr
->flags
= _flags_save_STRUCT
;
5299 return NDR_ERR_SUCCESS
;
5302 _PUBLIC_
void ndr_print_netr_UAS_INFO_0(struct ndr_print
*ndr
, const char *name
, const struct netr_UAS_INFO_0
*r
)
5304 ndr_print_struct(ndr
, name
, "netr_UAS_INFO_0");
5306 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5307 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5309 ndr_print_array_uint8(ndr
, "computer_name", r
->computer_name
, 16);
5310 ndr_print_uint32(ndr
, "timecreated", r
->timecreated
);
5311 ndr_print_uint32(ndr
, "serial_number", r
->serial_number
);
5313 ndr
->flags
= _flags_save_STRUCT
;
5317 static enum ndr_err_code
ndr_push_netr_AccountBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AccountBuffer
*r
)
5319 if (ndr_flags
& NDR_SCALARS
) {
5320 NDR_CHECK(ndr_push_align(ndr
, 4));
5322 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5324 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
5325 ndr
->flags
= _flags_save_DATA_BLOB
;
5328 if (ndr_flags
& NDR_BUFFERS
) {
5330 return NDR_ERR_SUCCESS
;
5333 static enum ndr_err_code
ndr_pull_netr_AccountBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AccountBuffer
*r
)
5335 if (ndr_flags
& NDR_SCALARS
) {
5336 NDR_CHECK(ndr_pull_align(ndr
, 4));
5338 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5339 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5340 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->blob
));
5341 ndr
->flags
= _flags_save_DATA_BLOB
;
5344 if (ndr_flags
& NDR_BUFFERS
) {
5346 return NDR_ERR_SUCCESS
;
5349 _PUBLIC_
void ndr_print_netr_AccountBuffer(struct ndr_print
*ndr
, const char *name
, const struct netr_AccountBuffer
*r
)
5351 ndr_print_struct(ndr
, name
, "netr_AccountBuffer");
5353 ndr_print_DATA_BLOB(ndr
, "blob", r
->blob
);
5357 static enum ndr_err_code
ndr_push_netr_InfoFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5360 return NDR_ERR_SUCCESS
;
5363 static enum ndr_err_code
ndr_pull_netr_InfoFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5368 return NDR_ERR_SUCCESS
;
5371 _PUBLIC_
void ndr_print_netr_InfoFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5373 ndr_print_uint32(ndr
, name
, r
);
5375 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED
, r
);
5376 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS
, r
);
5377 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC
, r
);
5381 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
)
5383 if (ndr_flags
& NDR_SCALARS
) {
5384 NDR_CHECK(ndr_push_align(ndr
, 4));
5385 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5388 if (ndr_flags
& NDR_BUFFERS
) {
5390 return NDR_ERR_SUCCESS
;
5393 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5395 if (ndr_flags
& NDR_SCALARS
) {
5396 NDR_CHECK(ndr_pull_align(ndr
, 4));
5397 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5400 if (ndr_flags
& NDR_BUFFERS
) {
5402 return NDR_ERR_SUCCESS
;
5405 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5407 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5409 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5410 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5414 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
)
5416 if (ndr_flags
& NDR_SCALARS
) {
5417 NDR_CHECK(ndr_push_align(ndr
, 4));
5418 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5420 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5423 if (ndr_flags
& NDR_BUFFERS
) {
5424 if (r
->trusted_dc_name
) {
5425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5428 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
));
5431 return NDR_ERR_SUCCESS
;
5434 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5436 uint32_t _ptr_trusted_dc_name
;
5437 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5438 if (ndr_flags
& NDR_SCALARS
) {
5439 NDR_CHECK(ndr_pull_align(ndr
, 4));
5440 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5442 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5443 if (_ptr_trusted_dc_name
) {
5444 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5446 r
->trusted_dc_name
= NULL
;
5448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5450 if (ndr_flags
& NDR_BUFFERS
) {
5451 if (r
->trusted_dc_name
) {
5452 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5453 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5454 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5455 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5456 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5457 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->trusted_dc_name
), ndr_get_array_length(ndr
, &r
->trusted_dc_name
));
5459 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5460 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_dc_name
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t), CH_UTF16
));
5461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5464 return NDR_ERR_SUCCESS
;
5467 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5469 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5471 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5472 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5473 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5475 if (r
->trusted_dc_name
) {
5476 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5479 ndr_print_uint32(ndr
, "tc_connection_status", r
->tc_connection_status
);
5483 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
)
5485 if (ndr_flags
& NDR_SCALARS
) {
5486 NDR_CHECK(ndr_push_align(ndr
, 4));
5487 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5491 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5495 if (ndr_flags
& NDR_BUFFERS
) {
5497 return NDR_ERR_SUCCESS
;
5500 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5502 if (ndr_flags
& NDR_SCALARS
) {
5503 NDR_CHECK(ndr_pull_align(ndr
, 4));
5504 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5505 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5507 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5508 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5509 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5510 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5512 if (ndr_flags
& NDR_BUFFERS
) {
5514 return NDR_ERR_SUCCESS
;
5517 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5519 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5521 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5522 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5523 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5524 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5525 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5526 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5527 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5531 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
)
5533 if (ndr_flags
& NDR_SCALARS
) {
5534 int level
= ndr_push_get_switch_value(ndr
, r
);
5535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5542 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5546 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5550 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5553 if (ndr_flags
& NDR_BUFFERS
) {
5554 int level
= ndr_push_get_switch_value(ndr
, r
);
5558 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5564 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5570 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5575 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5578 return NDR_ERR_SUCCESS
;
5581 static enum ndr_err_code
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5585 TALLOC_CTX
*_mem_save_info1_0
;
5586 TALLOC_CTX
*_mem_save_info2_0
;
5587 TALLOC_CTX
*_mem_save_info3_0
;
5588 level
= ndr_pull_get_switch_value(ndr
, r
);
5589 if (ndr_flags
& NDR_SCALARS
) {
5590 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5591 if (_level
!= level
) {
5592 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5596 uint32_t _ptr_info1
;
5597 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5599 NDR_PULL_ALLOC(ndr
, r
->info1
);
5606 uint32_t _ptr_info2
;
5607 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5609 NDR_PULL_ALLOC(ndr
, r
->info2
);
5616 uint32_t _ptr_info3
;
5617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5619 NDR_PULL_ALLOC(ndr
, r
->info3
);
5626 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5629 if (ndr_flags
& NDR_BUFFERS
) {
5633 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5634 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5635 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5642 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5643 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5644 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5651 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5652 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5653 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5659 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5662 return NDR_ERR_SUCCESS
;
5665 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
5668 level
= ndr_print_get_switch_value(ndr
, r
);
5669 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
5672 ndr_print_ptr(ndr
, "info1", r
->info1
);
5675 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
5681 ndr_print_ptr(ndr
, "info2", r
->info2
);
5684 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
5690 ndr_print_ptr(ndr
, "info3", r
->info3
);
5693 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
5699 ndr_print_bad_level(ndr
, name
, level
);
5703 static enum ndr_err_code
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
5705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5706 return NDR_ERR_SUCCESS
;
5709 static enum ndr_err_code
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
5712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5714 return NDR_ERR_SUCCESS
;
5717 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
5719 const char *val
= NULL
;
5722 case NETLOGON_CONTROL_SYNC
: val
= "NETLOGON_CONTROL_SYNC"; break;
5723 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
5724 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
5725 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5726 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
5728 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5731 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
)
5733 if (ndr_flags
& NDR_SCALARS
) {
5734 int level
= ndr_push_get_switch_value(ndr
, r
);
5735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5737 case NETLOGON_CONTROL_REDISCOVER
: {
5738 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5741 case NETLOGON_CONTROL_TC_QUERY
: {
5742 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5745 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
5746 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5749 case NETLOGON_CONTROL_SET_DBFLAG
: {
5750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
5754 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5757 if (ndr_flags
& NDR_BUFFERS
) {
5758 int level
= ndr_push_get_switch_value(ndr
, r
);
5760 case NETLOGON_CONTROL_REDISCOVER
:
5762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5765 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5769 case NETLOGON_CONTROL_TC_QUERY
:
5771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5774 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5778 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5783 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5787 case NETLOGON_CONTROL_SET_DBFLAG
:
5791 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5794 return NDR_ERR_SUCCESS
;
5797 static enum ndr_err_code
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
5801 TALLOC_CTX
*_mem_save_domain_0
;
5802 level
= ndr_pull_get_switch_value(ndr
, r
);
5803 if (ndr_flags
& NDR_SCALARS
) {
5804 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5805 if (_level
!= level
) {
5806 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5809 case NETLOGON_CONTROL_REDISCOVER
: {
5810 uint32_t _ptr_domain
;
5811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5813 NDR_PULL_ALLOC(ndr
, r
->domain
);
5819 case NETLOGON_CONTROL_TC_QUERY
: {
5820 uint32_t _ptr_domain
;
5821 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5823 NDR_PULL_ALLOC(ndr
, r
->domain
);
5829 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
5830 uint32_t _ptr_domain
;
5831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5833 NDR_PULL_ALLOC(ndr
, r
->domain
);
5839 case NETLOGON_CONTROL_SET_DBFLAG
: {
5840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
5844 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5847 if (ndr_flags
& NDR_BUFFERS
) {
5849 case NETLOGON_CONTROL_REDISCOVER
:
5851 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5852 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5855 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5856 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
5858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5864 case NETLOGON_CONTROL_TC_QUERY
:
5866 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5867 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5868 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5869 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5870 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5871 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
5873 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5874 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5875 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5879 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5881 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5882 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5885 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
5888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5894 case NETLOGON_CONTROL_SET_DBFLAG
:
5898 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5901 return NDR_ERR_SUCCESS
;
5904 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
5907 level
= ndr_print_get_switch_value(ndr
, r
);
5908 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
5910 case NETLOGON_CONTROL_REDISCOVER
:
5911 ndr_print_ptr(ndr
, "domain", r
->domain
);
5914 ndr_print_string(ndr
, "domain", r
->domain
);
5919 case NETLOGON_CONTROL_TC_QUERY
:
5920 ndr_print_ptr(ndr
, "domain", r
->domain
);
5923 ndr_print_string(ndr
, "domain", r
->domain
);
5928 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5929 ndr_print_ptr(ndr
, "domain", r
->domain
);
5932 ndr_print_string(ndr
, "domain", r
->domain
);
5937 case NETLOGON_CONTROL_SET_DBFLAG
:
5938 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
5942 ndr_print_bad_level(ndr
, name
, level
);
5946 static enum ndr_err_code
ndr_push_netr_NegotiateFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5949 return NDR_ERR_SUCCESS
;
5952 static enum ndr_err_code
ndr_pull_netr_NegotiateFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5957 return NDR_ERR_SUCCESS
;
5960 _PUBLIC_
void ndr_print_netr_NegotiateFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5962 ndr_print_uint32(ndr
, name
, r
);
5964 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT
, r
);
5965 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL
, r
);
5966 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR
, r
);
5967 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT
, r
);
5968 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC
, r
);
5969 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL
, r
);
5970 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS
, r
);
5971 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO
, r
);
5972 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL
, r
);
5973 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC
, r
);
5974 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH
, r
);
5975 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC
, r
);
5976 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL
, r
);
5977 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL
, r
);
5978 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT
, r
);
5979 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS
, r
);
5980 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS
, r
);
5981 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2
, r
);
5982 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO
, r
);
5983 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS
, r
);
5984 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION
, r
);
5985 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH
, r
);
5986 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS
, r
);
5987 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL
, r
);
5991 static enum ndr_err_code
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
5993 if (ndr_flags
& NDR_SCALARS
) {
5994 NDR_CHECK(ndr_push_align(ndr
, 4));
5995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
5996 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
5998 if (ndr_flags
& NDR_BUFFERS
) {
6000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6001 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6004 return NDR_ERR_SUCCESS
;
6007 static enum ndr_err_code
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6010 TALLOC_CTX
*_mem_save_data_0
;
6011 if (ndr_flags
& NDR_SCALARS
) {
6012 NDR_CHECK(ndr_pull_align(ndr
, 4));
6013 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6016 NDR_PULL_ALLOC(ndr
, r
->data
);
6021 if (ndr_flags
& NDR_BUFFERS
) {
6023 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6024 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6025 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6026 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6027 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
6028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6031 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6034 return NDR_ERR_SUCCESS
;
6037 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6039 ndr_print_struct(ndr
, name
, "netr_Blob");
6041 ndr_print_uint32(ndr
, "length", r
->length
);
6042 ndr_print_ptr(ndr
, "data", r
->data
);
6045 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6051 static enum ndr_err_code
ndr_push_netr_DsRGetDCName_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6054 return NDR_ERR_SUCCESS
;
6057 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6060 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6062 return NDR_ERR_SUCCESS
;
6065 _PUBLIC_
void ndr_print_netr_DsRGetDCName_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6067 ndr_print_uint32(ndr
, name
, r
);
6069 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY
, r
);
6070 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED
, r
);
6071 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED
, r
);
6072 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED
, r
);
6073 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED
, r
);
6074 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY
, r
);
6075 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED
, r
);
6076 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED
, r
);
6077 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED
, r
);
6078 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED
, r
);
6079 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED
, r
);
6080 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF
, r
);
6081 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED
, r
);
6082 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME
, r
);
6083 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME
, r
);
6084 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE
, r
);
6085 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED
, r
);
6086 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME
, r
);
6087 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME
, r
);
6091 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType r
)
6093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6094 return NDR_ERR_SUCCESS
;
6097 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType
*r
)
6100 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6102 return NDR_ERR_SUCCESS
;
6105 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print
*ndr
, const char *name
, enum netr_DsRGetDCNameInfo_AddressType r
)
6107 const char *val
= NULL
;
6110 case DS_ADDRESS_TYPE_INET
: val
= "DS_ADDRESS_TYPE_INET"; break;
6111 case DS_ADDRESS_TYPE_NETBIOS
: val
= "DS_ADDRESS_TYPE_NETBIOS"; break;
6113 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6116 static enum ndr_err_code
ndr_push_netr_DsR_DcFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6119 return NDR_ERR_SUCCESS
;
6122 static enum ndr_err_code
ndr_pull_netr_DsR_DcFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6127 return NDR_ERR_SUCCESS
;
6130 _PUBLIC_
void ndr_print_netr_DsR_DcFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6132 ndr_print_uint32(ndr
, name
, r
);
6134 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC
, r
);
6135 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC
, r
);
6136 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP
, r
);
6137 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS
, r
);
6138 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC
, r
);
6139 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV
, r
);
6140 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST
, r
);
6141 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE
, r
);
6142 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV
, r
);
6143 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC
, r
);
6144 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
6145 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6
, r
);
6146 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER
, r
);
6147 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN
, r
);
6148 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST
, r
);
6152 _PUBLIC_
enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
6154 if (ndr_flags
& NDR_SCALARS
) {
6155 NDR_CHECK(ndr_push_align(ndr
, 4));
6156 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
6157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
6158 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, r
->dc_address_type
));
6159 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6160 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6161 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
6162 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, r
->dc_flags
));
6163 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
6164 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
6166 if (ndr_flags
& NDR_BUFFERS
) {
6168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6171 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6173 if (r
->dc_address
) {
6174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6177 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6179 NDR_CHECK(ndr_push_GUID(ndr
, NDR_BUFFERS
, &r
->domain_guid
));
6180 if (r
->domain_name
) {
6181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6182 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6183 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6184 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6186 if (r
->forest_name
) {
6187 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6188 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6190 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6192 if (r
->dc_site_name
) {
6193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6196 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
));
6198 if (r
->client_site_name
) {
6199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6202 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
));
6205 return NDR_ERR_SUCCESS
;
6208 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
6210 uint32_t _ptr_dc_unc
;
6211 TALLOC_CTX
*_mem_save_dc_unc_0
;
6212 uint32_t _ptr_dc_address
;
6213 TALLOC_CTX
*_mem_save_dc_address_0
;
6214 uint32_t _ptr_domain_name
;
6215 TALLOC_CTX
*_mem_save_domain_name_0
;
6216 uint32_t _ptr_forest_name
;
6217 TALLOC_CTX
*_mem_save_forest_name_0
;
6218 uint32_t _ptr_dc_site_name
;
6219 TALLOC_CTX
*_mem_save_dc_site_name_0
;
6220 uint32_t _ptr_client_site_name
;
6221 TALLOC_CTX
*_mem_save_client_site_name_0
;
6222 if (ndr_flags
& NDR_SCALARS
) {
6223 NDR_CHECK(ndr_pull_align(ndr
, 4));
6224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
6226 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
6230 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
6231 if (_ptr_dc_address
) {
6232 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
6234 r
->dc_address
= NULL
;
6236 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
6237 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
6239 if (_ptr_domain_name
) {
6240 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
6242 r
->domain_name
= NULL
;
6244 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
6245 if (_ptr_forest_name
) {
6246 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
6248 r
->forest_name
= NULL
;
6250 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, &r
->dc_flags
));
6251 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
6252 if (_ptr_dc_site_name
) {
6253 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
6255 r
->dc_site_name
= NULL
;
6257 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
6258 if (_ptr_client_site_name
) {
6259 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
6261 r
->client_site_name
= NULL
;
6264 if (ndr_flags
& NDR_BUFFERS
) {
6266 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6267 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
6268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
6269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
6270 if (ndr_get_array_length(ndr
, &r
->dc_unc
) > ndr_get_array_size(ndr
, &r
->dc_unc
)) {
6271 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_unc
), ndr_get_array_length(ndr
, &r
->dc_unc
));
6273 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t)));
6274 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t), CH_UTF16
));
6275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
6277 if (r
->dc_address
) {
6278 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6279 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
6280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
6281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
6282 if (ndr_get_array_length(ndr
, &r
->dc_address
) > ndr_get_array_size(ndr
, &r
->dc_address
)) {
6283 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_address
), ndr_get_array_length(ndr
, &r
->dc_address
));
6285 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t)));
6286 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t), CH_UTF16
));
6287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
6289 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_BUFFERS
, &r
->domain_guid
));
6290 if (r
->domain_name
) {
6291 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6292 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
6293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
6294 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
6295 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
6296 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain_name
), ndr_get_array_length(ndr
, &r
->domain_name
));
6298 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
6299 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
6300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
6302 if (r
->forest_name
) {
6303 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6304 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
6305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
6306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
6307 if (ndr_get_array_length(ndr
, &r
->forest_name
) > ndr_get_array_size(ndr
, &r
->forest_name
)) {
6308 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->forest_name
), ndr_get_array_length(ndr
, &r
->forest_name
));
6310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t)));
6311 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t), CH_UTF16
));
6312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
6314 if (r
->dc_site_name
) {
6315 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6316 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
6317 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
6318 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
6319 if (ndr_get_array_length(ndr
, &r
->dc_site_name
) > ndr_get_array_size(ndr
, &r
->dc_site_name
)) {
6320 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_site_name
), ndr_get_array_length(ndr
, &r
->dc_site_name
));
6322 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t)));
6323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_site_name
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t), CH_UTF16
));
6324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
6326 if (r
->client_site_name
) {
6327 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6328 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
6329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
6330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
6331 if (ndr_get_array_length(ndr
, &r
->client_site_name
) > ndr_get_array_size(ndr
, &r
->client_site_name
)) {
6332 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client_site_name
), ndr_get_array_length(ndr
, &r
->client_site_name
));
6334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t)));
6335 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client_site_name
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t), CH_UTF16
));
6336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
6339 return NDR_ERR_SUCCESS
;
6342 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
6344 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
6346 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
6349 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
6352 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
6354 if (r
->dc_address
) {
6355 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
6358 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr
, "dc_address_type", r
->dc_address_type
);
6359 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
6360 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
6362 if (r
->domain_name
) {
6363 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
6366 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
6368 if (r
->forest_name
) {
6369 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
6372 ndr_print_netr_DsR_DcFlags(ndr
, "dc_flags", r
->dc_flags
);
6373 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
6375 if (r
->dc_site_name
) {
6376 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
6379 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
6381 if (r
->client_site_name
) {
6382 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
6388 static enum ndr_err_code
ndr_push_netr_Capabilities(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Capabilities
*r
)
6390 if (ndr_flags
& NDR_SCALARS
) {
6391 int level
= ndr_push_get_switch_value(ndr
, r
);
6392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6395 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->server_capabilities
));
6399 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6402 if (ndr_flags
& NDR_BUFFERS
) {
6403 int level
= ndr_push_get_switch_value(ndr
, r
);
6409 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6412 return NDR_ERR_SUCCESS
;
6415 static enum ndr_err_code
ndr_pull_netr_Capabilities(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Capabilities
*r
)
6419 level
= ndr_pull_get_switch_value(ndr
, r
);
6420 if (ndr_flags
& NDR_SCALARS
) {
6421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6422 if (_level
!= level
) {
6423 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
6427 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->server_capabilities
));
6431 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6434 if (ndr_flags
& NDR_BUFFERS
) {
6440 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6443 return NDR_ERR_SUCCESS
;
6446 _PUBLIC_
void ndr_print_netr_Capabilities(struct ndr_print
*ndr
, const char *name
, const union netr_Capabilities
*r
)
6449 level
= ndr_print_get_switch_value(ndr
, r
);
6450 ndr_print_union(ndr
, name
, level
, "netr_Capabilities");
6453 ndr_print_netr_NegotiateFlags(ndr
, "server_capabilities", r
->server_capabilities
);
6457 ndr_print_bad_level(ndr
, name
, level
);
6461 static enum ndr_err_code
ndr_push_netr_BinaryString(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_BinaryString
*r
)
6463 uint32_t cntr_data_1
;
6465 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6466 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6467 if (ndr_flags
& NDR_SCALARS
) {
6468 NDR_CHECK(ndr_push_align(ndr
, 4));
6469 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
6470 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
6471 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6473 if (ndr_flags
& NDR_BUFFERS
) {
6475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
6476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
/ 2));
6478 for (cntr_data_1
= 0; cntr_data_1
< r
->length
/ 2; cntr_data_1
++) {
6479 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
6483 ndr
->flags
= _flags_save_STRUCT
;
6485 return NDR_ERR_SUCCESS
;
6488 static enum ndr_err_code
ndr_pull_netr_BinaryString(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_BinaryString
*r
)
6491 uint32_t cntr_data_1
;
6492 TALLOC_CTX
*_mem_save_data_0
;
6493 TALLOC_CTX
*_mem_save_data_1
;
6495 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6496 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6497 if (ndr_flags
& NDR_SCALARS
) {
6498 NDR_CHECK(ndr_pull_align(ndr
, 4));
6499 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
6500 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
6501 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6503 NDR_PULL_ALLOC(ndr
, r
->data
);
6508 if (ndr_flags
& NDR_BUFFERS
) {
6510 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6511 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6512 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6513 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
6514 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
6515 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data
), ndr_get_array_length(ndr
, &r
->data
));
6517 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6518 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6519 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6520 for (cntr_data_1
= 0; cntr_data_1
< r
->length
/ 2; cntr_data_1
++) {
6521 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
6523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
6524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6527 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->size
/ 2));
6530 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
/ 2));
6533 ndr
->flags
= _flags_save_STRUCT
;
6535 return NDR_ERR_SUCCESS
;
6538 _PUBLIC_
void ndr_print_netr_BinaryString(struct ndr_print
*ndr
, const char *name
, const struct netr_BinaryString
*r
)
6540 uint32_t cntr_data_1
;
6541 ndr_print_struct(ndr
, name
, "netr_BinaryString");
6543 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6544 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6546 ndr_print_uint16(ndr
, "length", r
->length
);
6547 ndr_print_uint16(ndr
, "size", r
->size
);
6548 ndr_print_ptr(ndr
, "data", r
->data
);
6551 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", (int)r
->length
/ 2);
6553 for (cntr_data_1
=0;cntr_data_1
<r
->length
/ 2;cntr_data_1
++) {
6555 if (asprintf(&idx_1
, "[%d]", cntr_data_1
) != -1) {
6556 ndr_print_uint16(ndr
, "data", r
->data
[cntr_data_1
]);
6564 ndr
->flags
= _flags_save_STRUCT
;
6568 static enum ndr_err_code
ndr_push_netr_DomainQuery1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainQuery1
*r
)
6570 uint32_t cntr_unknown7_0
;
6571 if (ndr_flags
& NDR_SCALARS
) {
6572 NDR_CHECK(ndr_push_align(ndr
, 4));
6573 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
6574 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_domain
));
6575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_site
));
6576 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown1
));
6577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown2
));
6578 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown3
));
6579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown4
));
6580 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
6581 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
6582 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
6583 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
6584 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< 4; cntr_unknown7_0
++) {
6585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
[cntr_unknown7_0
]));
6588 if (ndr_flags
& NDR_BUFFERS
) {
6589 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
6590 if (r
->workstation_domain
) {
6591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
6592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
6594 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_domain
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6596 if (r
->workstation_site
) {
6597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
6598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
6600 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_site
, ndr_charset_length(r
->workstation_site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
6604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
6606 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown1
, ndr_charset_length(r
->unknown1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
6610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
6612 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown2
, ndr_charset_length(r
->unknown2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
6616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
6618 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown3
, ndr_charset_length(r
->unknown3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
6622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
6624 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown4
, ndr_charset_length(r
->unknown4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6626 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
6627 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
6628 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
6629 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
6631 return NDR_ERR_SUCCESS
;
6634 static enum ndr_err_code
ndr_pull_netr_DomainQuery1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainQuery1
*r
)
6636 uint32_t _ptr_workstation_domain
;
6637 TALLOC_CTX
*_mem_save_workstation_domain_0
;
6638 uint32_t _ptr_workstation_site
;
6639 TALLOC_CTX
*_mem_save_workstation_site_0
;
6640 uint32_t _ptr_unknown1
;
6641 TALLOC_CTX
*_mem_save_unknown1_0
;
6642 uint32_t _ptr_unknown2
;
6643 TALLOC_CTX
*_mem_save_unknown2_0
;
6644 uint32_t _ptr_unknown3
;
6645 TALLOC_CTX
*_mem_save_unknown3_0
;
6646 uint32_t _ptr_unknown4
;
6647 TALLOC_CTX
*_mem_save_unknown4_0
;
6648 uint32_t cntr_unknown7_0
;
6649 if (ndr_flags
& NDR_SCALARS
) {
6650 NDR_CHECK(ndr_pull_align(ndr
, 4));
6651 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
6652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_domain
));
6653 if (_ptr_workstation_domain
) {
6654 NDR_PULL_ALLOC(ndr
, r
->workstation_domain
);
6656 r
->workstation_domain
= NULL
;
6658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_site
));
6659 if (_ptr_workstation_site
) {
6660 NDR_PULL_ALLOC(ndr
, r
->workstation_site
);
6662 r
->workstation_site
= NULL
;
6664 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown1
));
6665 if (_ptr_unknown1
) {
6666 NDR_PULL_ALLOC(ndr
, r
->unknown1
);
6670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown2
));
6671 if (_ptr_unknown2
) {
6672 NDR_PULL_ALLOC(ndr
, r
->unknown2
);
6676 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown3
));
6677 if (_ptr_unknown3
) {
6678 NDR_PULL_ALLOC(ndr
, r
->unknown3
);
6682 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown4
));
6683 if (_ptr_unknown4
) {
6684 NDR_PULL_ALLOC(ndr
, r
->unknown4
);
6688 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
6689 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
6690 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
6691 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
6692 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< 4; cntr_unknown7_0
++) {
6693 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
[cntr_unknown7_0
]));
6696 if (ndr_flags
& NDR_BUFFERS
) {
6697 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
6698 if (r
->workstation_domain
) {
6699 _mem_save_workstation_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6700 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_domain
, 0);
6701 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_domain
));
6702 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_domain
));
6703 if (ndr_get_array_length(ndr
, &r
->workstation_domain
) > ndr_get_array_size(ndr
, &r
->workstation_domain
)) {
6704 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->workstation_domain
), ndr_get_array_length(ndr
, &r
->workstation_domain
));
6706 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->workstation_domain
), sizeof(uint16_t)));
6707 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_domain
, ndr_get_array_length(ndr
, &r
->workstation_domain
), sizeof(uint16_t), CH_UTF16
));
6708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_domain_0
, 0);
6710 if (r
->workstation_site
) {
6711 _mem_save_workstation_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6712 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_site
, 0);
6713 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_site
));
6714 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_site
));
6715 if (ndr_get_array_length(ndr
, &r
->workstation_site
) > ndr_get_array_size(ndr
, &r
->workstation_site
)) {
6716 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->workstation_site
), ndr_get_array_length(ndr
, &r
->workstation_site
));
6718 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->workstation_site
), sizeof(uint16_t)));
6719 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_site
, ndr_get_array_length(ndr
, &r
->workstation_site
), sizeof(uint16_t), CH_UTF16
));
6720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_site_0
, 0);
6723 _mem_save_unknown1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6724 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown1
, 0);
6725 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown1
));
6726 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown1
));
6727 if (ndr_get_array_length(ndr
, &r
->unknown1
) > ndr_get_array_size(ndr
, &r
->unknown1
)) {
6728 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown1
), ndr_get_array_length(ndr
, &r
->unknown1
));
6730 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown1
), sizeof(uint16_t)));
6731 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown1
, ndr_get_array_length(ndr
, &r
->unknown1
), sizeof(uint16_t), CH_UTF16
));
6732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown1_0
, 0);
6735 _mem_save_unknown2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6736 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown2
, 0);
6737 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown2
));
6738 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown2
));
6739 if (ndr_get_array_length(ndr
, &r
->unknown2
) > ndr_get_array_size(ndr
, &r
->unknown2
)) {
6740 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown2
), ndr_get_array_length(ndr
, &r
->unknown2
));
6742 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown2
), sizeof(uint16_t)));
6743 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown2
, ndr_get_array_length(ndr
, &r
->unknown2
), sizeof(uint16_t), CH_UTF16
));
6744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown2_0
, 0);
6747 _mem_save_unknown3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6748 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown3
, 0);
6749 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown3
));
6750 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown3
));
6751 if (ndr_get_array_length(ndr
, &r
->unknown3
) > ndr_get_array_size(ndr
, &r
->unknown3
)) {
6752 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown3
), ndr_get_array_length(ndr
, &r
->unknown3
));
6754 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown3
), sizeof(uint16_t)));
6755 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown3
, ndr_get_array_length(ndr
, &r
->unknown3
), sizeof(uint16_t), CH_UTF16
));
6756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown3_0
, 0);
6759 _mem_save_unknown4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6760 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown4
, 0);
6761 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown4
));
6762 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown4
));
6763 if (ndr_get_array_length(ndr
, &r
->unknown4
) > ndr_get_array_size(ndr
, &r
->unknown4
)) {
6764 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown4
), ndr_get_array_length(ndr
, &r
->unknown4
));
6766 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown4
), sizeof(uint16_t)));
6767 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown4
, ndr_get_array_length(ndr
, &r
->unknown4
), sizeof(uint16_t), CH_UTF16
));
6768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown4_0
, 0);
6770 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
6771 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
6772 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
6773 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
6775 return NDR_ERR_SUCCESS
;
6778 _PUBLIC_
void ndr_print_netr_DomainQuery1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainQuery1
*r
)
6780 uint32_t cntr_unknown7_0
;
6781 ndr_print_struct(ndr
, name
, "netr_DomainQuery1");
6783 ndr_print_netr_Blob(ndr
, "blob", &r
->blob
);
6784 ndr_print_ptr(ndr
, "workstation_domain", r
->workstation_domain
);
6786 if (r
->workstation_domain
) {
6787 ndr_print_string(ndr
, "workstation_domain", r
->workstation_domain
);
6790 ndr_print_ptr(ndr
, "workstation_site", r
->workstation_site
);
6792 if (r
->workstation_site
) {
6793 ndr_print_string(ndr
, "workstation_site", r
->workstation_site
);
6796 ndr_print_ptr(ndr
, "unknown1", r
->unknown1
);
6799 ndr_print_string(ndr
, "unknown1", r
->unknown1
);
6802 ndr_print_ptr(ndr
, "unknown2", r
->unknown2
);
6805 ndr_print_string(ndr
, "unknown2", r
->unknown2
);
6808 ndr_print_ptr(ndr
, "unknown3", r
->unknown3
);
6811 ndr_print_string(ndr
, "unknown3", r
->unknown3
);
6814 ndr_print_ptr(ndr
, "unknown4", r
->unknown4
);
6817 ndr_print_string(ndr
, "unknown4", r
->unknown4
);
6820 ndr_print_netr_BinaryString(ndr
, "blob2", &r
->blob2
);
6821 ndr_print_lsa_String(ndr
, "product", &r
->product
);
6822 ndr_print_lsa_String(ndr
, "unknown5", &r
->unknown5
);
6823 ndr_print_lsa_String(ndr
, "unknown6", &r
->unknown6
);
6824 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown7", (int)4);
6826 for (cntr_unknown7_0
=0;cntr_unknown7_0
<4;cntr_unknown7_0
++) {
6828 if (asprintf(&idx_0
, "[%d]", cntr_unknown7_0
) != -1) {
6829 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
[cntr_unknown7_0
]);
6837 static enum ndr_err_code
ndr_push_netr_DomainQuery(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainQuery
*r
)
6839 if (ndr_flags
& NDR_SCALARS
) {
6840 int level
= ndr_push_get_switch_value(ndr
, r
);
6841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6844 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
6848 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
6852 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6855 if (ndr_flags
& NDR_BUFFERS
) {
6856 int level
= ndr_push_get_switch_value(ndr
, r
);
6860 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6866 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6871 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6874 return NDR_ERR_SUCCESS
;
6877 static enum ndr_err_code
ndr_pull_netr_DomainQuery(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainQuery
*r
)
6881 TALLOC_CTX
*_mem_save_query1_0
;
6882 level
= ndr_pull_get_switch_value(ndr
, r
);
6883 if (ndr_flags
& NDR_SCALARS
) {
6884 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6885 if (_level
!= level
) {
6886 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
6890 uint32_t _ptr_query1
;
6891 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
6893 NDR_PULL_ALLOC(ndr
, r
->query1
);
6900 uint32_t _ptr_query1
;
6901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
6903 NDR_PULL_ALLOC(ndr
, r
->query1
);
6910 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6913 if (ndr_flags
& NDR_BUFFERS
) {
6917 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6918 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
6919 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6920 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
6926 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6927 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
6928 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
6934 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6937 return NDR_ERR_SUCCESS
;
6940 _PUBLIC_
void ndr_print_netr_DomainQuery(struct ndr_print
*ndr
, const char *name
, const union netr_DomainQuery
*r
)
6943 level
= ndr_print_get_switch_value(ndr
, r
);
6944 ndr_print_union(ndr
, name
, level
, "netr_DomainQuery");
6947 ndr_print_ptr(ndr
, "query1", r
->query1
);
6950 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
6956 ndr_print_ptr(ndr
, "query1", r
->query1
);
6959 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
6965 ndr_print_bad_level(ndr
, name
, level
);
6969 static enum ndr_err_code
ndr_push_netr_DomainTrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustInfo
*r
)
6971 uint32_t cntr_unknown1_0
;
6972 uint32_t cntr_unknown_0
;
6973 if (ndr_flags
& NDR_SCALARS
) {
6974 NDR_CHECK(ndr_push_align(ndr
, 4));
6975 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
6976 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
6977 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
6978 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
6979 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
6980 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
6981 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->unknown1
[cntr_unknown1_0
]));
6983 for (cntr_unknown_0
= 0; cntr_unknown_0
< 4; cntr_unknown_0
++) {
6984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
6987 if (ndr_flags
& NDR_BUFFERS
) {
6988 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
6989 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
6990 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
6991 NDR_CHECK(ndr_push_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
6993 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
6995 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
6996 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->unknown1
[cntr_unknown1_0
]));
6999 return NDR_ERR_SUCCESS
;
7002 static enum ndr_err_code
ndr_pull_netr_DomainTrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustInfo
*r
)
7005 TALLOC_CTX
*_mem_save_sid_0
;
7006 uint32_t cntr_unknown1_0
;
7007 uint32_t cntr_unknown_0
;
7008 if (ndr_flags
& NDR_SCALARS
) {
7009 NDR_CHECK(ndr_pull_align(ndr
, 4));
7010 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
7011 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
7012 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
7013 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
7016 NDR_PULL_ALLOC(ndr
, r
->sid
);
7020 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
7021 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->unknown1
[cntr_unknown1_0
]));
7023 for (cntr_unknown_0
= 0; cntr_unknown_0
< 4; cntr_unknown_0
++) {
7024 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
7027 if (ndr_flags
& NDR_BUFFERS
) {
7028 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
7029 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
7030 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
7031 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
7033 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7034 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
7035 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
7038 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
7039 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->unknown1
[cntr_unknown1_0
]));
7042 return NDR_ERR_SUCCESS
;
7045 _PUBLIC_
void ndr_print_netr_DomainTrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustInfo
*r
)
7047 uint32_t cntr_unknown1_0
;
7048 uint32_t cntr_unknown_0
;
7049 ndr_print_struct(ndr
, name
, "netr_DomainTrustInfo");
7051 ndr_print_lsa_String(ndr
, "domainname", &r
->domainname
);
7052 ndr_print_lsa_String(ndr
, "fulldomainname", &r
->fulldomainname
);
7053 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
7054 ndr_print_GUID(ndr
, "guid", &r
->guid
);
7055 ndr_print_ptr(ndr
, "sid", r
->sid
);
7058 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
7061 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown1", (int)4);
7063 for (cntr_unknown1_0
=0;cntr_unknown1_0
<4;cntr_unknown1_0
++) {
7065 if (asprintf(&idx_0
, "[%d]", cntr_unknown1_0
) != -1) {
7066 ndr_print_netr_BinaryString(ndr
, "unknown1", &r
->unknown1
[cntr_unknown1_0
]);
7071 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)4);
7073 for (cntr_unknown_0
=0;cntr_unknown_0
<4;cntr_unknown_0
++) {
7075 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
7076 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
7084 static enum ndr_err_code
ndr_push_netr_DomainInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInfo1
*r
)
7086 uint32_t cntr_trusts_1
;
7087 uint32_t cntr_unknown_0
;
7088 if (ndr_flags
& NDR_SCALARS
) {
7089 NDR_CHECK(ndr_push_align(ndr
, 4));
7090 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
7091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
7092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusts
));
7093 for (cntr_unknown_0
= 0; cntr_unknown_0
< 14; cntr_unknown_0
++) {
7094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
7097 if (ndr_flags
& NDR_BUFFERS
) {
7098 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
7100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
7101 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7102 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
7104 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7105 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
7109 return NDR_ERR_SUCCESS
;
7112 static enum ndr_err_code
ndr_pull_netr_DomainInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInfo1
*r
)
7114 uint32_t _ptr_trusts
;
7115 uint32_t cntr_trusts_1
;
7116 TALLOC_CTX
*_mem_save_trusts_0
;
7117 TALLOC_CTX
*_mem_save_trusts_1
;
7118 uint32_t cntr_unknown_0
;
7119 if (ndr_flags
& NDR_SCALARS
) {
7120 NDR_CHECK(ndr_pull_align(ndr
, 4));
7121 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
7122 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_trusts
));
7123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusts
));
7125 NDR_PULL_ALLOC(ndr
, r
->trusts
);
7129 for (cntr_unknown_0
= 0; cntr_unknown_0
< 14; cntr_unknown_0
++) {
7130 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
7133 if (ndr_flags
& NDR_BUFFERS
) {
7134 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
7136 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7137 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
7138 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusts
));
7139 NDR_PULL_ALLOC_N(ndr
, r
->trusts
, ndr_get_array_size(ndr
, &r
->trusts
));
7140 _mem_save_trusts_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7141 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
7142 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7143 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
7145 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
7146 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
7148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_1
, 0);
7149 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, 0);
7152 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusts
, r
->num_trusts
));
7155 return NDR_ERR_SUCCESS
;
7158 _PUBLIC_
void ndr_print_netr_DomainInfo1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInfo1
*r
)
7160 uint32_t cntr_trusts_1
;
7161 uint32_t cntr_unknown_0
;
7162 ndr_print_struct(ndr
, name
, "netr_DomainInfo1");
7164 ndr_print_netr_DomainTrustInfo(ndr
, "domaininfo", &r
->domaininfo
);
7165 ndr_print_uint32(ndr
, "num_trusts", r
->num_trusts
);
7166 ndr_print_ptr(ndr
, "trusts", r
->trusts
);
7169 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusts", (int)r
->num_trusts
);
7171 for (cntr_trusts_1
=0;cntr_trusts_1
<r
->num_trusts
;cntr_trusts_1
++) {
7173 if (asprintf(&idx_1
, "[%d]", cntr_trusts_1
) != -1) {
7174 ndr_print_netr_DomainTrustInfo(ndr
, "trusts", &r
->trusts
[cntr_trusts_1
]);
7181 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)14);
7183 for (cntr_unknown_0
=0;cntr_unknown_0
<14;cntr_unknown_0
++) {
7185 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
7186 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
7194 static enum ndr_err_code
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
7196 if (ndr_flags
& NDR_SCALARS
) {
7197 int level
= ndr_push_get_switch_value(ndr
, r
);
7198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7201 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7205 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7209 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7212 if (ndr_flags
& NDR_BUFFERS
) {
7213 int level
= ndr_push_get_switch_value(ndr
, r
);
7217 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7223 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7228 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7231 return NDR_ERR_SUCCESS
;
7234 static enum ndr_err_code
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
7238 TALLOC_CTX
*_mem_save_info1_0
;
7239 level
= ndr_pull_get_switch_value(ndr
, r
);
7240 if (ndr_flags
& NDR_SCALARS
) {
7241 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7242 if (_level
!= level
) {
7243 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7247 uint32_t _ptr_info1
;
7248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7250 NDR_PULL_ALLOC(ndr
, r
->info1
);
7257 uint32_t _ptr_info1
;
7258 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7260 NDR_PULL_ALLOC(ndr
, r
->info1
);
7267 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7270 if (ndr_flags
& NDR_BUFFERS
) {
7274 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7275 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7276 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7283 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7284 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7285 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7291 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7294 return NDR_ERR_SUCCESS
;
7297 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
7300 level
= ndr_print_get_switch_value(ndr
, r
);
7301 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
7304 ndr_print_ptr(ndr
, "info1", r
->info1
);
7307 ndr_print_netr_DomainInfo1(ndr
, "info1", r
->info1
);
7313 ndr_print_ptr(ndr
, "info1", r
->info1
);
7316 ndr_print_netr_DomainInfo1(ndr
, "info1", r
->info1
);
7322 ndr_print_bad_level(ndr
, name
, level
);
7326 static enum ndr_err_code
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CryptPassword
*r
)
7329 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7330 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7331 if (ndr_flags
& NDR_SCALARS
) {
7332 NDR_CHECK(ndr_push_align(ndr
, 4));
7333 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
7334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
7336 if (ndr_flags
& NDR_BUFFERS
) {
7338 ndr
->flags
= _flags_save_STRUCT
;
7340 return NDR_ERR_SUCCESS
;
7343 static enum ndr_err_code
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
7346 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7347 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7348 if (ndr_flags
& NDR_SCALARS
) {
7349 NDR_CHECK(ndr_pull_align(ndr
, 4));
7350 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
7351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7353 if (ndr_flags
& NDR_BUFFERS
) {
7355 ndr
->flags
= _flags_save_STRUCT
;
7357 return NDR_ERR_SUCCESS
;
7360 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
7362 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
7364 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7365 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7367 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
7368 ndr_print_uint32(ndr
, "length", r
->length
);
7370 ndr
->flags
= _flags_save_STRUCT
;
7374 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
7376 uint32_t cntr_sitename_1
;
7377 if (ndr_flags
& NDR_SCALARS
) {
7378 NDR_CHECK(ndr_push_align(ndr
, 4));
7379 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7380 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7382 if (ndr_flags
& NDR_BUFFERS
) {
7384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7385 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7386 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
7388 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7389 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
7393 return NDR_ERR_SUCCESS
;
7396 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesWCtr
*r
)
7398 uint32_t _ptr_sitename
;
7399 uint32_t cntr_sitename_1
;
7400 TALLOC_CTX
*_mem_save_sitename_0
;
7401 TALLOC_CTX
*_mem_save_sitename_1
;
7402 if (ndr_flags
& NDR_SCALARS
) {
7403 NDR_CHECK(ndr_pull_align(ndr
, 4));
7404 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7405 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
7406 if (_ptr_sitename
) {
7407 NDR_PULL_ALLOC(ndr
, r
->sitename
);
7412 if (ndr_flags
& NDR_BUFFERS
) {
7414 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7415 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7416 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
7417 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
7418 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7419 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7420 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7421 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
7423 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7424 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
7426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
7427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
7430 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
7433 return NDR_ERR_SUCCESS
;
7436 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
7438 uint32_t cntr_sitename_1
;
7439 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesWCtr");
7441 ndr_print_uint32(ndr
, "count", r
->count
);
7442 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
7445 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
7447 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
7449 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
7450 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
7460 static enum ndr_err_code
ndr_push_netr_DsRAddress(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddress
*r
)
7462 if (ndr_flags
& NDR_SCALARS
) {
7463 NDR_CHECK(ndr_push_align(ndr
, 4));
7464 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
7465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
7467 if (ndr_flags
& NDR_BUFFERS
) {
7469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
7470 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->size
));
7473 return NDR_ERR_SUCCESS
;
7476 static enum ndr_err_code
ndr_pull_netr_DsRAddress(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddress
*r
)
7478 uint32_t _ptr_buffer
;
7479 TALLOC_CTX
*_mem_save_buffer_0
;
7480 if (ndr_flags
& NDR_SCALARS
) {
7481 NDR_CHECK(ndr_pull_align(ndr
, 4));
7482 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
7484 NDR_PULL_ALLOC(ndr
, r
->buffer
);
7488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7490 if (ndr_flags
& NDR_BUFFERS
) {
7492 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7493 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
7494 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
7495 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
));
7496 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
)));
7497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
7500 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->size
));
7503 return NDR_ERR_SUCCESS
;
7506 _PUBLIC_
void ndr_print_netr_DsRAddress(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddress
*r
)
7508 ndr_print_struct(ndr
, name
, "netr_DsRAddress");
7510 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
7513 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->size
);
7516 ndr_print_uint32(ndr
, "size", r
->size
);
7520 static enum ndr_err_code
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7523 return NDR_ERR_SUCCESS
;
7526 static enum ndr_err_code
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7531 return NDR_ERR_SUCCESS
;
7534 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7536 ndr_print_uint32(ndr
, name
, r
);
7538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7547 static enum ndr_err_code
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
7549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7550 return NDR_ERR_SUCCESS
;
7553 static enum ndr_err_code
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
7556 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7558 return NDR_ERR_SUCCESS
;
7561 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
7563 const char *val
= NULL
;
7566 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7567 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
7568 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
7569 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
7571 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7574 static enum ndr_err_code
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7577 return NDR_ERR_SUCCESS
;
7580 static enum ndr_err_code
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7583 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7585 return NDR_ERR_SUCCESS
;
7588 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7590 ndr_print_uint32(ndr
, name
, r
);
7592 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
7593 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
7594 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
7595 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
7596 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
7597 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
7598 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
7602 static enum ndr_err_code
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
7604 if (ndr_flags
& NDR_SCALARS
) {
7605 NDR_CHECK(ndr_push_align(ndr
, 4));
7606 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
7607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
7608 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
7609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7610 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
7611 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7612 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
7613 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7615 if (ndr_flags
& NDR_BUFFERS
) {
7616 if (r
->netbios_name
) {
7617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7620 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7625 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7626 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7629 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7631 NDR_CHECK(ndr_push_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
7633 return NDR_ERR_SUCCESS
;
7636 static enum ndr_err_code
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
7638 uint32_t _ptr_netbios_name
;
7639 TALLOC_CTX
*_mem_save_netbios_name_0
;
7640 uint32_t _ptr_dns_name
;
7641 TALLOC_CTX
*_mem_save_dns_name_0
;
7643 TALLOC_CTX
*_mem_save_sid_0
;
7644 if (ndr_flags
& NDR_SCALARS
) {
7645 NDR_CHECK(ndr_pull_align(ndr
, 4));
7646 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
7647 if (_ptr_netbios_name
) {
7648 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
7650 r
->netbios_name
= NULL
;
7652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
7653 if (_ptr_dns_name
) {
7654 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
7658 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
7659 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
7660 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
7661 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
7662 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
7664 NDR_PULL_ALLOC(ndr
, r
->sid
);
7668 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7670 if (ndr_flags
& NDR_BUFFERS
) {
7671 if (r
->netbios_name
) {
7672 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7673 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
7674 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
7675 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
7676 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
7677 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->netbios_name
), ndr_get_array_length(ndr
, &r
->netbios_name
));
7679 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
7680 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
7681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
7684 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7685 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
7686 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
7687 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
7688 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
7689 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dns_name
), ndr_get_array_length(ndr
, &r
->dns_name
));
7691 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
7692 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
7693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
7696 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7697 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
7698 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
7701 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
7703 return NDR_ERR_SUCCESS
;
7706 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
7708 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
7710 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
7712 if (r
->netbios_name
) {
7713 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
7716 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
7719 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
7722 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
7723 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
7724 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
7725 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
7726 ndr_print_ptr(ndr
, "sid", r
->sid
);
7729 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
7732 ndr_print_GUID(ndr
, "guid", &r
->guid
);
7736 static enum ndr_err_code
ndr_push_netr_DomainTrustList(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustList
*r
)
7738 uint32_t cntr_array_1
;
7739 if (ndr_flags
& NDR_SCALARS
) {
7740 NDR_CHECK(ndr_push_align(ndr
, 4));
7741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7742 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
7744 if (ndr_flags
& NDR_BUFFERS
) {
7746 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7747 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7748 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7750 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7751 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7755 return NDR_ERR_SUCCESS
;
7758 static enum ndr_err_code
ndr_pull_netr_DomainTrustList(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustList
*r
)
7760 uint32_t _ptr_array
;
7761 uint32_t cntr_array_1
;
7762 TALLOC_CTX
*_mem_save_array_0
;
7763 TALLOC_CTX
*_mem_save_array_1
;
7764 if (ndr_flags
& NDR_SCALARS
) {
7765 NDR_CHECK(ndr_pull_align(ndr
, 4));
7766 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7767 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
7769 NDR_PULL_ALLOC(ndr
, r
->array
);
7774 if (ndr_flags
& NDR_BUFFERS
) {
7776 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7777 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7778 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
7779 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
7780 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7781 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7782 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7783 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7785 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7786 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
7789 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
7792 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
7795 return NDR_ERR_SUCCESS
;
7798 _PUBLIC_
void ndr_print_netr_DomainTrustList(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustList
*r
)
7800 uint32_t cntr_array_1
;
7801 ndr_print_struct(ndr
, name
, "netr_DomainTrustList");
7803 ndr_print_uint32(ndr
, "count", r
->count
);
7804 ndr_print_ptr(ndr
, "array", r
->array
);
7807 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
7809 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
7811 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
7812 ndr_print_netr_DomainTrust(ndr
, "array", &r
->array
[cntr_array_1
]);
7822 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
7824 uint32_t cntr_sitename_1
;
7825 uint32_t cntr_subnetname_1
;
7826 if (ndr_flags
& NDR_SCALARS
) {
7827 NDR_CHECK(ndr_push_align(ndr
, 4));
7828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7829 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7830 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->subnetname
));
7832 if (ndr_flags
& NDR_BUFFERS
) {
7834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7835 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7836 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
7838 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7839 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
7842 if (r
->subnetname
) {
7843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7844 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
7845 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
7847 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
7848 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
7852 return NDR_ERR_SUCCESS
;
7855 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesExWCtr
*r
)
7857 uint32_t _ptr_sitename
;
7858 uint32_t cntr_sitename_1
;
7859 TALLOC_CTX
*_mem_save_sitename_0
;
7860 TALLOC_CTX
*_mem_save_sitename_1
;
7861 uint32_t _ptr_subnetname
;
7862 uint32_t cntr_subnetname_1
;
7863 TALLOC_CTX
*_mem_save_subnetname_0
;
7864 TALLOC_CTX
*_mem_save_subnetname_1
;
7865 if (ndr_flags
& NDR_SCALARS
) {
7866 NDR_CHECK(ndr_pull_align(ndr
, 4));
7867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7868 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
7869 if (_ptr_sitename
) {
7870 NDR_PULL_ALLOC(ndr
, r
->sitename
);
7874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_subnetname
));
7875 if (_ptr_subnetname
) {
7876 NDR_PULL_ALLOC(ndr
, r
->subnetname
);
7878 r
->subnetname
= NULL
;
7881 if (ndr_flags
& NDR_BUFFERS
) {
7883 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7884 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
7886 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
7887 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7888 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7889 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7890 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
7892 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
7893 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
7895 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
7896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
7898 if (r
->subnetname
) {
7899 _mem_save_subnetname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7900 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
7901 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->subnetname
));
7902 NDR_PULL_ALLOC_N(ndr
, r
->subnetname
, ndr_get_array_size(ndr
, &r
->subnetname
));
7903 _mem_save_subnetname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7904 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
7905 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
7906 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
7908 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
7909 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
7911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_1
, 0);
7912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_0
, 0);
7915 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
7917 if (r
->subnetname
) {
7918 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->subnetname
, r
->count
));
7921 return NDR_ERR_SUCCESS
;
7924 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
7926 uint32_t cntr_sitename_1
;
7927 uint32_t cntr_subnetname_1
;
7928 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExWCtr");
7930 ndr_print_uint32(ndr
, "count", r
->count
);
7931 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
7934 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
7936 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
7938 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
7939 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
7946 ndr_print_ptr(ndr
, "subnetname", r
->subnetname
);
7948 if (r
->subnetname
) {
7949 ndr
->print(ndr
, "%s: ARRAY(%d)", "subnetname", (int)r
->count
);
7951 for (cntr_subnetname_1
=0;cntr_subnetname_1
<r
->count
;cntr_subnetname_1
++) {
7953 if (asprintf(&idx_1
, "[%d]", cntr_subnetname_1
) != -1) {
7954 ndr_print_lsa_String(ndr
, "subnetname", &r
->subnetname
[cntr_subnetname_1
]);
7964 static enum ndr_err_code
ndr_push_DcSitesCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct DcSitesCtr
*r
)
7966 uint32_t cntr_sites_1
;
7967 if (ndr_flags
& NDR_SCALARS
) {
7968 NDR_CHECK(ndr_push_align(ndr
, 4));
7969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
7970 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sites
));
7972 if (ndr_flags
& NDR_BUFFERS
) {
7974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
7975 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
7976 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
7978 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
7979 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
7983 return NDR_ERR_SUCCESS
;
7986 static enum ndr_err_code
ndr_pull_DcSitesCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct DcSitesCtr
*r
)
7988 uint32_t _ptr_sites
;
7989 uint32_t cntr_sites_1
;
7990 TALLOC_CTX
*_mem_save_sites_0
;
7991 TALLOC_CTX
*_mem_save_sites_1
;
7992 if (ndr_flags
& NDR_SCALARS
) {
7993 NDR_CHECK(ndr_pull_align(ndr
, 4));
7994 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sites
));
7995 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sites
));
7997 NDR_PULL_ALLOC(ndr
, r
->sites
);
8002 if (ndr_flags
& NDR_BUFFERS
) {
8004 _mem_save_sites_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8005 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
8006 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sites
));
8007 NDR_PULL_ALLOC_N(ndr
, r
->sites
, ndr_get_array_size(ndr
, &r
->sites
));
8008 _mem_save_sites_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8009 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
8010 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8011 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
8013 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
8014 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
8016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_1
, 0);
8017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_0
, 0);
8020 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sites
, r
->num_sites
));
8023 return NDR_ERR_SUCCESS
;
8026 _PUBLIC_
void ndr_print_DcSitesCtr(struct ndr_print
*ndr
, const char *name
, const struct DcSitesCtr
*r
)
8028 uint32_t cntr_sites_1
;
8029 ndr_print_struct(ndr
, name
, "DcSitesCtr");
8031 ndr_print_uint32(ndr
, "num_sites", r
->num_sites
);
8032 ndr_print_ptr(ndr
, "sites", r
->sites
);
8035 ndr
->print(ndr
, "%s: ARRAY(%d)", "sites", (int)r
->num_sites
);
8037 for (cntr_sites_1
=0;cntr_sites_1
<r
->num_sites
;cntr_sites_1
++) {
8039 if (asprintf(&idx_1
, "[%d]", cntr_sites_1
) != -1) {
8040 ndr_print_lsa_String(ndr
, "sites", &r
->sites
[cntr_sites_1
]);
8050 static enum ndr_err_code
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
8052 if (flags
& NDR_IN
) {
8053 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8054 if (r
->in
.server_name
) {
8055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8058 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
));
8060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8063 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
));
8064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8067 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8069 if (flags
& NDR_OUT
) {
8070 if (r
->out
.info
== NULL
) {
8071 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8073 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
8074 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
8076 return NDR_ERR_SUCCESS
;
8079 static enum ndr_err_code
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
8081 uint32_t _ptr_server_name
;
8082 TALLOC_CTX
*_mem_save_server_name_0
;
8083 TALLOC_CTX
*_mem_save_info_0
;
8084 if (flags
& NDR_IN
) {
8085 ZERO_STRUCT(r
->out
);
8087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8088 if (_ptr_server_name
) {
8089 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8091 r
->in
.server_name
= NULL
;
8093 if (r
->in
.server_name
) {
8094 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8095 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8096 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8097 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8098 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8099 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8101 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8102 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8105 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
8106 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
8107 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
8108 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
8110 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
8111 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
8112 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
8113 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
8114 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
8115 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.workstation
), ndr_get_array_length(ndr
, &r
->in
.workstation
));
8117 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
8118 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
8119 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8120 ZERO_STRUCTP(r
->out
.info
);
8122 if (flags
& NDR_OUT
) {
8123 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8124 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8126 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8127 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
8128 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
8129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8130 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
8132 return NDR_ERR_SUCCESS
;
8135 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
8137 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
8139 if (flags
& NDR_SET_VALUES
) {
8140 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8142 if (flags
& NDR_IN
) {
8143 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
8145 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8147 if (r
->in
.server_name
) {
8148 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8151 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
8152 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
8155 if (flags
& NDR_OUT
) {
8156 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
8158 ndr_print_ptr(ndr
, "info", r
->out
.info
);
8160 ndr_print_netr_UasInfo(ndr
, "info", r
->out
.info
);
8162 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
8168 static enum ndr_err_code
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
8170 if (flags
& NDR_IN
) {
8171 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8172 if (r
->in
.server_name
) {
8173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8176 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
));
8178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8181 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
));
8182 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8183 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
8185 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8187 if (flags
& NDR_OUT
) {
8188 if (r
->out
.info
== NULL
) {
8189 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8191 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
8192 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
8194 return NDR_ERR_SUCCESS
;
8197 static enum ndr_err_code
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
8199 uint32_t _ptr_server_name
;
8200 TALLOC_CTX
*_mem_save_server_name_0
;
8201 TALLOC_CTX
*_mem_save_info_0
;
8202 if (flags
& NDR_IN
) {
8203 ZERO_STRUCT(r
->out
);
8205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8206 if (_ptr_server_name
) {
8207 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8209 r
->in
.server_name
= NULL
;
8211 if (r
->in
.server_name
) {
8212 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8213 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8214 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8215 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8216 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8217 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8219 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8220 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8223 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
8224 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
8225 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
8226 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
8228 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
8229 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
8230 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
8231 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
8232 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
8233 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.workstation
), ndr_get_array_length(ndr
, &r
->in
.workstation
));
8235 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
8236 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
8237 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8238 ZERO_STRUCTP(r
->out
.info
);
8240 if (flags
& NDR_OUT
) {
8241 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8242 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
8244 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8245 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
8246 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
8247 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
8248 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
8250 return NDR_ERR_SUCCESS
;
8253 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
8255 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
8257 if (flags
& NDR_SET_VALUES
) {
8258 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8260 if (flags
& NDR_IN
) {
8261 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
8263 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8265 if (r
->in
.server_name
) {
8266 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8269 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
8270 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
8273 if (flags
& NDR_OUT
) {
8274 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
8276 ndr_print_ptr(ndr
, "info", r
->out
.info
);
8278 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
8280 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
8286 static enum ndr_err_code
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
8288 if (flags
& NDR_IN
) {
8289 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8290 if (r
->in
.server_name
) {
8291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8294 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
));
8296 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
8297 if (r
->in
.computer_name
) {
8298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8301 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
));
8303 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
8304 if (r
->in
.credential
) {
8305 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8307 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
8308 if (r
->in
.return_authenticator
) {
8309 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8311 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
8312 if (r
->in
.logon
== NULL
) {
8313 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8315 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
8316 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
8317 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
8319 if (flags
& NDR_OUT
) {
8320 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
8321 if (r
->out
.return_authenticator
) {
8322 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8324 if (r
->out
.validation
== NULL
) {
8325 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8327 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
8328 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
8329 if (r
->out
.authoritative
== NULL
) {
8330 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8332 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
8333 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8335 return NDR_ERR_SUCCESS
;
8338 static enum ndr_err_code
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
8340 uint32_t _ptr_server_name
;
8341 uint32_t _ptr_computer_name
;
8342 uint32_t _ptr_credential
;
8343 uint32_t _ptr_return_authenticator
;
8344 TALLOC_CTX
*_mem_save_server_name_0
;
8345 TALLOC_CTX
*_mem_save_computer_name_0
;
8346 TALLOC_CTX
*_mem_save_credential_0
;
8347 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8348 TALLOC_CTX
*_mem_save_logon_0
;
8349 TALLOC_CTX
*_mem_save_validation_0
;
8350 TALLOC_CTX
*_mem_save_authoritative_0
;
8351 if (flags
& NDR_IN
) {
8352 ZERO_STRUCT(r
->out
);
8354 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8355 if (_ptr_server_name
) {
8356 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8358 r
->in
.server_name
= NULL
;
8360 if (r
->in
.server_name
) {
8361 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8362 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8365 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8366 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8369 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
8373 if (_ptr_computer_name
) {
8374 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
8376 r
->in
.computer_name
= NULL
;
8378 if (r
->in
.computer_name
) {
8379 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8380 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
8381 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8382 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8383 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8384 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
8386 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8387 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
8388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
8390 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
8391 if (_ptr_credential
) {
8392 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
8394 r
->in
.credential
= NULL
;
8396 if (r
->in
.credential
) {
8397 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8398 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
8399 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
8402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8403 if (_ptr_return_authenticator
) {
8404 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
8406 r
->in
.return_authenticator
= NULL
;
8408 if (r
->in
.return_authenticator
) {
8409 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8410 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
8411 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8414 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
8415 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8416 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
8418 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8419 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
8420 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
8421 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
8422 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
8423 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
8424 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
8425 ZERO_STRUCTP(r
->out
.validation
);
8426 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
8427 ZERO_STRUCTP(r
->out
.authoritative
);
8429 if (flags
& NDR_OUT
) {
8430 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8431 if (_ptr_return_authenticator
) {
8432 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8434 r
->out
.return_authenticator
= NULL
;
8436 if (r
->out
.return_authenticator
) {
8437 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8438 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
8439 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8440 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8442 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8443 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
8445 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8446 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
8447 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
8448 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
8449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
8450 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8451 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
8453 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8454 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
8455 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
8456 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
8457 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8459 return NDR_ERR_SUCCESS
;
8462 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
8464 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
8466 if (flags
& NDR_SET_VALUES
) {
8467 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8469 if (flags
& NDR_IN
) {
8470 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
8472 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8474 if (r
->in
.server_name
) {
8475 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8478 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
8480 if (r
->in
.computer_name
) {
8481 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8484 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
8486 if (r
->in
.credential
) {
8487 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
8490 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8492 if (r
->in
.return_authenticator
) {
8493 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8496 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
8497 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
8499 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
8500 ndr_print_netr_LogonInfo(ndr
, "logon", r
->in
.logon
);
8502 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
8505 if (flags
& NDR_OUT
) {
8506 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
8508 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8510 if (r
->out
.return_authenticator
) {
8511 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8514 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
8516 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
8517 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
8519 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
8521 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
8523 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8529 static enum ndr_err_code
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
8531 if (flags
& NDR_IN
) {
8532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8533 if (r
->in
.server_name
) {
8534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8537 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
));
8539 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
8540 if (r
->in
.computer_name
) {
8541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8544 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
));
8546 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
8547 if (r
->in
.credential
) {
8548 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
8551 if (r
->in
.return_authenticator
) {
8552 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8554 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
8555 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
8556 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
8558 if (flags
& NDR_OUT
) {
8559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
8560 if (r
->out
.return_authenticator
) {
8561 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8563 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8565 return NDR_ERR_SUCCESS
;
8568 static enum ndr_err_code
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
8570 uint32_t _ptr_server_name
;
8571 uint32_t _ptr_computer_name
;
8572 uint32_t _ptr_credential
;
8573 uint32_t _ptr_return_authenticator
;
8574 TALLOC_CTX
*_mem_save_server_name_0
;
8575 TALLOC_CTX
*_mem_save_computer_name_0
;
8576 TALLOC_CTX
*_mem_save_credential_0
;
8577 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8578 if (flags
& NDR_IN
) {
8579 ZERO_STRUCT(r
->out
);
8581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8582 if (_ptr_server_name
) {
8583 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8585 r
->in
.server_name
= NULL
;
8587 if (r
->in
.server_name
) {
8588 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8589 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8590 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8591 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8592 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8593 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8595 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8596 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8597 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8599 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
8600 if (_ptr_computer_name
) {
8601 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
8603 r
->in
.computer_name
= NULL
;
8605 if (r
->in
.computer_name
) {
8606 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8607 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
8608 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8609 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8610 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8611 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
8613 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8614 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
8615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
8617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
8618 if (_ptr_credential
) {
8619 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
8621 r
->in
.credential
= NULL
;
8623 if (r
->in
.credential
) {
8624 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8625 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
8626 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
8629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8630 if (_ptr_return_authenticator
) {
8631 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
8633 r
->in
.return_authenticator
= NULL
;
8635 if (r
->in
.return_authenticator
) {
8636 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8637 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
8638 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8641 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
8642 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
8643 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
8645 if (flags
& NDR_OUT
) {
8646 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
8647 if (_ptr_return_authenticator
) {
8648 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8650 r
->out
.return_authenticator
= NULL
;
8652 if (r
->out
.return_authenticator
) {
8653 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8654 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
8655 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
8658 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8660 return NDR_ERR_SUCCESS
;
8663 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
8665 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
8667 if (flags
& NDR_SET_VALUES
) {
8668 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8670 if (flags
& NDR_IN
) {
8671 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
8673 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8675 if (r
->in
.server_name
) {
8676 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8679 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
8681 if (r
->in
.computer_name
) {
8682 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8685 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
8687 if (r
->in
.credential
) {
8688 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
8691 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8693 if (r
->in
.return_authenticator
) {
8694 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8697 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
8698 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
8699 ndr_print_netr_LogonInfo(ndr
, "logon", &r
->in
.logon
);
8702 if (flags
& NDR_OUT
) {
8703 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
8705 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8707 if (r
->out
.return_authenticator
) {
8708 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8711 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8717 static enum ndr_err_code
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
8719 if (flags
& NDR_IN
) {
8720 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8721 if (r
->in
.server_name
) {
8722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8725 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
));
8727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8730 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
));
8731 if (r
->in
.credentials
== NULL
) {
8732 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8734 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8736 if (flags
& NDR_OUT
) {
8737 if (r
->out
.return_credentials
== NULL
) {
8738 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8740 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
8741 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8743 return NDR_ERR_SUCCESS
;
8746 static enum ndr_err_code
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
8748 uint32_t _ptr_server_name
;
8749 TALLOC_CTX
*_mem_save_server_name_0
;
8750 TALLOC_CTX
*_mem_save_credentials_0
;
8751 TALLOC_CTX
*_mem_save_return_credentials_0
;
8752 if (flags
& NDR_IN
) {
8753 ZERO_STRUCT(r
->out
);
8755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8756 if (_ptr_server_name
) {
8757 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8759 r
->in
.server_name
= NULL
;
8761 if (r
->in
.server_name
) {
8762 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8763 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8764 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8765 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8766 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8767 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8769 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8770 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8773 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8774 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8775 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8776 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
8778 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8779 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
8780 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8781 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
8783 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8784 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
8785 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8787 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
8788 ZERO_STRUCTP(r
->out
.return_credentials
);
8790 if (flags
& NDR_OUT
) {
8791 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8792 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
8794 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8795 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
8796 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
8797 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8798 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8800 return NDR_ERR_SUCCESS
;
8803 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
8805 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
8807 if (flags
& NDR_SET_VALUES
) {
8808 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8810 if (flags
& NDR_IN
) {
8811 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
8813 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8815 if (r
->in
.server_name
) {
8816 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8819 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8820 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
8822 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
8826 if (flags
& NDR_OUT
) {
8827 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
8829 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
8831 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
8833 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8839 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
8841 if (flags
& NDR_IN
) {
8842 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8843 if (r
->in
.server_name
) {
8844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8847 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
));
8849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8852 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
));
8853 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
8854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8857 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
));
8858 if (r
->in
.credentials
== NULL
) {
8859 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8861 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8863 if (flags
& NDR_OUT
) {
8864 if (r
->out
.return_credentials
== NULL
) {
8865 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8867 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
8868 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8870 return NDR_ERR_SUCCESS
;
8873 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
8875 uint32_t _ptr_server_name
;
8876 TALLOC_CTX
*_mem_save_server_name_0
;
8877 TALLOC_CTX
*_mem_save_credentials_0
;
8878 TALLOC_CTX
*_mem_save_return_credentials_0
;
8879 if (flags
& NDR_IN
) {
8880 ZERO_STRUCT(r
->out
);
8882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8883 if (_ptr_server_name
) {
8884 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8886 r
->in
.server_name
= NULL
;
8888 if (r
->in
.server_name
) {
8889 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8890 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8892 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8893 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8894 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8896 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8897 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8900 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
8901 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
8902 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
8903 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
8905 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
8906 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
8907 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
8908 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8909 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8910 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8911 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
8913 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8914 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
8915 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8916 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
8918 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8919 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
8920 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8922 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
8923 ZERO_STRUCTP(r
->out
.return_credentials
);
8925 if (flags
& NDR_OUT
) {
8926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8927 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
8929 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8930 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
8931 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
8932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8933 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8935 return NDR_ERR_SUCCESS
;
8938 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
8940 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
8942 if (flags
& NDR_SET_VALUES
) {
8943 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8945 if (flags
& NDR_IN
) {
8946 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
8948 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8950 if (r
->in
.server_name
) {
8951 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8954 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
8955 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
8956 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8957 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
8959 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
8963 if (flags
& NDR_OUT
) {
8964 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
8966 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
8968 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
8970 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8976 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
8978 if (flags
& NDR_IN
) {
8979 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8980 if (r
->in
.server_name
) {
8981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8984 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
));
8986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8989 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
));
8990 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
8991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8994 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
));
8995 if (r
->in
.credential
== NULL
) {
8996 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
8998 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
8999 if (r
->in
.new_password
== NULL
) {
9000 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9002 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.new_password
));
9004 if (flags
& NDR_OUT
) {
9005 if (r
->out
.return_authenticator
== NULL
) {
9006 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9008 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9009 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9011 return NDR_ERR_SUCCESS
;
9014 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
9016 uint32_t _ptr_server_name
;
9017 TALLOC_CTX
*_mem_save_server_name_0
;
9018 TALLOC_CTX
*_mem_save_credential_0
;
9019 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9020 TALLOC_CTX
*_mem_save_new_password_0
;
9021 if (flags
& NDR_IN
) {
9022 ZERO_STRUCT(r
->out
);
9024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9025 if (_ptr_server_name
) {
9026 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9028 r
->in
.server_name
= NULL
;
9030 if (r
->in
.server_name
) {
9031 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9032 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9033 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9034 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9035 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9036 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
9038 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9039 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
9040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9042 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9043 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9044 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9045 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
9047 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9048 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
9049 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
9050 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9051 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9052 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9053 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
9055 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9056 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
9057 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9058 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9060 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9061 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
9062 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
9064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9065 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
9067 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
9069 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.new_password
));
9070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
9071 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9072 ZERO_STRUCTP(r
->out
.return_authenticator
);
9074 if (flags
& NDR_OUT
) {
9075 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9076 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9078 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9079 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9080 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9082 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9084 return NDR_ERR_SUCCESS
;
9087 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
9089 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
9091 if (flags
& NDR_SET_VALUES
) {
9092 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9094 if (flags
& NDR_IN
) {
9095 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
9097 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9099 if (r
->in
.server_name
) {
9100 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9103 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9104 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
9105 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9106 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9108 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9110 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
9112 ndr_print_samr_Password(ndr
, "new_password", r
->in
.new_password
);
9116 if (flags
& NDR_OUT
) {
9117 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
9119 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9121 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9123 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9129 static enum ndr_err_code
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
9131 if (flags
& NDR_IN
) {
9132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9135 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
));
9136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9139 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9140 if (r
->in
.credential
== NULL
) {
9141 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9143 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9144 if (r
->in
.return_authenticator
== NULL
) {
9145 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9147 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9148 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
9149 if (r
->in
.sequence_num
== NULL
) {
9150 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9152 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
9153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
9155 if (flags
& NDR_OUT
) {
9156 if (r
->out
.return_authenticator
== NULL
) {
9157 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9159 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9160 if (r
->out
.sequence_num
== NULL
) {
9161 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9163 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
9164 if (r
->out
.delta_enum_array
== NULL
) {
9165 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9167 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
9168 if (*r
->out
.delta_enum_array
) {
9169 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
9171 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9173 return NDR_ERR_SUCCESS
;
9176 static enum ndr_err_code
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
9178 uint32_t _ptr_delta_enum_array
;
9179 TALLOC_CTX
*_mem_save_credential_0
;
9180 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9181 TALLOC_CTX
*_mem_save_sequence_num_0
;
9182 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
9183 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
9184 if (flags
& NDR_IN
) {
9185 ZERO_STRUCT(r
->out
);
9187 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9188 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9189 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9190 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9192 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9193 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9194 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9195 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9196 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9197 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
9199 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9200 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9201 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9202 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9204 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9205 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
9206 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
9208 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9209 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9211 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9212 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9213 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9214 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9215 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
9216 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9217 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
9219 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9220 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
9221 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
9222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
9223 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
9224 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9225 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9226 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
9227 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
9228 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9229 ZERO_STRUCTP(r
->out
.delta_enum_array
);
9231 if (flags
& NDR_OUT
) {
9232 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9233 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9235 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9236 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9237 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9239 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9240 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
9242 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9243 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
9244 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
9245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
9246 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9247 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9249 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9250 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
9251 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
9252 if (_ptr_delta_enum_array
) {
9253 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
9255 *r
->out
.delta_enum_array
= NULL
;
9257 if (*r
->out
.delta_enum_array
) {
9258 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9259 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
9260 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
9261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
9263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
9264 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9266 return NDR_ERR_SUCCESS
;
9269 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
9271 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
9273 if (flags
& NDR_SET_VALUES
) {
9274 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9276 if (flags
& NDR_IN
) {
9277 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
9279 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9280 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9281 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9283 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9285 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9287 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9289 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
9290 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
9292 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
9294 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
9297 if (flags
& NDR_OUT
) {
9298 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
9300 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9302 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9304 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
9306 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
9308 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9310 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
9312 if (*r
->out
.delta_enum_array
) {
9313 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
9317 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9323 static enum ndr_err_code
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
9325 if (flags
& NDR_IN
) {
9326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9329 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
));
9330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9333 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9334 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9335 if (r
->in
.return_authenticator
== NULL
) {
9336 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9338 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9339 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
9340 if (r
->in
.sync_context
== NULL
) {
9341 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
9344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
9346 if (flags
& NDR_OUT
) {
9347 if (r
->out
.return_authenticator
== NULL
) {
9348 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9350 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9351 if (r
->out
.sync_context
== NULL
) {
9352 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
9355 if (r
->out
.delta_enum_array
== NULL
) {
9356 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9358 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
9359 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9361 return NDR_ERR_SUCCESS
;
9364 static enum ndr_err_code
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
9366 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9367 TALLOC_CTX
*_mem_save_sync_context_0
;
9368 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
9369 if (flags
& NDR_IN
) {
9370 ZERO_STRUCT(r
->out
);
9372 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9373 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9374 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9375 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9377 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9378 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9379 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9380 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9381 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9382 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
9384 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9385 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9386 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9387 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9388 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9390 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9391 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9392 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9394 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
9395 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9396 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
9398 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9399 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
9400 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
9401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
9402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
9403 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9404 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9405 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
9406 *r
->out
.sync_context
= *r
->in
.sync_context
;
9407 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9408 ZERO_STRUCTP(r
->out
.delta_enum_array
);
9410 if (flags
& NDR_OUT
) {
9411 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9412 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9414 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9415 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9416 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9418 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9419 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
9421 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9422 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
9423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
9424 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
9425 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9426 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9428 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9429 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
9430 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
9431 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
9432 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9434 return NDR_ERR_SUCCESS
;
9437 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
9439 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
9441 if (flags
& NDR_SET_VALUES
) {
9442 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9444 if (flags
& NDR_IN
) {
9445 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
9447 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9448 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9449 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
9450 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9452 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9454 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
9455 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
9457 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
9459 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
9462 if (flags
& NDR_OUT
) {
9463 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
9465 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9467 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9469 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
9471 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
9473 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9475 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9477 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9483 static enum ndr_err_code
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
9485 if (flags
& NDR_IN
) {
9486 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
9487 if (r
->in
.logon_server
) {
9488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9491 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
));
9493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9496 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9497 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9498 if (r
->in
.return_authenticator
== NULL
) {
9499 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9501 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9502 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
9503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
9504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
9505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
9507 if (flags
& NDR_OUT
) {
9508 if (r
->out
.return_authenticator
== NULL
) {
9509 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9511 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9512 if (r
->out
.buffer
== NULL
) {
9513 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9516 struct ndr_push
*_ndr_buffer
;
9517 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9518 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9519 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9521 if (r
->out
.count_returned
== NULL
) {
9522 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
9525 if (r
->out
.total_entries
== NULL
) {
9526 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
9529 if (r
->out
.recordid
== NULL
) {
9530 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9532 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9533 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9535 return NDR_ERR_SUCCESS
;
9538 static enum ndr_err_code
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
9540 uint32_t _ptr_logon_server
;
9541 TALLOC_CTX
*_mem_save_logon_server_0
;
9542 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9543 TALLOC_CTX
*_mem_save_buffer_0
;
9544 TALLOC_CTX
*_mem_save_count_returned_0
;
9545 TALLOC_CTX
*_mem_save_total_entries_0
;
9546 TALLOC_CTX
*_mem_save_recordid_0
;
9547 if (flags
& NDR_IN
) {
9548 ZERO_STRUCT(r
->out
);
9550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
9551 if (_ptr_logon_server
) {
9552 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
9554 r
->in
.logon_server
= NULL
;
9556 if (r
->in
.logon_server
) {
9557 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9558 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
9559 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9560 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9561 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9562 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9564 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9565 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9568 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9569 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9570 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9571 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
9573 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9574 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9575 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9576 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9577 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9579 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9580 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9581 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9583 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
9584 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
9585 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
9586 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
9587 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9588 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9589 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9590 ZERO_STRUCTP(r
->out
.buffer
);
9591 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9592 ZERO_STRUCTP(r
->out
.count_returned
);
9593 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9594 ZERO_STRUCTP(r
->out
.total_entries
);
9595 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9596 ZERO_STRUCTP(r
->out
.recordid
);
9598 if (flags
& NDR_OUT
) {
9599 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9600 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9602 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9603 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9604 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9606 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9607 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9609 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9610 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
9612 struct ndr_pull
*_ndr_buffer
;
9613 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9614 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9615 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
9618 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9619 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9621 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9622 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
9623 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
9624 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
9625 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9626 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9628 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9629 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
9630 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
9631 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
9632 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9633 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9635 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9636 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
9637 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
9639 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9641 return NDR_ERR_SUCCESS
;
9644 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
9646 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
9648 if (flags
& NDR_SET_VALUES
) {
9649 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9651 if (flags
& NDR_IN
) {
9652 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
9654 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
9656 if (r
->in
.logon_server
) {
9657 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9660 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9661 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
9662 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9664 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9666 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
9667 ndr_print_uint32(ndr
, "count", r
->in
.count
);
9668 ndr_print_uint32(ndr
, "level", r
->in
.level
);
9669 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
9672 if (flags
& NDR_OUT
) {
9673 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
9675 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9677 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9679 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
9681 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
9683 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
9685 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
9687 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
9689 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
9691 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
9693 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
9695 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9701 static enum ndr_err_code
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
9703 if (flags
& NDR_IN
) {
9704 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
9705 if (r
->in
.logon_server
) {
9706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9709 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
));
9711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9714 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9715 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9716 if (r
->in
.return_authenticator
== NULL
) {
9717 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9719 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
9721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
9722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
9723 if (r
->in
.recordid
== NULL
) {
9724 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9726 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
9728 if (flags
& NDR_OUT
) {
9729 if (r
->out
.return_authenticator
== NULL
) {
9730 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9732 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9733 if (r
->out
.buffer
== NULL
) {
9734 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9737 struct ndr_push
*_ndr_buffer
;
9738 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9739 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9740 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9742 if (r
->out
.count_returned
== NULL
) {
9743 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
9746 if (r
->out
.total_entries
== NULL
) {
9747 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
9750 if (r
->out
.next_reference
== NULL
) {
9751 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
9754 if (r
->out
.recordid
== NULL
) {
9755 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9757 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9758 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9760 return NDR_ERR_SUCCESS
;
9763 static enum ndr_err_code
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
9765 uint32_t _ptr_logon_server
;
9766 TALLOC_CTX
*_mem_save_logon_server_0
;
9767 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9768 TALLOC_CTX
*_mem_save_buffer_0
;
9769 TALLOC_CTX
*_mem_save_count_returned_0
;
9770 TALLOC_CTX
*_mem_save_total_entries_0
;
9771 TALLOC_CTX
*_mem_save_next_reference_0
;
9772 TALLOC_CTX
*_mem_save_recordid_0
;
9773 if (flags
& NDR_IN
) {
9774 ZERO_STRUCT(r
->out
);
9776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
9777 if (_ptr_logon_server
) {
9778 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
9780 r
->in
.logon_server
= NULL
;
9782 if (r
->in
.logon_server
) {
9783 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9784 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
9785 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9786 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9787 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9788 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9790 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9791 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9794 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9795 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9796 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9797 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
9799 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9800 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9801 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9802 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9803 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9805 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9806 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9807 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9808 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9809 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
9810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
9811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
9812 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9813 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
9815 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9816 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
9817 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
9818 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
9819 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9820 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9821 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9822 ZERO_STRUCTP(r
->out
.buffer
);
9823 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9824 ZERO_STRUCTP(r
->out
.count_returned
);
9825 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9826 ZERO_STRUCTP(r
->out
.total_entries
);
9827 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
9828 ZERO_STRUCTP(r
->out
.next_reference
);
9829 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9830 *r
->out
.recordid
= *r
->in
.recordid
;
9832 if (flags
& NDR_OUT
) {
9833 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9834 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9836 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9837 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9838 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9839 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9840 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9841 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9843 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9844 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
9846 struct ndr_pull
*_ndr_buffer
;
9847 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9848 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9849 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9851 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
9852 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9853 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9855 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9856 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
9857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
9858 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
9859 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9860 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9862 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9863 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
9864 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
9865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
9866 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9867 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
9869 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9870 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
9871 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
9872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
9873 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9874 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9876 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9877 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
9878 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
9880 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9882 return NDR_ERR_SUCCESS
;
9885 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
9887 ndr_print_struct(ndr
, name
, "netr_AccountSync");
9889 if (flags
& NDR_SET_VALUES
) {
9890 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9892 if (flags
& NDR_IN
) {
9893 ndr_print_struct(ndr
, "in", "netr_AccountSync");
9895 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
9897 if (r
->in
.logon_server
) {
9898 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9901 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9902 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
9903 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9905 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9907 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
9908 ndr_print_uint32(ndr
, "level", r
->in
.level
);
9909 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
9910 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
9912 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
9916 if (flags
& NDR_OUT
) {
9917 ndr_print_struct(ndr
, "out", "netr_AccountSync");
9919 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9921 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9923 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
9925 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
9927 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
9929 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
9931 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
9933 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
9935 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
9937 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
9939 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
9941 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
9943 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9949 static enum ndr_err_code
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
9951 if (flags
& NDR_IN
) {
9952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9955 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
));
9956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
9957 if (r
->in
.domainname
) {
9958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
9959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
9961 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9964 if (flags
& NDR_OUT
) {
9965 if (r
->out
.dcname
== NULL
) {
9966 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9968 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
9969 if (*r
->out
.dcname
) {
9970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
9971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
9973 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9975 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9977 return NDR_ERR_SUCCESS
;
9980 static enum ndr_err_code
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
9982 uint32_t _ptr_domainname
;
9983 uint32_t _ptr_dcname
;
9984 TALLOC_CTX
*_mem_save_domainname_0
;
9985 TALLOC_CTX
*_mem_save_dcname_0
;
9986 TALLOC_CTX
*_mem_save_dcname_1
;
9987 if (flags
& NDR_IN
) {
9988 ZERO_STRUCT(r
->out
);
9990 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9991 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9992 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9993 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9995 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9996 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9997 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
9998 if (_ptr_domainname
) {
9999 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
10001 r
->in
.domainname
= NULL
;
10003 if (r
->in
.domainname
) {
10004 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10005 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
10006 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
10007 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
10008 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
10009 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domainname
), ndr_get_array_length(ndr
, &r
->in
.domainname
));
10011 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
10012 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
10013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
10015 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10016 ZERO_STRUCTP(r
->out
.dcname
);
10018 if (flags
& NDR_OUT
) {
10019 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10020 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10022 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10023 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
10024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
10026 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
10028 *r
->out
.dcname
= NULL
;
10030 if (*r
->out
.dcname
) {
10031 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10032 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
10033 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
10034 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
10035 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
10036 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, r
->out
.dcname
), ndr_get_array_length(ndr
, r
->out
.dcname
));
10038 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
10039 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
10040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
10042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
10043 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10045 return NDR_ERR_SUCCESS
;
10048 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
10050 ndr_print_struct(ndr
, name
, "netr_GetDcName");
10052 if (flags
& NDR_SET_VALUES
) {
10053 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10055 if (flags
& NDR_IN
) {
10056 ndr_print_struct(ndr
, "in", "netr_GetDcName");
10058 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10059 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
10061 if (r
->in
.domainname
) {
10062 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
10067 if (flags
& NDR_OUT
) {
10068 ndr_print_struct(ndr
, "out", "netr_GetDcName");
10070 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
10072 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
10074 if (*r
->out
.dcname
) {
10075 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
10079 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10085 static enum ndr_err_code
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
10087 if (flags
& NDR_IN
) {
10088 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10089 if (r
->in
.logon_server
) {
10090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10093 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
));
10095 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
10096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10098 if (flags
& NDR_OUT
) {
10099 if (r
->out
.info
== NULL
) {
10100 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10102 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10103 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10104 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10106 return NDR_ERR_SUCCESS
;
10109 static enum ndr_err_code
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
10111 uint32_t _ptr_logon_server
;
10112 TALLOC_CTX
*_mem_save_logon_server_0
;
10113 TALLOC_CTX
*_mem_save_info_0
;
10114 if (flags
& NDR_IN
) {
10115 ZERO_STRUCT(r
->out
);
10117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10118 if (_ptr_logon_server
) {
10119 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10121 r
->in
.logon_server
= NULL
;
10123 if (r
->in
.logon_server
) {
10124 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10125 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10126 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10127 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10128 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10129 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
10131 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10132 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
10133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10135 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
10136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10137 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10138 ZERO_STRUCTP(r
->out
.info
);
10140 if (flags
& NDR_OUT
) {
10141 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10142 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10144 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10145 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
10146 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
10147 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
10149 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10151 return NDR_ERR_SUCCESS
;
10154 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
10156 ndr_print_struct(ndr
, name
, "netr_LogonControl");
10158 if (flags
& NDR_SET_VALUES
) {
10159 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10161 if (flags
& NDR_IN
) {
10162 ndr_print_struct(ndr
, "in", "netr_LogonControl");
10164 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10166 if (r
->in
.logon_server
) {
10167 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10170 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
10171 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10174 if (flags
& NDR_OUT
) {
10175 ndr_print_struct(ndr
, "out", "netr_LogonControl");
10177 ndr_print_ptr(ndr
, "info", r
->out
.info
);
10179 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
10180 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "info", r
->out
.info
);
10182 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10188 static enum ndr_err_code
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
10190 if (flags
& NDR_IN
) {
10191 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10192 if (r
->in
.logon_server
) {
10193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10196 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
));
10198 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
10199 if (r
->in
.domainname
) {
10200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
10201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
10203 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10206 if (flags
& NDR_OUT
) {
10207 if (r
->out
.dcname
== NULL
) {
10208 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10210 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
10211 if (*r
->out
.dcname
) {
10212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
10213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
10215 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10217 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10219 return NDR_ERR_SUCCESS
;
10222 static enum ndr_err_code
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
10224 uint32_t _ptr_logon_server
;
10225 uint32_t _ptr_domainname
;
10226 uint32_t _ptr_dcname
;
10227 TALLOC_CTX
*_mem_save_logon_server_0
;
10228 TALLOC_CTX
*_mem_save_domainname_0
;
10229 TALLOC_CTX
*_mem_save_dcname_0
;
10230 TALLOC_CTX
*_mem_save_dcname_1
;
10231 if (flags
& NDR_IN
) {
10232 ZERO_STRUCT(r
->out
);
10234 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10235 if (_ptr_logon_server
) {
10236 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10238 r
->in
.logon_server
= NULL
;
10240 if (r
->in
.logon_server
) {
10241 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10242 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10243 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10244 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10245 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10246 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
10248 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10249 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
10250 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
10253 if (_ptr_domainname
) {
10254 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
10256 r
->in
.domainname
= NULL
;
10258 if (r
->in
.domainname
) {
10259 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10260 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
10261 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
10262 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
10263 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
10264 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domainname
), ndr_get_array_length(ndr
, &r
->in
.domainname
));
10266 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
10267 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
10268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
10270 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10271 ZERO_STRUCTP(r
->out
.dcname
);
10273 if (flags
& NDR_OUT
) {
10274 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10275 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
10277 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10278 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
10279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
10281 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
10283 *r
->out
.dcname
= NULL
;
10285 if (*r
->out
.dcname
) {
10286 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10287 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
10288 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
10289 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
10290 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
10291 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, r
->out
.dcname
), ndr_get_array_length(ndr
, r
->out
.dcname
));
10293 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
10294 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
10295 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
10297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
10298 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10300 return NDR_ERR_SUCCESS
;
10303 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
10305 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
10307 if (flags
& NDR_SET_VALUES
) {
10308 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10310 if (flags
& NDR_IN
) {
10311 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
10313 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10315 if (r
->in
.logon_server
) {
10316 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10319 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
10321 if (r
->in
.domainname
) {
10322 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
10327 if (flags
& NDR_OUT
) {
10328 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
10330 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
10332 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
10334 if (*r
->out
.dcname
) {
10335 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
10339 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10345 static enum ndr_err_code
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
10347 if (flags
& NDR_IN
) {
10348 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10349 if (r
->in
.logon_server
) {
10350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10353 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
));
10355 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
10356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10357 if (r
->in
.data
== NULL
) {
10358 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10360 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
10361 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
10363 if (flags
& NDR_OUT
) {
10364 if (r
->out
.query
== NULL
) {
10365 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10367 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
10368 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
10369 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10371 return NDR_ERR_SUCCESS
;
10374 static enum ndr_err_code
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
10376 uint32_t _ptr_logon_server
;
10377 TALLOC_CTX
*_mem_save_logon_server_0
;
10378 TALLOC_CTX
*_mem_save_data_0
;
10379 TALLOC_CTX
*_mem_save_query_0
;
10380 if (flags
& NDR_IN
) {
10381 ZERO_STRUCT(r
->out
);
10383 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10384 if (_ptr_logon_server
) {
10385 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10387 r
->in
.logon_server
= NULL
;
10389 if (r
->in
.logon_server
) {
10390 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10391 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10392 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10393 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10394 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10395 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
10397 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10398 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
10399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10401 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
10402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10403 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10404 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
10406 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10407 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
10408 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
10409 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
10410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
10411 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
10412 ZERO_STRUCTP(r
->out
.query
);
10414 if (flags
& NDR_OUT
) {
10415 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10416 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
10418 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10419 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
10420 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
10421 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
10422 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
10423 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10425 return NDR_ERR_SUCCESS
;
10428 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
10430 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
10432 if (flags
& NDR_SET_VALUES
) {
10433 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10435 if (flags
& NDR_IN
) {
10436 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
10438 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10440 if (r
->in
.logon_server
) {
10441 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10444 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
10445 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10446 ndr_print_ptr(ndr
, "data", r
->in
.data
);
10448 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
10449 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
10453 if (flags
& NDR_OUT
) {
10454 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
10456 ndr_print_ptr(ndr
, "query", r
->out
.query
);
10458 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
10459 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
10461 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10467 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
10469 if (flags
& NDR_IN
) {
10470 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10471 if (r
->in
.server_name
) {
10472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10475 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
));
10477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10480 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
));
10481 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10485 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
));
10486 if (r
->in
.credentials
== NULL
) {
10487 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10489 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10490 if (r
->in
.negotiate_flags
== NULL
) {
10491 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10493 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
10495 if (flags
& NDR_OUT
) {
10496 if (r
->out
.return_credentials
== NULL
) {
10497 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10499 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10500 if (r
->out
.negotiate_flags
== NULL
) {
10501 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10503 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
10504 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10506 return NDR_ERR_SUCCESS
;
10509 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
10511 uint32_t _ptr_server_name
;
10512 TALLOC_CTX
*_mem_save_server_name_0
;
10513 TALLOC_CTX
*_mem_save_credentials_0
;
10514 TALLOC_CTX
*_mem_save_return_credentials_0
;
10515 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
10516 if (flags
& NDR_IN
) {
10517 ZERO_STRUCT(r
->out
);
10519 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10520 if (_ptr_server_name
) {
10521 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10523 r
->in
.server_name
= NULL
;
10525 if (r
->in
.server_name
) {
10526 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10527 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10528 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10529 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10530 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10531 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
10533 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10534 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
10535 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10537 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10538 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10539 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10540 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
10542 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10543 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
10544 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10547 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10548 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
10550 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10551 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
10552 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10553 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10555 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10556 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10557 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10559 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10560 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
10562 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10563 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
10564 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
10565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
10566 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10567 ZERO_STRUCTP(r
->out
.return_credentials
);
10568 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
10569 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
10571 if (flags
& NDR_OUT
) {
10572 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10573 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10575 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10576 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10577 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10579 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10580 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
10582 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10583 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
10584 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
10585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
10586 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10588 return NDR_ERR_SUCCESS
;
10591 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
10593 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
10595 if (flags
& NDR_SET_VALUES
) {
10596 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10598 if (flags
& NDR_IN
) {
10599 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
10601 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10603 if (r
->in
.server_name
) {
10604 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10607 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10608 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10609 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10610 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10612 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10614 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
10616 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
10620 if (flags
& NDR_OUT
) {
10621 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
10623 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10625 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10627 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
10629 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
10631 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10637 static enum ndr_err_code
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
10639 if (flags
& NDR_IN
) {
10640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10643 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
));
10644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10647 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10648 if (r
->in
.credential
== NULL
) {
10649 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10651 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10652 if (r
->in
.return_authenticator
== NULL
) {
10653 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10655 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10656 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10657 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
10658 if (r
->in
.sync_context
== NULL
) {
10659 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
10662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10664 if (flags
& NDR_OUT
) {
10665 if (r
->out
.return_authenticator
== NULL
) {
10666 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10668 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10669 if (r
->out
.sync_context
== NULL
) {
10670 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
10673 if (r
->out
.delta_enum_array
== NULL
) {
10674 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10676 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10677 if (*r
->out
.delta_enum_array
) {
10678 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10680 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10682 return NDR_ERR_SUCCESS
;
10685 static enum ndr_err_code
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
10687 uint32_t _ptr_delta_enum_array
;
10688 TALLOC_CTX
*_mem_save_credential_0
;
10689 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10690 TALLOC_CTX
*_mem_save_sync_context_0
;
10691 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10692 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10693 if (flags
& NDR_IN
) {
10694 ZERO_STRUCT(r
->out
);
10696 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10697 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10698 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10699 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
10701 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10702 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
10703 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10704 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10705 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10706 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
10708 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10709 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10710 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10711 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10713 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10714 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10715 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10716 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10717 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10718 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10720 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10721 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10722 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10724 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10725 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
10726 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10727 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
10729 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10730 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
10732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10734 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10735 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10736 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10737 *r
->out
.sync_context
= *r
->in
.sync_context
;
10738 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10739 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10741 if (flags
& NDR_OUT
) {
10742 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10743 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10745 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10746 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10747 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10749 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10750 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10752 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10753 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
10755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10756 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10757 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10759 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10760 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10762 if (_ptr_delta_enum_array
) {
10763 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10765 *r
->out
.delta_enum_array
= NULL
;
10767 if (*r
->out
.delta_enum_array
) {
10768 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10769 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10770 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10773 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10774 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10776 return NDR_ERR_SUCCESS
;
10779 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
10781 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
10783 if (flags
& NDR_SET_VALUES
) {
10784 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10786 if (flags
& NDR_IN
) {
10787 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
10789 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10790 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10791 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10793 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10795 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10797 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10799 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10800 ndr_print_uint16(ndr
, "restart_state", r
->in
.restart_state
);
10801 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
10803 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
10805 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10808 if (flags
& NDR_OUT
) {
10809 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
10811 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10813 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10815 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
10817 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
10819 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10821 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10823 if (*r
->out
.delta_enum_array
) {
10824 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10828 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10834 static enum ndr_err_code
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
10836 if (flags
& NDR_IN
) {
10837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10840 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
));
10841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10844 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10845 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10846 if (r
->in
.return_authenticator
== NULL
) {
10847 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10849 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10850 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.change_log_entry
));
10851 if (r
->in
.change_log_entry
) {
10852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_log_entry_size
));
10853 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.change_log_entry
, r
->in
.change_log_entry_size
));
10855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_log_entry_size
));
10857 if (flags
& NDR_OUT
) {
10858 if (r
->out
.return_authenticator
== NULL
) {
10859 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10861 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10862 if (r
->out
.delta_enum_array
== NULL
) {
10863 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10865 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
10866 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10868 return NDR_ERR_SUCCESS
;
10871 static enum ndr_err_code
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
10873 uint32_t _ptr_change_log_entry
;
10874 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10875 TALLOC_CTX
*_mem_save_change_log_entry_0
;
10876 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10877 if (flags
& NDR_IN
) {
10878 ZERO_STRUCT(r
->out
);
10880 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10881 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10882 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10883 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
10885 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10886 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
10887 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10888 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10889 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10890 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
10892 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10893 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10894 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10895 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10896 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10898 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10899 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10900 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10902 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_change_log_entry
));
10903 if (_ptr_change_log_entry
) {
10904 NDR_PULL_ALLOC(ndr
, r
->in
.change_log_entry
);
10906 r
->in
.change_log_entry
= NULL
;
10908 if (r
->in
.change_log_entry
) {
10909 _mem_save_change_log_entry_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10910 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.change_log_entry
, 0);
10911 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.change_log_entry
));
10912 NDR_PULL_ALLOC_N(ndr
, r
->in
.change_log_entry
, ndr_get_array_size(ndr
, &r
->in
.change_log_entry
));
10913 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.change_log_entry
, ndr_get_array_size(ndr
, &r
->in
.change_log_entry
)));
10914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_change_log_entry_0
, 0);
10916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
10917 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10918 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10919 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10920 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10921 if (r
->in
.change_log_entry
) {
10922 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.change_log_entry
, r
->in
.change_log_entry_size
));
10925 if (flags
& NDR_OUT
) {
10926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10927 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10929 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10930 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10931 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10933 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10934 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10936 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10937 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10938 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
10939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10940 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10942 return NDR_ERR_SUCCESS
;
10945 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
10947 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
10949 if (flags
& NDR_SET_VALUES
) {
10950 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10952 if (flags
& NDR_IN
) {
10953 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
10955 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10956 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10957 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
10958 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10960 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10962 ndr_print_ptr(ndr
, "change_log_entry", r
->in
.change_log_entry
);
10964 if (r
->in
.change_log_entry
) {
10965 ndr_print_array_uint8(ndr
, "change_log_entry", r
->in
.change_log_entry
, r
->in
.change_log_entry_size
);
10968 ndr_print_uint32(ndr
, "change_log_entry_size", r
->in
.change_log_entry_size
);
10971 if (flags
& NDR_OUT
) {
10972 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
10974 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10976 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10978 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10980 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10982 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10988 static enum ndr_err_code
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
10990 if (flags
& NDR_IN
) {
10991 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10992 if (r
->in
.logon_server
) {
10993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10994 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10996 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
));
10998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.function_code
));
10999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11000 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
11001 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
11003 if (flags
& NDR_OUT
) {
11004 if (r
->out
.query
== NULL
) {
11005 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11007 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11008 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11009 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11011 return NDR_ERR_SUCCESS
;
11014 static enum ndr_err_code
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
11016 uint32_t _ptr_logon_server
;
11017 TALLOC_CTX
*_mem_save_logon_server_0
;
11018 TALLOC_CTX
*_mem_save_query_0
;
11019 if (flags
& NDR_IN
) {
11020 ZERO_STRUCT(r
->out
);
11022 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11023 if (_ptr_logon_server
) {
11024 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11026 r
->in
.logon_server
= NULL
;
11028 if (r
->in
.logon_server
) {
11029 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11030 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11031 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11032 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11033 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11034 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
11036 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11037 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
11038 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11040 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11042 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
11043 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
11044 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11045 ZERO_STRUCTP(r
->out
.query
);
11047 if (flags
& NDR_OUT
) {
11048 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11049 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11051 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11052 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11053 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11054 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11056 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11058 return NDR_ERR_SUCCESS
;
11061 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
11063 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
11065 if (flags
& NDR_SET_VALUES
) {
11066 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11068 if (flags
& NDR_IN
) {
11069 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
11071 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11073 if (r
->in
.logon_server
) {
11074 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11077 ndr_print_uint32(ndr
, "function_code", r
->in
.function_code
);
11078 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11079 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
);
11080 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", &r
->in
.data
);
11083 if (flags
& NDR_OUT
) {
11084 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
11086 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11088 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11089 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11091 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11097 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
11099 if (flags
& NDR_IN
) {
11100 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11101 if (r
->in
.server_name
) {
11102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11105 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
));
11108 if (flags
& NDR_OUT
) {
11109 if (r
->out
.trusted_domains_blob
== NULL
) {
11110 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11112 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
11113 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11115 return NDR_ERR_SUCCESS
;
11118 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomains
*r
)
11120 uint32_t _ptr_server_name
;
11121 TALLOC_CTX
*_mem_save_server_name_0
;
11122 TALLOC_CTX
*_mem_save_trusted_domains_blob_0
;
11123 if (flags
& NDR_IN
) {
11124 ZERO_STRUCT(r
->out
);
11126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11127 if (_ptr_server_name
) {
11128 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11130 r
->in
.server_name
= NULL
;
11132 if (r
->in
.server_name
) {
11133 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11134 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11135 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11136 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11137 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11138 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11140 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11141 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
11142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11144 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
11145 ZERO_STRUCTP(r
->out
.trusted_domains_blob
);
11147 if (flags
& NDR_OUT
) {
11148 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11149 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
11151 _mem_save_trusted_domains_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11152 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusted_domains_blob
, LIBNDR_FLAG_REF_ALLOC
);
11153 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
11154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_blob_0
, LIBNDR_FLAG_REF_ALLOC
);
11155 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11157 return NDR_ERR_SUCCESS
;
11160 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
11162 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomains");
11164 if (flags
& NDR_SET_VALUES
) {
11165 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11167 if (flags
& NDR_IN
) {
11168 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomains");
11170 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11172 if (r
->in
.server_name
) {
11173 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11178 if (flags
& NDR_OUT
) {
11179 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomains");
11181 ndr_print_ptr(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
11183 ndr_print_netr_Blob(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
11185 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11191 static enum ndr_err_code
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
11193 if (flags
& NDR_IN
) {
11194 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
11195 if (r
->in
.server_unc
) {
11196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11197 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11199 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
));
11201 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
11202 if (r
->in
.domain_name
) {
11203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11206 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
));
11208 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
11209 if (r
->in
.domain_guid
) {
11210 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
11212 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
11213 if (r
->in
.site_guid
) {
11214 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.site_guid
));
11216 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
11218 if (flags
& NDR_OUT
) {
11219 if (r
->out
.info
== NULL
) {
11220 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11222 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
11223 if (*r
->out
.info
) {
11224 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
11226 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11228 return NDR_ERR_SUCCESS
;
11231 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
11233 uint32_t _ptr_server_unc
;
11234 uint32_t _ptr_domain_name
;
11235 uint32_t _ptr_domain_guid
;
11236 uint32_t _ptr_site_guid
;
11237 uint32_t _ptr_info
;
11238 TALLOC_CTX
*_mem_save_server_unc_0
;
11239 TALLOC_CTX
*_mem_save_domain_name_0
;
11240 TALLOC_CTX
*_mem_save_domain_guid_0
;
11241 TALLOC_CTX
*_mem_save_site_guid_0
;
11242 TALLOC_CTX
*_mem_save_info_0
;
11243 TALLOC_CTX
*_mem_save_info_1
;
11244 if (flags
& NDR_IN
) {
11245 ZERO_STRUCT(r
->out
);
11247 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
11248 if (_ptr_server_unc
) {
11249 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
11251 r
->in
.server_unc
= NULL
;
11253 if (r
->in
.server_unc
) {
11254 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11255 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
11256 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
11257 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
11258 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
11259 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_unc
), ndr_get_array_length(ndr
, &r
->in
.server_unc
));
11261 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
11262 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t), CH_UTF16
));
11263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
11265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
11266 if (_ptr_domain_name
) {
11267 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
11269 r
->in
.domain_name
= NULL
;
11271 if (r
->in
.domain_name
) {
11272 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11273 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
11274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
11275 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
11276 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
11277 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain_name
), ndr_get_array_length(ndr
, &r
->in
.domain_name
));
11279 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
11280 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t), CH_UTF16
));
11281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
11283 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
11284 if (_ptr_domain_guid
) {
11285 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
11287 r
->in
.domain_guid
= NULL
;
11289 if (r
->in
.domain_guid
) {
11290 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11291 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
11292 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
11293 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
11295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
11296 if (_ptr_site_guid
) {
11297 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
11299 r
->in
.site_guid
= NULL
;
11301 if (r
->in
.site_guid
) {
11302 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11303 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
11304 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.site_guid
));
11305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
11307 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
11308 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11309 ZERO_STRUCTP(r
->out
.info
);
11311 if (flags
& NDR_OUT
) {
11312 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11313 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11315 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11316 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
11317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
11319 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
11321 *r
->out
.info
= NULL
;
11323 if (*r
->out
.info
) {
11324 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11325 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
11326 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
11327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
11329 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
11330 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11332 return NDR_ERR_SUCCESS
;
11335 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
11337 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
11339 if (flags
& NDR_SET_VALUES
) {
11340 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11342 if (flags
& NDR_IN
) {
11343 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
11345 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
11347 if (r
->in
.server_unc
) {
11348 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
11351 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
11353 if (r
->in
.domain_name
) {
11354 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
11357 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
11359 if (r
->in
.domain_guid
) {
11360 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
11363 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
11365 if (r
->in
.site_guid
) {
11366 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
11369 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
11372 if (flags
& NDR_OUT
) {
11373 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
11375 ndr_print_ptr(ndr
, "info", r
->out
.info
);
11377 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
11379 if (*r
->out
.info
) {
11380 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
11384 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11390 static enum ndr_err_code
ndr_push_netr_LogonGetCapabilities(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetCapabilities
*r
)
11392 if (flags
& NDR_IN
) {
11393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11396 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
));
11397 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
11398 if (r
->in
.computer_name
) {
11399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11402 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
));
11404 if (r
->in
.credential
== NULL
) {
11405 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11407 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11408 if (r
->in
.return_authenticator
== NULL
) {
11409 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11411 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.query_level
));
11414 if (flags
& NDR_OUT
) {
11415 if (r
->out
.return_authenticator
== NULL
) {
11416 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11418 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11419 if (r
->out
.capabilities
== NULL
) {
11420 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11422 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
11423 NDR_CHECK(ndr_push_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
11424 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11426 return NDR_ERR_SUCCESS
;
11429 static enum ndr_err_code
ndr_pull_netr_LogonGetCapabilities(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetCapabilities
*r
)
11431 uint32_t _ptr_computer_name
;
11432 TALLOC_CTX
*_mem_save_computer_name_0
;
11433 TALLOC_CTX
*_mem_save_credential_0
;
11434 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11435 TALLOC_CTX
*_mem_save_capabilities_0
;
11436 if (flags
& NDR_IN
) {
11437 ZERO_STRUCT(r
->out
);
11439 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11440 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11441 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11442 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11444 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11445 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
11446 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
11447 if (_ptr_computer_name
) {
11448 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
11450 r
->in
.computer_name
= NULL
;
11452 if (r
->in
.computer_name
) {
11453 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11454 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
11455 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11456 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11457 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11458 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
11460 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11461 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
11462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
11464 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11465 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
11467 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11468 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
11469 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
11471 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11472 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11474 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11475 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11476 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11478 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.query_level
));
11479 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11480 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11481 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
11482 ZERO_STRUCTP(r
->out
.capabilities
);
11484 if (flags
& NDR_OUT
) {
11485 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11486 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11488 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11489 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11490 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11492 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11493 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
11495 _mem_save_capabilities_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11496 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.capabilities
, LIBNDR_FLAG_REF_ALLOC
);
11497 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
11498 NDR_CHECK(ndr_pull_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
11499 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_capabilities_0
, LIBNDR_FLAG_REF_ALLOC
);
11500 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11502 return NDR_ERR_SUCCESS
;
11505 _PUBLIC_
void ndr_print_netr_LogonGetCapabilities(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetCapabilities
*r
)
11507 ndr_print_struct(ndr
, name
, "netr_LogonGetCapabilities");
11509 if (flags
& NDR_SET_VALUES
) {
11510 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11512 if (flags
& NDR_IN
) {
11513 ndr_print_struct(ndr
, "in", "netr_LogonGetCapabilities");
11515 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11516 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
11518 if (r
->in
.computer_name
) {
11519 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11522 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
11524 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
11526 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11528 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11530 ndr_print_uint32(ndr
, "query_level", r
->in
.query_level
);
11533 if (flags
& NDR_OUT
) {
11534 ndr_print_struct(ndr
, "out", "netr_LogonGetCapabilities");
11536 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11538 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11540 ndr_print_ptr(ndr
, "capabilities", r
->out
.capabilities
);
11542 ndr_print_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
);
11543 ndr_print_netr_Capabilities(ndr
, "capabilities", r
->out
.capabilities
);
11545 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11551 static enum ndr_err_code
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
11553 if (flags
& NDR_IN
) {
11555 if (flags
& NDR_OUT
) {
11556 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11558 return NDR_ERR_SUCCESS
;
11561 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
11563 if (flags
& NDR_IN
) {
11565 if (flags
& NDR_OUT
) {
11566 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11568 return NDR_ERR_SUCCESS
;
11571 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
11573 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
11575 if (flags
& NDR_SET_VALUES
) {
11576 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11578 if (flags
& NDR_IN
) {
11579 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
11583 if (flags
& NDR_OUT
) {
11584 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
11586 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11592 static enum ndr_err_code
ndr_push_netr_LogonGetTrustRid(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetTrustRid
*r
)
11594 if (flags
& NDR_IN
) {
11595 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11596 if (r
->in
.server_name
) {
11597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11600 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
));
11602 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
11603 if (r
->in
.domain_name
) {
11604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11607 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
));
11610 if (flags
& NDR_OUT
) {
11611 if (r
->out
.rid
== NULL
) {
11612 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
11615 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11617 return NDR_ERR_SUCCESS
;
11620 static enum ndr_err_code
ndr_pull_netr_LogonGetTrustRid(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetTrustRid
*r
)
11622 uint32_t _ptr_server_name
;
11623 uint32_t _ptr_domain_name
;
11624 TALLOC_CTX
*_mem_save_server_name_0
;
11625 TALLOC_CTX
*_mem_save_domain_name_0
;
11626 TALLOC_CTX
*_mem_save_rid_0
;
11627 if (flags
& NDR_IN
) {
11628 ZERO_STRUCT(r
->out
);
11630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11631 if (_ptr_server_name
) {
11632 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11634 r
->in
.server_name
= NULL
;
11636 if (r
->in
.server_name
) {
11637 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11638 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11639 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11640 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11641 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11642 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11644 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11645 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
11646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11648 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
11649 if (_ptr_domain_name
) {
11650 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
11652 r
->in
.domain_name
= NULL
;
11654 if (r
->in
.domain_name
) {
11655 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11656 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
11657 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
11658 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
11659 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
11660 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain_name
), ndr_get_array_length(ndr
, &r
->in
.domain_name
));
11662 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
11663 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t), CH_UTF16
));
11664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
11666 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
11667 ZERO_STRUCTP(r
->out
.rid
);
11669 if (flags
& NDR_OUT
) {
11670 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11671 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
11673 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11674 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
11675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
11676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
11677 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11679 return NDR_ERR_SUCCESS
;
11682 _PUBLIC_
void ndr_print_netr_LogonGetTrustRid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetTrustRid
*r
)
11684 ndr_print_struct(ndr
, name
, "netr_LogonGetTrustRid");
11686 if (flags
& NDR_SET_VALUES
) {
11687 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11689 if (flags
& NDR_IN
) {
11690 ndr_print_struct(ndr
, "in", "netr_LogonGetTrustRid");
11692 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11694 if (r
->in
.server_name
) {
11695 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11698 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
11700 if (r
->in
.domain_name
) {
11701 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
11706 if (flags
& NDR_OUT
) {
11707 ndr_print_struct(ndr
, "out", "netr_LogonGetTrustRid");
11709 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
11711 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
11713 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11719 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
11721 if (flags
& NDR_IN
) {
11723 if (flags
& NDR_OUT
) {
11724 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11726 return NDR_ERR_SUCCESS
;
11729 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
11731 if (flags
& NDR_IN
) {
11733 if (flags
& NDR_OUT
) {
11734 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11736 return NDR_ERR_SUCCESS
;
11739 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
11741 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11743 if (flags
& NDR_SET_VALUES
) {
11744 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11746 if (flags
& NDR_IN
) {
11747 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11751 if (flags
& NDR_OUT
) {
11752 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11754 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11760 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
11762 if (flags
& NDR_IN
) {
11764 if (flags
& NDR_OUT
) {
11765 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11767 return NDR_ERR_SUCCESS
;
11770 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
11772 if (flags
& NDR_IN
) {
11774 if (flags
& NDR_OUT
) {
11775 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11777 return NDR_ERR_SUCCESS
;
11780 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
11782 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11784 if (flags
& NDR_SET_VALUES
) {
11785 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11787 if (flags
& NDR_IN
) {
11788 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11792 if (flags
& NDR_OUT
) {
11793 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11795 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11801 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
11803 if (flags
& NDR_IN
) {
11804 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11805 if (r
->in
.server_name
) {
11806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11809 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
));
11811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11814 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
));
11815 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11819 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
));
11820 if (r
->in
.credentials
== NULL
) {
11821 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11823 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11824 if (r
->in
.negotiate_flags
== NULL
) {
11825 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11827 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
11829 if (flags
& NDR_OUT
) {
11830 if (r
->out
.credentials
== NULL
) {
11831 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11833 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
11834 if (r
->out
.negotiate_flags
== NULL
) {
11835 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11837 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
11838 if (r
->out
.rid
== NULL
) {
11839 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
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_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
11849 uint32_t _ptr_server_name
;
11850 TALLOC_CTX
*_mem_save_server_name_0
;
11851 TALLOC_CTX
*_mem_save_credentials_0
;
11852 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
11853 TALLOC_CTX
*_mem_save_rid_0
;
11854 if (flags
& NDR_IN
) {
11855 ZERO_STRUCT(r
->out
);
11857 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11858 if (_ptr_server_name
) {
11859 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11861 r
->in
.server_name
= NULL
;
11863 if (r
->in
.server_name
) {
11864 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11865 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11866 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11867 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11868 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11869 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11871 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11872 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
11873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11875 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
11876 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
11877 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
11878 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
11880 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
11881 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
11882 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
11883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11885 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
11888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
11890 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11891 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
11893 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11894 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
11895 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11897 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11898 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
11900 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11901 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11902 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
11903 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11904 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
11905 *r
->out
.credentials
= *r
->in
.credentials
;
11906 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11907 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
11908 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
11909 ZERO_STRUCTP(r
->out
.rid
);
11911 if (flags
& NDR_OUT
) {
11912 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11913 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
11915 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11916 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
11917 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
11918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11919 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11920 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11922 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11923 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11924 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
11925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11927 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
11929 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11930 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
11931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
11932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
11933 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11935 return NDR_ERR_SUCCESS
;
11938 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
11940 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
11942 if (flags
& NDR_SET_VALUES
) {
11943 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11945 if (flags
& NDR_IN
) {
11946 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
11948 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11950 if (r
->in
.server_name
) {
11951 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11954 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
11955 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
11956 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11957 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
11959 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
11961 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
11963 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
11967 if (flags
& NDR_OUT
) {
11968 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
11970 ndr_print_ptr(ndr
, "credentials", r
->out
.credentials
);
11972 ndr_print_netr_Credential(ndr
, "credentials", r
->out
.credentials
);
11974 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
11976 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
11978 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
11980 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
11982 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11988 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
11990 if (flags
& NDR_IN
) {
11991 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
11992 if (r
->in
.server_unc
) {
11993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11994 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11996 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
));
11998 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
11999 if (r
->in
.domain_name
) {
12000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12003 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
));
12005 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
12006 if (r
->in
.domain_guid
) {
12007 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
12009 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
12010 if (r
->in
.site_name
) {
12011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
12012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12013 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
12014 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
));
12016 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
12018 if (flags
& NDR_OUT
) {
12019 if (r
->out
.info
== NULL
) {
12020 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12022 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
12023 if (*r
->out
.info
) {
12024 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12026 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12028 return NDR_ERR_SUCCESS
;
12031 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
12033 uint32_t _ptr_server_unc
;
12034 uint32_t _ptr_domain_name
;
12035 uint32_t _ptr_domain_guid
;
12036 uint32_t _ptr_site_name
;
12037 uint32_t _ptr_info
;
12038 TALLOC_CTX
*_mem_save_server_unc_0
;
12039 TALLOC_CTX
*_mem_save_domain_name_0
;
12040 TALLOC_CTX
*_mem_save_domain_guid_0
;
12041 TALLOC_CTX
*_mem_save_site_name_0
;
12042 TALLOC_CTX
*_mem_save_info_0
;
12043 TALLOC_CTX
*_mem_save_info_1
;
12044 if (flags
& NDR_IN
) {
12045 ZERO_STRUCT(r
->out
);
12047 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
12048 if (_ptr_server_unc
) {
12049 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
12051 r
->in
.server_unc
= NULL
;
12053 if (r
->in
.server_unc
) {
12054 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12055 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
12056 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
12057 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
12058 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
12059 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_unc
), ndr_get_array_length(ndr
, &r
->in
.server_unc
));
12061 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
12062 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t), CH_UTF16
));
12063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
12065 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
12066 if (_ptr_domain_name
) {
12067 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
12069 r
->in
.domain_name
= NULL
;
12071 if (r
->in
.domain_name
) {
12072 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12073 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
12074 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
12075 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
12076 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
12077 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain_name
), ndr_get_array_length(ndr
, &r
->in
.domain_name
));
12079 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
12080 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t), CH_UTF16
));
12081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
12083 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
12084 if (_ptr_domain_guid
) {
12085 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
12087 r
->in
.domain_guid
= NULL
;
12089 if (r
->in
.domain_guid
) {
12090 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12091 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
12092 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
12093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
12095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
12096 if (_ptr_site_name
) {
12097 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
12099 r
->in
.site_name
= NULL
;
12101 if (r
->in
.site_name
) {
12102 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12103 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
12104 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
12105 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
12106 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
12107 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.site_name
), ndr_get_array_length(ndr
, &r
->in
.site_name
));
12109 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
12110 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.site_name
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t), CH_UTF16
));
12111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
12113 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
12114 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12115 ZERO_STRUCTP(r
->out
.info
);
12117 if (flags
& NDR_OUT
) {
12118 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12119 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12121 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12122 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12125 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
12127 *r
->out
.info
= NULL
;
12129 if (*r
->out
.info
) {
12130 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12131 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
12132 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12136 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12138 return NDR_ERR_SUCCESS
;
12141 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
12143 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
12145 if (flags
& NDR_SET_VALUES
) {
12146 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12148 if (flags
& NDR_IN
) {
12149 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
12151 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
12153 if (r
->in
.server_unc
) {
12154 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
12157 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
12159 if (r
->in
.domain_name
) {
12160 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
12163 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
12165 if (r
->in
.domain_guid
) {
12166 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
12169 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
12171 if (r
->in
.site_name
) {
12172 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
12175 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
12178 if (flags
& NDR_OUT
) {
12179 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
12181 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12183 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
12185 if (*r
->out
.info
) {
12186 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
12190 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12196 static enum ndr_err_code
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
12198 if (flags
& NDR_IN
) {
12199 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12200 if (r
->in
.computer_name
) {
12201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12204 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
));
12207 if (flags
& NDR_OUT
) {
12208 if (r
->out
.site
== NULL
) {
12209 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12211 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.site
));
12212 if (*r
->out
.site
) {
12213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
12214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
12216 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12218 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12220 return NDR_ERR_SUCCESS
;
12223 static enum ndr_err_code
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
12225 uint32_t _ptr_computer_name
;
12226 uint32_t _ptr_site
;
12227 TALLOC_CTX
*_mem_save_computer_name_0
;
12228 TALLOC_CTX
*_mem_save_site_0
;
12229 TALLOC_CTX
*_mem_save_site_1
;
12230 if (flags
& NDR_IN
) {
12231 ZERO_STRUCT(r
->out
);
12233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12234 if (_ptr_computer_name
) {
12235 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12237 r
->in
.computer_name
= NULL
;
12239 if (r
->in
.computer_name
) {
12240 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12241 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12242 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12243 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12244 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12245 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
12247 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12248 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
12249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12251 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
12252 ZERO_STRUCTP(r
->out
.site
);
12254 if (flags
& NDR_OUT
) {
12255 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12256 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
12258 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12259 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
12260 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site
));
12262 NDR_PULL_ALLOC(ndr
, *r
->out
.site
);
12264 *r
->out
.site
= NULL
;
12266 if (*r
->out
.site
) {
12267 _mem_save_site_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12268 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.site
, 0);
12269 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
12270 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
12271 if (ndr_get_array_length(ndr
, r
->out
.site
) > ndr_get_array_size(ndr
, r
->out
.site
)) {
12272 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, r
->out
.site
), ndr_get_array_length(ndr
, r
->out
.site
));
12274 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t)));
12275 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t), CH_UTF16
));
12276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_1
, 0);
12278 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
12279 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12281 return NDR_ERR_SUCCESS
;
12284 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
12286 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
12288 if (flags
& NDR_SET_VALUES
) {
12289 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12291 if (flags
& NDR_IN
) {
12292 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
12294 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12296 if (r
->in
.computer_name
) {
12297 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12302 if (flags
& NDR_OUT
) {
12303 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
12305 ndr_print_ptr(ndr
, "site", r
->out
.site
);
12307 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
12309 if (*r
->out
.site
) {
12310 ndr_print_string(ndr
, "site", *r
->out
.site
);
12314 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12320 static enum ndr_err_code
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
12322 if (flags
& NDR_IN
) {
12323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12326 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
));
12327 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12328 if (r
->in
.computer_name
) {
12329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12332 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
));
12334 if (r
->in
.credential
== NULL
) {
12335 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12337 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12338 if (r
->in
.return_authenticator
== NULL
) {
12339 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12341 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
12343 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
12344 NDR_CHECK(ndr_push_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
12346 if (flags
& NDR_OUT
) {
12347 if (r
->out
.return_authenticator
== NULL
) {
12348 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12350 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12351 if (r
->out
.info
== NULL
) {
12352 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12354 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
12355 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
12356 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12358 return NDR_ERR_SUCCESS
;
12361 static enum ndr_err_code
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
12363 uint32_t _ptr_computer_name
;
12364 TALLOC_CTX
*_mem_save_computer_name_0
;
12365 TALLOC_CTX
*_mem_save_credential_0
;
12366 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12367 TALLOC_CTX
*_mem_save_info_0
;
12368 if (flags
& NDR_IN
) {
12369 ZERO_STRUCT(r
->out
);
12371 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12372 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12373 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12374 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
12376 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12377 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
12378 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12379 if (_ptr_computer_name
) {
12380 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12382 r
->in
.computer_name
= NULL
;
12384 if (r
->in
.computer_name
) {
12385 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12386 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12387 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12388 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12389 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12390 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
12392 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12393 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
12394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12396 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12397 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12399 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12400 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12401 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12402 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12403 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12404 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12406 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12407 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12408 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
12411 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
12412 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
12413 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12414 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12415 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12416 ZERO_STRUCTP(r
->out
.info
);
12418 if (flags
& NDR_OUT
) {
12419 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12420 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12422 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12423 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12424 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12426 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12427 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12429 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12430 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12431 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
12432 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
12433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12434 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12436 return NDR_ERR_SUCCESS
;
12439 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
12441 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
12443 if (flags
& NDR_SET_VALUES
) {
12444 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12446 if (flags
& NDR_IN
) {
12447 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
12449 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12450 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12452 if (r
->in
.computer_name
) {
12453 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12456 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12458 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12460 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12462 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12464 ndr_print_uint32(ndr
, "level", r
->in
.level
);
12465 ndr_print_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
);
12466 ndr_print_netr_DomainQuery(ndr
, "query", &r
->in
.query
);
12469 if (flags
& NDR_OUT
) {
12470 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
12472 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12474 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12476 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12478 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
12479 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
12481 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12487 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
12489 if (flags
& NDR_IN
) {
12490 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12491 if (r
->in
.server_name
) {
12492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12495 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
));
12497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12500 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
));
12501 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
12502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_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
.computer_name
, CH_UTF16
)));
12505 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
));
12506 if (r
->in
.credential
== NULL
) {
12507 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12509 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12510 if (r
->in
.new_password
== NULL
) {
12511 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12513 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
12515 if (flags
& NDR_OUT
) {
12516 if (r
->out
.return_authenticator
== NULL
) {
12517 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12519 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12520 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12522 return NDR_ERR_SUCCESS
;
12525 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
12527 uint32_t _ptr_server_name
;
12528 TALLOC_CTX
*_mem_save_server_name_0
;
12529 TALLOC_CTX
*_mem_save_credential_0
;
12530 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12531 TALLOC_CTX
*_mem_save_new_password_0
;
12532 if (flags
& NDR_IN
) {
12533 ZERO_STRUCT(r
->out
);
12535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12536 if (_ptr_server_name
) {
12537 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12539 r
->in
.server_name
= NULL
;
12541 if (r
->in
.server_name
) {
12542 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12543 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12544 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12545 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12546 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12547 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
12549 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12550 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
12551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12553 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
12554 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
12555 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
12556 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
12558 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
12559 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
12560 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
12561 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12562 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12563 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12564 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
12566 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12567 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
12568 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12569 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12571 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12572 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12573 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12576 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
12578 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12579 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
12580 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
12581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
12582 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12583 ZERO_STRUCTP(r
->out
.return_authenticator
);
12585 if (flags
& NDR_OUT
) {
12586 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12587 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12589 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12590 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12591 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12592 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12593 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12595 return NDR_ERR_SUCCESS
;
12598 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
12600 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
12602 if (flags
& NDR_SET_VALUES
) {
12603 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12605 if (flags
& NDR_IN
) {
12606 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
12608 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12610 if (r
->in
.server_name
) {
12611 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12614 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
12615 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
12616 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12617 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12619 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12621 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
12623 ndr_print_netr_CryptPassword(ndr
, "new_password", r
->in
.new_password
);
12627 if (flags
& NDR_OUT
) {
12628 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
12630 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12632 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12634 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12640 static enum ndr_err_code
ndr_push_netr_ServerPasswordGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordGet
*r
)
12642 if (flags
& NDR_IN
) {
12643 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12644 if (r
->in
.server_name
) {
12645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12648 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
));
12650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
12653 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
));
12654 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
12655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12656 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12658 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
));
12659 if (r
->in
.credential
== NULL
) {
12660 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12662 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12664 if (flags
& NDR_OUT
) {
12665 if (r
->out
.return_authenticator
== NULL
) {
12666 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12668 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12669 if (r
->out
.password
== NULL
) {
12670 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12672 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.password
));
12673 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12675 return NDR_ERR_SUCCESS
;
12678 static enum ndr_err_code
ndr_pull_netr_ServerPasswordGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordGet
*r
)
12680 uint32_t _ptr_server_name
;
12681 TALLOC_CTX
*_mem_save_server_name_0
;
12682 TALLOC_CTX
*_mem_save_credential_0
;
12683 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12684 TALLOC_CTX
*_mem_save_password_0
;
12685 if (flags
& NDR_IN
) {
12686 ZERO_STRUCT(r
->out
);
12688 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12689 if (_ptr_server_name
) {
12690 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12692 r
->in
.server_name
= NULL
;
12694 if (r
->in
.server_name
) {
12695 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12696 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12697 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12698 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12699 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12700 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
12702 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12703 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
12704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12706 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
12707 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
12708 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
12709 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
12711 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
12712 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
12713 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
12714 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12715 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12716 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12717 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
12719 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12720 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
12721 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12722 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12724 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12725 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12726 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12728 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12729 ZERO_STRUCTP(r
->out
.return_authenticator
);
12730 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
12731 ZERO_STRUCTP(r
->out
.password
);
12733 if (flags
& NDR_OUT
) {
12734 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12735 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12737 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12738 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12739 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12741 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12742 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
12744 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12745 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
12746 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.password
));
12747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
12748 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12750 return NDR_ERR_SUCCESS
;
12753 _PUBLIC_
void ndr_print_netr_ServerPasswordGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordGet
*r
)
12755 ndr_print_struct(ndr
, name
, "netr_ServerPasswordGet");
12757 if (flags
& NDR_SET_VALUES
) {
12758 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12760 if (flags
& NDR_IN
) {
12761 ndr_print_struct(ndr
, "in", "netr_ServerPasswordGet");
12763 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12765 if (r
->in
.server_name
) {
12766 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12769 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
12770 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
12771 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12772 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12774 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12778 if (flags
& NDR_OUT
) {
12779 ndr_print_struct(ndr
, "out", "netr_ServerPasswordGet");
12781 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12783 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12785 ndr_print_ptr(ndr
, "password", r
->out
.password
);
12787 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
12789 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12795 static enum ndr_err_code
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
12797 if (flags
& NDR_IN
) {
12799 if (flags
& NDR_OUT
) {
12800 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12802 return NDR_ERR_SUCCESS
;
12805 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
12807 if (flags
& NDR_IN
) {
12809 if (flags
& NDR_OUT
) {
12810 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12812 return NDR_ERR_SUCCESS
;
12815 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
12817 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
12819 if (flags
& NDR_SET_VALUES
) {
12820 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12822 if (flags
& NDR_IN
) {
12823 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
12827 if (flags
& NDR_OUT
) {
12828 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
12830 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12836 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
12838 uint32_t cntr_addresses_1
;
12839 if (flags
& NDR_IN
) {
12840 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12841 if (r
->in
.server_name
) {
12842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12845 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
));
12847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
12848 if (r
->in
.addresses
== NULL
) {
12849 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
12852 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
12853 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
12855 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
12856 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
12859 if (flags
& NDR_OUT
) {
12860 if (r
->out
.ctr
== NULL
) {
12861 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12863 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
12865 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
12867 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12869 return NDR_ERR_SUCCESS
;
12872 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesW
*r
)
12874 uint32_t _ptr_server_name
;
12875 uint32_t cntr_addresses_1
;
12877 TALLOC_CTX
*_mem_save_server_name_0
;
12878 TALLOC_CTX
*_mem_save_addresses_1
;
12879 TALLOC_CTX
*_mem_save_ctr_0
;
12880 TALLOC_CTX
*_mem_save_ctr_1
;
12881 if (flags
& NDR_IN
) {
12882 ZERO_STRUCT(r
->out
);
12884 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12885 if (_ptr_server_name
) {
12886 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12888 r
->in
.server_name
= NULL
;
12890 if (r
->in
.server_name
) {
12891 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12893 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12894 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12895 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12896 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
12898 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12899 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
12900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12902 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
12903 if (r
->in
.count
< 0 || r
->in
.count
> 32000) {
12904 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
12906 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
12907 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12908 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
12910 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12911 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
12912 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
12913 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
12915 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
12916 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
12918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
12919 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
12920 ZERO_STRUCTP(r
->out
.ctr
);
12921 if (r
->in
.addresses
) {
12922 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
12925 if (flags
& NDR_OUT
) {
12926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12927 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
12929 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12930 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
12931 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
12933 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
12935 *r
->out
.ctr
= NULL
;
12938 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12939 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
12940 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
12941 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
12943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
12944 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12946 return NDR_ERR_SUCCESS
;
12949 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
12951 uint32_t cntr_addresses_1
;
12952 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesW");
12954 if (flags
& NDR_SET_VALUES
) {
12955 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12957 if (flags
& NDR_IN
) {
12958 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesW");
12960 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12962 if (r
->in
.server_name
) {
12963 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12966 ndr_print_uint32(ndr
, "count", r
->in
.count
);
12967 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
12969 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
12971 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
12973 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
12974 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
12982 if (flags
& NDR_OUT
) {
12983 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesW");
12985 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
12987 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
12990 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr
, "ctr", *r
->out
.ctr
);
12994 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13000 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
13002 if (flags
& NDR_IN
) {
13003 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
13004 if (r
->in
.server_unc
) {
13005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13006 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13008 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
));
13010 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
13011 if (r
->in
.client_account
) {
13012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
13013 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
13015 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
));
13017 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.mask
));
13018 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13019 if (r
->in
.domain_name
) {
13020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13023 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
));
13025 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13026 if (r
->in
.domain_guid
) {
13027 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
13029 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
13030 if (r
->in
.site_name
) {
13031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13034 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
));
13036 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
13038 if (flags
& NDR_OUT
) {
13039 if (r
->out
.info
== NULL
) {
13040 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13042 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
13043 if (*r
->out
.info
) {
13044 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13046 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13048 return NDR_ERR_SUCCESS
;
13051 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
13053 uint32_t _ptr_server_unc
;
13054 uint32_t _ptr_client_account
;
13055 uint32_t _ptr_domain_name
;
13056 uint32_t _ptr_domain_guid
;
13057 uint32_t _ptr_site_name
;
13058 uint32_t _ptr_info
;
13059 TALLOC_CTX
*_mem_save_server_unc_0
;
13060 TALLOC_CTX
*_mem_save_client_account_0
;
13061 TALLOC_CTX
*_mem_save_domain_name_0
;
13062 TALLOC_CTX
*_mem_save_domain_guid_0
;
13063 TALLOC_CTX
*_mem_save_site_name_0
;
13064 TALLOC_CTX
*_mem_save_info_0
;
13065 TALLOC_CTX
*_mem_save_info_1
;
13066 if (flags
& NDR_IN
) {
13067 ZERO_STRUCT(r
->out
);
13069 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
13070 if (_ptr_server_unc
) {
13071 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
13073 r
->in
.server_unc
= NULL
;
13075 if (r
->in
.server_unc
) {
13076 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13077 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
13078 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
13079 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
13080 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
13081 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_unc
), ndr_get_array_length(ndr
, &r
->in
.server_unc
));
13083 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
13084 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t), CH_UTF16
));
13085 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
13087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
13088 if (_ptr_client_account
) {
13089 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
13091 r
->in
.client_account
= NULL
;
13093 if (r
->in
.client_account
) {
13094 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13095 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
13096 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
13097 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
13098 if (ndr_get_array_length(ndr
, &r
->in
.client_account
) > ndr_get_array_size(ndr
, &r
->in
.client_account
)) {
13099 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.client_account
), ndr_get_array_length(ndr
, &r
->in
.client_account
));
13101 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t)));
13102 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.client_account
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t), CH_UTF16
));
13103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
13105 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.mask
));
13106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13107 if (_ptr_domain_name
) {
13108 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13110 r
->in
.domain_name
= NULL
;
13112 if (r
->in
.domain_name
) {
13113 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13114 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13115 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13116 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13117 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13118 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain_name
), ndr_get_array_length(ndr
, &r
->in
.domain_name
));
13120 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13121 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t), CH_UTF16
));
13122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13124 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
13125 if (_ptr_domain_guid
) {
13126 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
13128 r
->in
.domain_guid
= NULL
;
13130 if (r
->in
.domain_guid
) {
13131 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13132 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
13133 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
13134 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
13136 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
13137 if (_ptr_site_name
) {
13138 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
13140 r
->in
.site_name
= NULL
;
13142 if (r
->in
.site_name
) {
13143 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13144 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
13145 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
13146 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
13147 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
13148 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.site_name
), ndr_get_array_length(ndr
, &r
->in
.site_name
));
13150 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
13151 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.site_name
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t), CH_UTF16
));
13152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
13154 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
13155 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13156 ZERO_STRUCTP(r
->out
.info
);
13158 if (flags
& NDR_OUT
) {
13159 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13160 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13162 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13163 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13164 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
13166 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
13168 *r
->out
.info
= NULL
;
13170 if (*r
->out
.info
) {
13171 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13172 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
13173 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13174 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
13176 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13177 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13179 return NDR_ERR_SUCCESS
;
13182 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
13184 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
13186 if (flags
& NDR_SET_VALUES
) {
13187 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13189 if (flags
& NDR_IN
) {
13190 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
13192 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
13194 if (r
->in
.server_unc
) {
13195 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
13198 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
13200 if (r
->in
.client_account
) {
13201 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
13204 ndr_print_samr_AcctFlags(ndr
, "mask", r
->in
.mask
);
13205 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13207 if (r
->in
.domain_name
) {
13208 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13211 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
13213 if (r
->in
.domain_guid
) {
13214 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
13217 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
13219 if (r
->in
.site_name
) {
13220 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
13223 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
13226 if (flags
& NDR_OUT
) {
13227 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
13229 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13231 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
13233 if (*r
->out
.info
) {
13234 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
13238 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13244 static enum ndr_err_code
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
13246 if (flags
& NDR_IN
) {
13248 if (flags
& NDR_OUT
) {
13249 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13251 return NDR_ERR_SUCCESS
;
13254 static enum ndr_err_code
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
13256 if (flags
& NDR_IN
) {
13258 if (flags
& NDR_OUT
) {
13259 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13261 return NDR_ERR_SUCCESS
;
13264 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
13266 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13268 if (flags
& NDR_SET_VALUES
) {
13269 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13271 if (flags
& NDR_IN
) {
13272 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13276 if (flags
& NDR_OUT
) {
13277 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13279 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13285 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
13287 if (flags
& NDR_IN
) {
13288 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13289 if (r
->in
.server_name
) {
13290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13293 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
));
13296 if (flags
& NDR_OUT
) {
13297 if (r
->out
.dom_trust_list
== NULL
) {
13298 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13300 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
13301 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13303 return NDR_ERR_SUCCESS
;
13306 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomainsEx
*r
)
13308 uint32_t _ptr_server_name
;
13309 TALLOC_CTX
*_mem_save_server_name_0
;
13310 TALLOC_CTX
*_mem_save_dom_trust_list_0
;
13311 if (flags
& NDR_IN
) {
13312 ZERO_STRUCT(r
->out
);
13314 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13315 if (_ptr_server_name
) {
13316 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13318 r
->in
.server_name
= NULL
;
13320 if (r
->in
.server_name
) {
13321 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13322 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13323 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13324 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13325 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13326 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
13328 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13329 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
13330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13332 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
13333 ZERO_STRUCTP(r
->out
.dom_trust_list
);
13335 if (flags
& NDR_OUT
) {
13336 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13337 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
13339 _mem_save_dom_trust_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13340 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dom_trust_list
, LIBNDR_FLAG_REF_ALLOC
);
13341 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
13342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dom_trust_list_0
, LIBNDR_FLAG_REF_ALLOC
);
13343 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13345 return NDR_ERR_SUCCESS
;
13348 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
13350 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomainsEx");
13352 if (flags
& NDR_SET_VALUES
) {
13353 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13355 if (flags
& NDR_IN
) {
13356 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomainsEx");
13358 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13360 if (r
->in
.server_name
) {
13361 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13366 if (flags
& NDR_OUT
) {
13367 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomainsEx");
13369 ndr_print_ptr(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
13371 ndr_print_netr_DomainTrustList(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
13373 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13379 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
13381 uint32_t cntr_addresses_1
;
13382 if (flags
& NDR_IN
) {
13383 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13384 if (r
->in
.server_name
) {
13385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13388 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
));
13390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
13391 if (r
->in
.addresses
== NULL
) {
13392 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
13395 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13396 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
13398 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13399 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
13402 if (flags
& NDR_OUT
) {
13403 if (r
->out
.ctr
== NULL
) {
13404 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13406 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
13408 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
13410 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13412 return NDR_ERR_SUCCESS
;
13415 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesExW
*r
)
13417 uint32_t _ptr_server_name
;
13418 uint32_t cntr_addresses_1
;
13420 TALLOC_CTX
*_mem_save_server_name_0
;
13421 TALLOC_CTX
*_mem_save_addresses_1
;
13422 TALLOC_CTX
*_mem_save_ctr_0
;
13423 TALLOC_CTX
*_mem_save_ctr_1
;
13424 if (flags
& NDR_IN
) {
13425 ZERO_STRUCT(r
->out
);
13427 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13428 if (_ptr_server_name
) {
13429 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13431 r
->in
.server_name
= NULL
;
13433 if (r
->in
.server_name
) {
13434 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13435 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13436 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13437 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13438 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13439 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
13441 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13442 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
13443 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13445 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
13446 if (r
->in
.count
< 0 || r
->in
.count
> 32000) {
13447 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
13449 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
13450 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13451 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
13453 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13454 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
13455 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13456 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
13458 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
13459 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
13461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
13462 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13463 ZERO_STRUCTP(r
->out
.ctr
);
13464 if (r
->in
.addresses
) {
13465 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
13468 if (flags
& NDR_OUT
) {
13469 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13470 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13472 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13473 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13474 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
13476 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
13478 *r
->out
.ctr
= NULL
;
13481 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13482 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
13483 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
13484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
13486 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13487 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13489 return NDR_ERR_SUCCESS
;
13492 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
13494 uint32_t cntr_addresses_1
;
13495 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExW");
13497 if (flags
& NDR_SET_VALUES
) {
13498 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13500 if (flags
& NDR_IN
) {
13501 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesExW");
13503 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13505 if (r
->in
.server_name
) {
13506 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13509 ndr_print_uint32(ndr
, "count", r
->in
.count
);
13510 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
13512 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
13514 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
13516 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
13517 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
13525 if (flags
& NDR_OUT
) {
13526 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesExW");
13528 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13530 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
13533 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr
, "ctr", *r
->out
.ctr
);
13537 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13543 static enum ndr_err_code
ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push
*ndr
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
13545 if (flags
& NDR_IN
) {
13546 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13547 if (r
->in
.server_name
) {
13548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13551 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
));
13554 if (flags
& NDR_OUT
) {
13555 if (r
->out
.ctr
== NULL
) {
13556 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13558 NDR_CHECK(ndr_push_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13559 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13561 return NDR_ERR_SUCCESS
;
13564 static enum ndr_err_code
ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull
*ndr
, int flags
, struct netr_DsrGetDcSiteCoverageW
*r
)
13566 uint32_t _ptr_server_name
;
13567 TALLOC_CTX
*_mem_save_server_name_0
;
13568 TALLOC_CTX
*_mem_save_ctr_0
;
13569 if (flags
& NDR_IN
) {
13570 ZERO_STRUCT(r
->out
);
13572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13573 if (_ptr_server_name
) {
13574 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13576 r
->in
.server_name
= NULL
;
13578 if (r
->in
.server_name
) {
13579 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13580 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13581 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13582 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13583 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13584 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
13586 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13587 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
13588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13590 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13591 ZERO_STRUCTP(r
->out
.ctr
);
13593 if (flags
& NDR_OUT
) {
13594 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13595 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13597 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13598 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13599 NDR_CHECK(ndr_pull_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13600 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13601 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13603 return NDR_ERR_SUCCESS
;
13606 _PUBLIC_
void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
13608 ndr_print_struct(ndr
, name
, "netr_DsrGetDcSiteCoverageW");
13610 if (flags
& NDR_SET_VALUES
) {
13611 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13613 if (flags
& NDR_IN
) {
13614 ndr_print_struct(ndr
, "in", "netr_DsrGetDcSiteCoverageW");
13616 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13618 if (r
->in
.server_name
) {
13619 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13624 if (flags
& NDR_OUT
) {
13625 ndr_print_struct(ndr
, "out", "netr_DsrGetDcSiteCoverageW");
13627 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13629 ndr_print_DcSitesCtr(ndr
, "ctr", r
->out
.ctr
);
13631 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13637 static enum ndr_err_code
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
13639 if (flags
& NDR_IN
) {
13640 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13641 if (r
->in
.server_name
) {
13642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13645 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
));
13647 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13648 if (r
->in
.computer_name
) {
13649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13652 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
));
13654 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
13655 if (r
->in
.logon
== NULL
) {
13656 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13658 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
13659 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
13660 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
13661 if (r
->in
.flags
== NULL
) {
13662 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
13666 if (flags
& NDR_OUT
) {
13667 if (r
->out
.validation
== NULL
) {
13668 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13670 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
13671 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
13672 if (r
->out
.authoritative
== NULL
) {
13673 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13675 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
13676 if (r
->out
.flags
== NULL
) {
13677 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
13680 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13682 return NDR_ERR_SUCCESS
;
13685 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
13687 uint32_t _ptr_server_name
;
13688 uint32_t _ptr_computer_name
;
13689 TALLOC_CTX
*_mem_save_server_name_0
;
13690 TALLOC_CTX
*_mem_save_computer_name_0
;
13691 TALLOC_CTX
*_mem_save_logon_0
;
13692 TALLOC_CTX
*_mem_save_validation_0
;
13693 TALLOC_CTX
*_mem_save_authoritative_0
;
13694 TALLOC_CTX
*_mem_save_flags_0
;
13695 if (flags
& NDR_IN
) {
13696 ZERO_STRUCT(r
->out
);
13698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13699 if (_ptr_server_name
) {
13700 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13702 r
->in
.server_name
= NULL
;
13704 if (r
->in
.server_name
) {
13705 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13706 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13707 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13708 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13709 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13710 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
13712 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13713 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
13714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13716 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13717 if (_ptr_computer_name
) {
13718 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13720 r
->in
.computer_name
= NULL
;
13722 if (r
->in
.computer_name
) {
13723 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13724 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13725 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13726 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13727 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13728 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
13730 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13731 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
13732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13734 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
13735 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13736 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
13738 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13739 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
13740 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
13741 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
13742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
13743 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
13744 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13745 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
13747 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13748 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
13749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
13750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13751 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
13752 ZERO_STRUCTP(r
->out
.validation
);
13753 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
13754 ZERO_STRUCTP(r
->out
.authoritative
);
13755 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
13756 *r
->out
.flags
= *r
->in
.flags
;
13758 if (flags
& NDR_OUT
) {
13759 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13760 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
13762 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13763 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
13764 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
13765 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
13766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
13767 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13768 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
13770 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13771 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
13772 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
13773 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
13774 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13775 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
13777 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13778 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
13779 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
13780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13781 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13783 return NDR_ERR_SUCCESS
;
13786 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
13788 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
13790 if (flags
& NDR_SET_VALUES
) {
13791 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13793 if (flags
& NDR_IN
) {
13794 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
13796 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13798 if (r
->in
.server_name
) {
13799 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13802 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13804 if (r
->in
.computer_name
) {
13805 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13808 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
13809 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
13811 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
13812 ndr_print_netr_LogonInfo(ndr
, "logon", r
->in
.logon
);
13814 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
13815 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
13817 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
13821 if (flags
& NDR_OUT
) {
13822 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
13824 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
13826 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
13827 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
13829 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
13831 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
13833 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
13835 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
13837 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13843 static enum ndr_err_code
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
13845 if (flags
& NDR_IN
) {
13846 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13847 if (r
->in
.server_name
) {
13848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13851 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
));
13853 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
13855 if (flags
& NDR_OUT
) {
13856 if (r
->out
.trusts
== NULL
) {
13857 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13859 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
13860 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13862 return NDR_ERR_SUCCESS
;
13865 static enum ndr_err_code
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
13867 uint32_t _ptr_server_name
;
13868 TALLOC_CTX
*_mem_save_server_name_0
;
13869 TALLOC_CTX
*_mem_save_trusts_0
;
13870 if (flags
& NDR_IN
) {
13871 ZERO_STRUCT(r
->out
);
13873 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13874 if (_ptr_server_name
) {
13875 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13877 r
->in
.server_name
= NULL
;
13879 if (r
->in
.server_name
) {
13880 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13881 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13882 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13883 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13884 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13885 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
13887 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13888 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
13889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13891 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
13892 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
13893 ZERO_STRUCTP(r
->out
.trusts
);
13895 if (flags
& NDR_OUT
) {
13896 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13897 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
13899 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13900 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, LIBNDR_FLAG_REF_ALLOC
);
13901 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
13902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, LIBNDR_FLAG_REF_ALLOC
);
13903 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13905 return NDR_ERR_SUCCESS
;
13908 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
13910 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
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_DsrEnumerateDomainTrusts");
13918 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13920 if (r
->in
.server_name
) {
13921 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13924 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
13927 if (flags
& NDR_OUT
) {
13928 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
13930 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
13932 ndr_print_netr_DomainTrustList(ndr
, "trusts", r
->out
.trusts
);
13934 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13940 static enum ndr_err_code
ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push
*ndr
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
13942 if (flags
& NDR_IN
) {
13943 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13944 if (r
->in
.server_name
) {
13945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13948 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
));
13950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain
));
13951 if (r
->in
.domain
) {
13952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
13953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
13955 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain
, ndr_charset_length(r
->in
.domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13957 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13958 if (r
->in
.domain_guid
) {
13959 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
13961 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.dsa_guid
));
13962 if (r
->in
.dsa_guid
) {
13963 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.dsa_guid
));
13965 if (r
->in
.dns_host
== NULL
) {
13966 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
13969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
13971 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
));
13973 if (flags
& NDR_OUT
) {
13974 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13976 return NDR_ERR_SUCCESS
;
13979 static enum ndr_err_code
ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull
*ndr
, int flags
, struct netr_DsrDeregisterDNSHostRecords
*r
)
13981 uint32_t _ptr_server_name
;
13982 uint32_t _ptr_domain
;
13983 uint32_t _ptr_domain_guid
;
13984 uint32_t _ptr_dsa_guid
;
13985 TALLOC_CTX
*_mem_save_server_name_0
;
13986 TALLOC_CTX
*_mem_save_domain_0
;
13987 TALLOC_CTX
*_mem_save_domain_guid_0
;
13988 TALLOC_CTX
*_mem_save_dsa_guid_0
;
13989 if (flags
& NDR_IN
) {
13990 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13991 if (_ptr_server_name
) {
13992 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13994 r
->in
.server_name
= NULL
;
13996 if (r
->in
.server_name
) {
13997 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13998 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13999 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14000 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14001 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14002 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
14004 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14005 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
14006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14008 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
14010 NDR_PULL_ALLOC(ndr
, r
->in
.domain
);
14012 r
->in
.domain
= NULL
;
14014 if (r
->in
.domain
) {
14015 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14016 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain
, 0);
14017 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain
));
14018 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain
));
14019 if (ndr_get_array_length(ndr
, &r
->in
.domain
) > ndr_get_array_size(ndr
, &r
->in
.domain
)) {
14020 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain
), ndr_get_array_length(ndr
, &r
->in
.domain
));
14022 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t)));
14023 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t), CH_UTF16
));
14024 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
14026 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
14027 if (_ptr_domain_guid
) {
14028 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
14030 r
->in
.domain_guid
= NULL
;
14032 if (r
->in
.domain_guid
) {
14033 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14034 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
14035 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
14036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
14038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_guid
));
14039 if (_ptr_dsa_guid
) {
14040 NDR_PULL_ALLOC(ndr
, r
->in
.dsa_guid
);
14042 r
->in
.dsa_guid
= NULL
;
14044 if (r
->in
.dsa_guid
) {
14045 _mem_save_dsa_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14046 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.dsa_guid
, 0);
14047 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.dsa_guid
));
14048 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_guid_0
, 0);
14050 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.dns_host
));
14051 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.dns_host
));
14052 if (ndr_get_array_length(ndr
, &r
->in
.dns_host
) > ndr_get_array_size(ndr
, &r
->in
.dns_host
)) {
14053 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.dns_host
), ndr_get_array_length(ndr
, &r
->in
.dns_host
));
14055 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t)));
14056 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.dns_host
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t), CH_UTF16
));
14058 if (flags
& NDR_OUT
) {
14059 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14061 return NDR_ERR_SUCCESS
;
14064 _PUBLIC_
void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
14066 ndr_print_struct(ndr
, name
, "netr_DsrDeregisterDNSHostRecords");
14068 if (flags
& NDR_SET_VALUES
) {
14069 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14071 if (flags
& NDR_IN
) {
14072 ndr_print_struct(ndr
, "in", "netr_DsrDeregisterDNSHostRecords");
14074 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14076 if (r
->in
.server_name
) {
14077 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14080 ndr_print_ptr(ndr
, "domain", r
->in
.domain
);
14082 if (r
->in
.domain
) {
14083 ndr_print_string(ndr
, "domain", r
->in
.domain
);
14086 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
14088 if (r
->in
.domain_guid
) {
14089 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
14092 ndr_print_ptr(ndr
, "dsa_guid", r
->in
.dsa_guid
);
14094 if (r
->in
.dsa_guid
) {
14095 ndr_print_GUID(ndr
, "dsa_guid", r
->in
.dsa_guid
);
14098 ndr_print_ptr(ndr
, "dns_host", r
->in
.dns_host
);
14100 ndr_print_string(ndr
, "dns_host", r
->in
.dns_host
);
14104 if (flags
& NDR_OUT
) {
14105 ndr_print_struct(ndr
, "out", "netr_DsrDeregisterDNSHostRecords");
14107 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14113 static enum ndr_err_code
ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
14115 if (flags
& NDR_IN
) {
14116 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14117 if (r
->in
.server_name
) {
14118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14121 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
));
14123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14126 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
));
14127 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14129 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14131 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
));
14132 if (r
->in
.credential
== NULL
) {
14133 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14135 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14137 if (flags
& NDR_OUT
) {
14138 if (r
->out
.return_authenticator
== NULL
) {
14139 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14141 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14142 if (r
->out
.password
== NULL
) {
14143 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14145 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.password
));
14146 if (r
->out
.password2
== NULL
) {
14147 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14149 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.password2
));
14150 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
14152 return NDR_ERR_SUCCESS
;
14155 static enum ndr_err_code
ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerTrustPasswordsGet
*r
)
14157 uint32_t _ptr_server_name
;
14158 TALLOC_CTX
*_mem_save_server_name_0
;
14159 TALLOC_CTX
*_mem_save_credential_0
;
14160 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14161 TALLOC_CTX
*_mem_save_password_0
;
14162 TALLOC_CTX
*_mem_save_password2_0
;
14163 if (flags
& NDR_IN
) {
14164 ZERO_STRUCT(r
->out
);
14166 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14167 if (_ptr_server_name
) {
14168 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14170 r
->in
.server_name
= NULL
;
14172 if (r
->in
.server_name
) {
14173 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14174 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14175 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14176 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14177 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14178 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
14180 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14181 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
14182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14184 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14185 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14186 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14187 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
14189 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14190 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
14191 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14192 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14193 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14194 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14195 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
14197 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14198 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
14199 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14200 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14202 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14203 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14204 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14206 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14207 ZERO_STRUCTP(r
->out
.return_authenticator
);
14208 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14209 ZERO_STRUCTP(r
->out
.password
);
14210 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
14211 ZERO_STRUCTP(r
->out
.password2
);
14213 if (flags
& NDR_OUT
) {
14214 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14215 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14217 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14218 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14219 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14221 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14222 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14224 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14225 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
14226 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.password
));
14227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14228 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14229 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
14231 _mem_save_password2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14232 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password2
, LIBNDR_FLAG_REF_ALLOC
);
14233 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.password2
));
14234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password2_0
, LIBNDR_FLAG_REF_ALLOC
);
14235 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14237 return NDR_ERR_SUCCESS
;
14240 _PUBLIC_
void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
14242 ndr_print_struct(ndr
, name
, "netr_ServerTrustPasswordsGet");
14244 if (flags
& NDR_SET_VALUES
) {
14245 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14247 if (flags
& NDR_IN
) {
14248 ndr_print_struct(ndr
, "in", "netr_ServerTrustPasswordsGet");
14250 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14252 if (r
->in
.server_name
) {
14253 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14256 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14257 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14258 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14259 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14261 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14265 if (flags
& NDR_OUT
) {
14266 ndr_print_struct(ndr
, "out", "netr_ServerTrustPasswordsGet");
14268 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14270 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14272 ndr_print_ptr(ndr
, "password", r
->out
.password
);
14274 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
14276 ndr_print_ptr(ndr
, "password2", r
->out
.password2
);
14278 ndr_print_samr_Password(ndr
, "password2", r
->out
.password2
);
14280 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14286 static enum ndr_err_code
ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
14288 if (flags
& NDR_IN
) {
14289 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14290 if (r
->in
.server_name
) {
14291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14294 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
));
14296 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.trusted_domain_name
));
14297 if (r
->in
.trusted_domain_name
) {
14298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14301 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
));
14303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
14305 if (flags
& NDR_OUT
) {
14306 if (r
->out
.forest_trust_info
== NULL
) {
14307 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14309 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
14310 if (*r
->out
.forest_trust_info
) {
14311 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14313 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14315 return NDR_ERR_SUCCESS
;
14318 static enum ndr_err_code
ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetForestTrustInformation
*r
)
14320 uint32_t _ptr_server_name
;
14321 uint32_t _ptr_trusted_domain_name
;
14322 uint32_t _ptr_forest_trust_info
;
14323 TALLOC_CTX
*_mem_save_server_name_0
;
14324 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
14325 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
14326 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
14327 if (flags
& NDR_IN
) {
14328 ZERO_STRUCT(r
->out
);
14330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14331 if (_ptr_server_name
) {
14332 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14334 r
->in
.server_name
= NULL
;
14336 if (r
->in
.server_name
) {
14337 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14338 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14339 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14340 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14341 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14342 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
14344 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
14346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14348 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
14349 if (_ptr_trusted_domain_name
) {
14350 NDR_PULL_ALLOC(ndr
, r
->in
.trusted_domain_name
);
14352 r
->in
.trusted_domain_name
= NULL
;
14354 if (r
->in
.trusted_domain_name
) {
14355 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14356 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.trusted_domain_name
, 0);
14357 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
14358 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
14359 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
14360 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
), ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
));
14362 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
14363 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.trusted_domain_name
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t), CH_UTF16
));
14364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
14366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14367 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14368 ZERO_STRUCTP(r
->out
.forest_trust_info
);
14370 if (flags
& NDR_OUT
) {
14371 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14372 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14374 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14375 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
14376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
14377 if (_ptr_forest_trust_info
) {
14378 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
14380 *r
->out
.forest_trust_info
= NULL
;
14382 if (*r
->out
.forest_trust_info
) {
14383 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14384 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
14385 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
14388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14389 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14391 return NDR_ERR_SUCCESS
;
14394 _PUBLIC_
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
14396 ndr_print_struct(ndr
, name
, "netr_DsRGetForestTrustInformation");
14398 if (flags
& NDR_SET_VALUES
) {
14399 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14401 if (flags
& NDR_IN
) {
14402 ndr_print_struct(ndr
, "in", "netr_DsRGetForestTrustInformation");
14404 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14406 if (r
->in
.server_name
) {
14407 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14410 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14412 if (r
->in
.trusted_domain_name
) {
14413 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14416 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
14419 if (flags
& NDR_OUT
) {
14420 ndr_print_struct(ndr
, "out", "netr_DsRGetForestTrustInformation");
14422 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
14424 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14426 if (*r
->out
.forest_trust_info
) {
14427 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14431 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14437 static enum ndr_err_code
ndr_push_netr_GetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_GetForestTrustInformation
*r
)
14439 if (flags
& NDR_IN
) {
14440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14441 if (r
->in
.server_name
) {
14442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14445 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
));
14447 if (r
->in
.trusted_domain_name
== NULL
) {
14448 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
14453 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
));
14454 if (r
->in
.credential
== NULL
) {
14455 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14457 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
14460 if (flags
& NDR_OUT
) {
14461 if (r
->out
.return_authenticator
== NULL
) {
14462 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14464 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14465 if (r
->out
.forest_trust_info
== NULL
) {
14466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14468 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
14469 if (*r
->out
.forest_trust_info
) {
14470 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14472 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14474 return NDR_ERR_SUCCESS
;
14477 static enum ndr_err_code
ndr_pull_netr_GetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_GetForestTrustInformation
*r
)
14479 uint32_t _ptr_server_name
;
14480 uint32_t _ptr_forest_trust_info
;
14481 TALLOC_CTX
*_mem_save_server_name_0
;
14482 TALLOC_CTX
*_mem_save_credential_0
;
14483 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14484 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
14485 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
14486 if (flags
& NDR_IN
) {
14487 ZERO_STRUCT(r
->out
);
14489 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14490 if (_ptr_server_name
) {
14491 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14493 r
->in
.server_name
= NULL
;
14495 if (r
->in
.server_name
) {
14496 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14497 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14498 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14499 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14500 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14501 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
14503 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14504 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
14505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14507 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
14508 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
14509 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
14510 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
), ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
));
14512 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
14513 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.trusted_domain_name
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t), CH_UTF16
));
14514 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14515 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14517 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14518 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14519 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14521 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14522 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14523 ZERO_STRUCTP(r
->out
.return_authenticator
);
14524 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14525 ZERO_STRUCTP(r
->out
.forest_trust_info
);
14527 if (flags
& NDR_OUT
) {
14528 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14529 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14531 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14532 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14533 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14535 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14536 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
14538 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14539 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
14540 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
14541 if (_ptr_forest_trust_info
) {
14542 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
14544 *r
->out
.forest_trust_info
= NULL
;
14546 if (*r
->out
.forest_trust_info
) {
14547 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14548 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
14549 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
14550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
14552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14553 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14555 return NDR_ERR_SUCCESS
;
14558 _PUBLIC_
void ndr_print_netr_GetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetForestTrustInformation
*r
)
14560 ndr_print_struct(ndr
, name
, "netr_GetForestTrustInformation");
14562 if (flags
& NDR_SET_VALUES
) {
14563 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14565 if (flags
& NDR_IN
) {
14566 ndr_print_struct(ndr
, "in", "netr_GetForestTrustInformation");
14568 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14570 if (r
->in
.server_name
) {
14571 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14574 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14576 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
14578 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14580 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14582 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
14585 if (flags
& NDR_OUT
) {
14586 ndr_print_struct(ndr
, "out", "netr_GetForestTrustInformation");
14588 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14590 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14592 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
14594 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14596 if (*r
->out
.forest_trust_info
) {
14597 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
14601 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14607 static enum ndr_err_code
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
14609 if (flags
& NDR_IN
) {
14610 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14611 if (r
->in
.server_name
) {
14612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14615 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
));
14617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
14618 if (r
->in
.computer_name
) {
14619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14622 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
));
14624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
14625 if (r
->in
.credential
) {
14626 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14628 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
14629 if (r
->in
.return_authenticator
) {
14630 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
14632 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
14633 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
14634 NDR_CHECK(ndr_push_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
14635 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
14636 if (r
->in
.flags
== NULL
) {
14637 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
14641 if (flags
& NDR_OUT
) {
14642 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
14643 if (r
->out
.return_authenticator
) {
14644 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14646 if (r
->out
.validation
== NULL
) {
14647 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14649 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
14650 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
14651 if (r
->out
.authoritative
== NULL
) {
14652 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14654 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
14655 if (r
->out
.flags
== NULL
) {
14656 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
14659 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
14661 return NDR_ERR_SUCCESS
;
14664 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
14666 uint32_t _ptr_server_name
;
14667 uint32_t _ptr_computer_name
;
14668 uint32_t _ptr_credential
;
14669 uint32_t _ptr_return_authenticator
;
14670 TALLOC_CTX
*_mem_save_server_name_0
;
14671 TALLOC_CTX
*_mem_save_computer_name_0
;
14672 TALLOC_CTX
*_mem_save_credential_0
;
14673 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14674 TALLOC_CTX
*_mem_save_validation_0
;
14675 TALLOC_CTX
*_mem_save_authoritative_0
;
14676 TALLOC_CTX
*_mem_save_flags_0
;
14677 if (flags
& NDR_IN
) {
14678 ZERO_STRUCT(r
->out
);
14680 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14681 if (_ptr_server_name
) {
14682 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14684 r
->in
.server_name
= NULL
;
14686 if (r
->in
.server_name
) {
14687 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14688 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14689 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14690 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14691 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14692 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
14694 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14695 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
14696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
14699 if (_ptr_computer_name
) {
14700 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
14702 r
->in
.computer_name
= NULL
;
14704 if (r
->in
.computer_name
) {
14705 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14706 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
14707 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14708 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14709 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14710 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
14712 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14713 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
14714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
14716 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
14717 if (_ptr_credential
) {
14718 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14720 r
->in
.credential
= NULL
;
14722 if (r
->in
.credential
) {
14723 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14724 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
14725 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
14728 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
14729 if (_ptr_return_authenticator
) {
14730 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
14732 r
->in
.return_authenticator
= NULL
;
14734 if (r
->in
.return_authenticator
) {
14735 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14736 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
14737 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
14738 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
14740 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
14741 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
14742 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
14743 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
14744 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14745 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
14747 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14748 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
14749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
14750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
14751 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
14752 ZERO_STRUCTP(r
->out
.validation
);
14753 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
14754 ZERO_STRUCTP(r
->out
.authoritative
);
14755 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
14756 *r
->out
.flags
= *r
->in
.flags
;
14758 if (flags
& NDR_OUT
) {
14759 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
14760 if (_ptr_return_authenticator
) {
14761 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14763 r
->out
.return_authenticator
= NULL
;
14765 if (r
->out
.return_authenticator
) {
14766 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14767 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
14768 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
14771 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14772 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
14774 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14775 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
14776 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
14777 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
14778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
14779 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14780 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
14782 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14783 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
14784 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
14785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
14786 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14787 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
14789 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14790 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
14791 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
14792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
14793 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14795 return NDR_ERR_SUCCESS
;
14798 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
14800 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
14802 if (flags
& NDR_SET_VALUES
) {
14803 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14805 if (flags
& NDR_IN
) {
14806 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
14808 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14810 if (r
->in
.server_name
) {
14811 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14814 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14816 if (r
->in
.computer_name
) {
14817 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14820 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14822 if (r
->in
.credential
) {
14823 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14826 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
14828 if (r
->in
.return_authenticator
) {
14829 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
14832 ndr_print_netr_LogonLevel(ndr
, "logon_level", r
->in
.logon_level
);
14833 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
14834 ndr_print_netr_LogonInfo(ndr
, "logon", &r
->in
.logon
);
14835 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
14836 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
14838 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
14842 if (flags
& NDR_OUT
) {
14843 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
14845 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14847 if (r
->out
.return_authenticator
) {
14848 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14851 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
14853 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
14854 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
14856 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
14858 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
14860 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
14862 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
14864 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14870 static enum ndr_err_code
ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push
*ndr
, int flags
, const struct netr_NETRSERVERGETTRUSTINFO
*r
)
14872 if (flags
& NDR_IN
) {
14874 if (flags
& NDR_OUT
) {
14875 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14877 return NDR_ERR_SUCCESS
;
14880 static enum ndr_err_code
ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull
*ndr
, int flags
, struct netr_NETRSERVERGETTRUSTINFO
*r
)
14882 if (flags
& NDR_IN
) {
14884 if (flags
& NDR_OUT
) {
14885 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14887 return NDR_ERR_SUCCESS
;
14890 _PUBLIC_
void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRSERVERGETTRUSTINFO
*r
)
14892 ndr_print_struct(ndr
, name
, "netr_NETRSERVERGETTRUSTINFO");
14894 if (flags
& NDR_SET_VALUES
) {
14895 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14897 if (flags
& NDR_IN
) {
14898 ndr_print_struct(ndr
, "in", "netr_NETRSERVERGETTRUSTINFO");
14902 if (flags
& NDR_OUT
) {
14903 ndr_print_struct(ndr
, "out", "netr_NETRSERVERGETTRUSTINFO");
14905 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14911 static const struct ndr_interface_call netlogon_calls
[] = {
14913 "netr_LogonUasLogon",
14914 sizeof(struct netr_LogonUasLogon
),
14915 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
14916 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
14917 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
14921 "netr_LogonUasLogoff",
14922 sizeof(struct netr_LogonUasLogoff
),
14923 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
14924 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
14925 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
14929 "netr_LogonSamLogon",
14930 sizeof(struct netr_LogonSamLogon
),
14931 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
14932 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
14933 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
14937 "netr_LogonSamLogoff",
14938 sizeof(struct netr_LogonSamLogoff
),
14939 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
14940 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
14941 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
14945 "netr_ServerReqChallenge",
14946 sizeof(struct netr_ServerReqChallenge
),
14947 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
14948 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
14949 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
14953 "netr_ServerAuthenticate",
14954 sizeof(struct netr_ServerAuthenticate
),
14955 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
14956 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
14957 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
14961 "netr_ServerPasswordSet",
14962 sizeof(struct netr_ServerPasswordSet
),
14963 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
14964 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
14965 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
14969 "netr_DatabaseDeltas",
14970 sizeof(struct netr_DatabaseDeltas
),
14971 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
14972 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
14973 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
14977 "netr_DatabaseSync",
14978 sizeof(struct netr_DatabaseSync
),
14979 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
14980 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
14981 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
14985 "netr_AccountDeltas",
14986 sizeof(struct netr_AccountDeltas
),
14987 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
14988 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
14989 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
14993 "netr_AccountSync",
14994 sizeof(struct netr_AccountSync
),
14995 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
14996 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
14997 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
15002 sizeof(struct netr_GetDcName
),
15003 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
15004 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
15005 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
15009 "netr_LogonControl",
15010 sizeof(struct netr_LogonControl
),
15011 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
15012 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
15013 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
15017 "netr_GetAnyDCName",
15018 sizeof(struct netr_GetAnyDCName
),
15019 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
15020 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
15021 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
15025 "netr_LogonControl2",
15026 sizeof(struct netr_LogonControl2
),
15027 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
15028 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
15029 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
15033 "netr_ServerAuthenticate2",
15034 sizeof(struct netr_ServerAuthenticate2
),
15035 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
15036 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
15037 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
15041 "netr_DatabaseSync2",
15042 sizeof(struct netr_DatabaseSync2
),
15043 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
15044 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
15045 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
15049 "netr_DatabaseRedo",
15050 sizeof(struct netr_DatabaseRedo
),
15051 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
15052 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
15053 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
15057 "netr_LogonControl2Ex",
15058 sizeof(struct netr_LogonControl2Ex
),
15059 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
15060 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
15061 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
15065 "netr_NetrEnumerateTrustedDomains",
15066 sizeof(struct netr_NetrEnumerateTrustedDomains
),
15067 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomains
,
15068 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomains
,
15069 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomains
,
15073 "netr_DsRGetDCName",
15074 sizeof(struct netr_DsRGetDCName
),
15075 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
15076 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
15077 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
15081 "netr_LogonGetCapabilities",
15082 sizeof(struct netr_LogonGetCapabilities
),
15083 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetCapabilities
,
15084 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetCapabilities
,
15085 (ndr_print_function_t
) ndr_print_netr_LogonGetCapabilities
,
15089 "netr_NETRLOGONSETSERVICEBITS",
15090 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
15091 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
15092 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
15093 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
15097 "netr_LogonGetTrustRid",
15098 sizeof(struct netr_LogonGetTrustRid
),
15099 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetTrustRid
,
15100 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetTrustRid
,
15101 (ndr_print_function_t
) ndr_print_netr_LogonGetTrustRid
,
15105 "netr_NETRLOGONCOMPUTESERVERDIGEST",
15106 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
15107 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
15108 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
15109 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
15113 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
15114 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
15115 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
15116 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
15117 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
15121 "netr_ServerAuthenticate3",
15122 sizeof(struct netr_ServerAuthenticate3
),
15123 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
15124 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
15125 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
15129 "netr_DsRGetDCNameEx",
15130 sizeof(struct netr_DsRGetDCNameEx
),
15131 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
15132 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
15133 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
15137 "netr_DsRGetSiteName",
15138 sizeof(struct netr_DsRGetSiteName
),
15139 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
15140 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
15141 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
15145 "netr_LogonGetDomainInfo",
15146 sizeof(struct netr_LogonGetDomainInfo
),
15147 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
15148 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
15149 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
15153 "netr_ServerPasswordSet2",
15154 sizeof(struct netr_ServerPasswordSet2
),
15155 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
15156 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
15157 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
15161 "netr_ServerPasswordGet",
15162 sizeof(struct netr_ServerPasswordGet
),
15163 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordGet
,
15164 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordGet
,
15165 (ndr_print_function_t
) ndr_print_netr_ServerPasswordGet
,
15169 "netr_NETRLOGONSENDTOSAM",
15170 sizeof(struct netr_NETRLOGONSENDTOSAM
),
15171 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
15172 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
15173 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
15177 "netr_DsRAddressToSitenamesW",
15178 sizeof(struct netr_DsRAddressToSitenamesW
),
15179 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesW
,
15180 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesW
,
15181 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesW
,
15185 "netr_DsRGetDCNameEx2",
15186 sizeof(struct netr_DsRGetDCNameEx2
),
15187 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
15188 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
15189 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
15193 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
15194 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
15195 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
15196 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
15197 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
15201 "netr_NetrEnumerateTrustedDomainsEx",
15202 sizeof(struct netr_NetrEnumerateTrustedDomainsEx
),
15203 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomainsEx
,
15204 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomainsEx
,
15205 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomainsEx
,
15209 "netr_DsRAddressToSitenamesExW",
15210 sizeof(struct netr_DsRAddressToSitenamesExW
),
15211 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesExW
,
15212 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesExW
,
15213 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesExW
,
15217 "netr_DsrGetDcSiteCoverageW",
15218 sizeof(struct netr_DsrGetDcSiteCoverageW
),
15219 (ndr_push_flags_fn_t
) ndr_push_netr_DsrGetDcSiteCoverageW
,
15220 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrGetDcSiteCoverageW
,
15221 (ndr_print_function_t
) ndr_print_netr_DsrGetDcSiteCoverageW
,
15225 "netr_LogonSamLogonEx",
15226 sizeof(struct netr_LogonSamLogonEx
),
15227 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
15228 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
15229 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
15233 "netr_DsrEnumerateDomainTrusts",
15234 sizeof(struct netr_DsrEnumerateDomainTrusts
),
15235 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
15236 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
15237 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
15241 "netr_DsrDeregisterDNSHostRecords",
15242 sizeof(struct netr_DsrDeregisterDNSHostRecords
),
15243 (ndr_push_flags_fn_t
) ndr_push_netr_DsrDeregisterDNSHostRecords
,
15244 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrDeregisterDNSHostRecords
,
15245 (ndr_print_function_t
) ndr_print_netr_DsrDeregisterDNSHostRecords
,
15249 "netr_ServerTrustPasswordsGet",
15250 sizeof(struct netr_ServerTrustPasswordsGet
),
15251 (ndr_push_flags_fn_t
) ndr_push_netr_ServerTrustPasswordsGet
,
15252 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerTrustPasswordsGet
,
15253 (ndr_print_function_t
) ndr_print_netr_ServerTrustPasswordsGet
,
15257 "netr_DsRGetForestTrustInformation",
15258 sizeof(struct netr_DsRGetForestTrustInformation
),
15259 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetForestTrustInformation
,
15260 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetForestTrustInformation
,
15261 (ndr_print_function_t
) ndr_print_netr_DsRGetForestTrustInformation
,
15265 "netr_GetForestTrustInformation",
15266 sizeof(struct netr_GetForestTrustInformation
),
15267 (ndr_push_flags_fn_t
) ndr_push_netr_GetForestTrustInformation
,
15268 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetForestTrustInformation
,
15269 (ndr_print_function_t
) ndr_print_netr_GetForestTrustInformation
,
15273 "netr_LogonSamLogonWithFlags",
15274 sizeof(struct netr_LogonSamLogonWithFlags
),
15275 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
15276 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
15277 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
15281 "netr_NETRSERVERGETTRUSTINFO",
15282 sizeof(struct netr_NETRSERVERGETTRUSTINFO
),
15283 (ndr_push_flags_fn_t
) ndr_push_netr_NETRSERVERGETTRUSTINFO
,
15284 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRSERVERGETTRUSTINFO
,
15285 (ndr_print_function_t
) ndr_print_netr_NETRSERVERGETTRUSTINFO
,
15288 { NULL
, 0, NULL
, NULL
, NULL
, false }
15291 static const char * const netlogon_endpoint_strings
[] = {
15292 "ncacn_np:[\\pipe\\netlogon]",
15297 static const struct ndr_interface_string_array netlogon_endpoints
= {
15299 .names
= netlogon_endpoint_strings
15302 static const char * const netlogon_authservice_strings
[] = {
15306 static const struct ndr_interface_string_array netlogon_authservices
= {
15308 .names
= netlogon_authservice_strings
15312 const struct ndr_interface_table ndr_table_netlogon
= {
15313 .name
= "netlogon",
15315 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15316 NDR_NETLOGON_VERSION
15318 .helpstring
= NDR_NETLOGON_HELPSTRING
,
15320 .calls
= netlogon_calls
,
15321 .endpoints
= &netlogon_endpoints
,
15322 .authservices
= &netlogon_authservices