1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_netlogon.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_security.h"
10 #include "librpc/gen_ndr/ndr_nbt.h"
11 static enum ndr_err_code
ndr_push_netr_UasInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasInfo
*r
)
13 if (ndr_flags
& NDR_SCALARS
) {
14 NDR_CHECK(ndr_push_align(ndr
, 4));
15 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
16 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priv
));
17 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_flags
));
18 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_count
));
19 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_pw_count
));
20 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logon
));
21 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logoff
));
22 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->logoff_time
));
23 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->kickoff_time
));
24 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->password_age
));
25 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_can_change
));
26 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_must_change
));
27 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer
));
28 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
29 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->script_path
));
30 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
32 if (ndr_flags
& NDR_BUFFERS
) {
33 if (r
->account_name
) {
34 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
35 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
36 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
37 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
40 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
41 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
42 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
43 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer
, ndr_charset_length(r
->computer
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
46 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
47 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
48 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
49 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
53 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
54 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
55 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->script_path
, ndr_charset_length(r
->script_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
58 return NDR_ERR_SUCCESS
;
61 static enum ndr_err_code
ndr_pull_netr_UasInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasInfo
*r
)
63 uint32_t _ptr_account_name
;
64 TALLOC_CTX
*_mem_save_account_name_0
;
65 uint32_t _ptr_computer
;
66 TALLOC_CTX
*_mem_save_computer_0
;
68 TALLOC_CTX
*_mem_save_domain_0
;
69 uint32_t _ptr_script_path
;
70 TALLOC_CTX
*_mem_save_script_path_0
;
71 if (ndr_flags
& NDR_SCALARS
) {
72 NDR_CHECK(ndr_pull_align(ndr
, 4));
73 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
74 if (_ptr_account_name
) {
75 NDR_PULL_ALLOC(ndr
, r
->account_name
);
77 r
->account_name
= NULL
;
79 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priv
));
80 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_flags
));
81 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_count
));
82 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_pw_count
));
83 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logon
));
84 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logoff
));
85 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->logoff_time
));
86 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->kickoff_time
));
87 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->password_age
));
88 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_can_change
));
89 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_must_change
));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer
));
92 NDR_PULL_ALLOC(ndr
, r
->computer
);
96 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
98 NDR_PULL_ALLOC(ndr
, r
->domain
);
102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_script_path
));
103 if (_ptr_script_path
) {
104 NDR_PULL_ALLOC(ndr
, r
->script_path
);
106 r
->script_path
= NULL
;
108 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
110 if (ndr_flags
& NDR_BUFFERS
) {
111 if (r
->account_name
) {
112 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
113 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
114 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
115 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
116 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
117 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
));
119 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
120 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
121 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
124 _mem_save_computer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
125 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer
, 0);
126 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer
));
127 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer
));
128 if (ndr_get_array_length(ndr
, &r
->computer
) > ndr_get_array_size(ndr
, &r
->computer
)) {
129 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
));
131 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t)));
132 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t), CH_UTF16
));
133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_0
, 0);
136 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
137 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
138 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
139 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
140 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
141 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
));
143 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
144 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
147 if (r
->script_path
) {
148 _mem_save_script_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
149 NDR_PULL_SET_MEM_CTX(ndr
, r
->script_path
, 0);
150 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->script_path
));
151 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->script_path
));
152 if (ndr_get_array_length(ndr
, &r
->script_path
) > ndr_get_array_size(ndr
, &r
->script_path
)) {
153 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
));
155 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t)));
156 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->script_path
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t), CH_UTF16
));
157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_script_path_0
, 0);
160 return NDR_ERR_SUCCESS
;
163 _PUBLIC_
void ndr_print_netr_UasInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasInfo
*r
)
165 ndr_print_struct(ndr
, name
, "netr_UasInfo");
167 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
169 if (r
->account_name
) {
170 ndr_print_string(ndr
, "account_name", r
->account_name
);
173 ndr_print_uint32(ndr
, "priv", r
->priv
);
174 ndr_print_uint32(ndr
, "auth_flags", r
->auth_flags
);
175 ndr_print_uint32(ndr
, "logon_count", r
->logon_count
);
176 ndr_print_uint32(ndr
, "bad_pw_count", r
->bad_pw_count
);
177 ndr_print_time_t(ndr
, "last_logon", r
->last_logon
);
178 ndr_print_time_t(ndr
, "last_logoff", r
->last_logoff
);
179 ndr_print_time_t(ndr
, "logoff_time", r
->logoff_time
);
180 ndr_print_time_t(ndr
, "kickoff_time", r
->kickoff_time
);
181 ndr_print_uint32(ndr
, "password_age", r
->password_age
);
182 ndr_print_time_t(ndr
, "pw_can_change", r
->pw_can_change
);
183 ndr_print_time_t(ndr
, "pw_must_change", r
->pw_must_change
);
184 ndr_print_ptr(ndr
, "computer", r
->computer
);
187 ndr_print_string(ndr
, "computer", r
->computer
);
190 ndr_print_ptr(ndr
, "domain", r
->domain
);
193 ndr_print_string(ndr
, "domain", r
->domain
);
196 ndr_print_ptr(ndr
, "script_path", r
->script_path
);
198 if (r
->script_path
) {
199 ndr_print_string(ndr
, "script_path", r
->script_path
);
202 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
206 static enum ndr_err_code
ndr_push_netr_UasLogoffInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasLogoffInfo
*r
)
208 if (ndr_flags
& NDR_SCALARS
) {
209 NDR_CHECK(ndr_push_align(ndr
, 4));
210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->duration
));
211 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
213 if (ndr_flags
& NDR_BUFFERS
) {
215 return NDR_ERR_SUCCESS
;
218 static enum ndr_err_code
ndr_pull_netr_UasLogoffInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasLogoffInfo
*r
)
220 if (ndr_flags
& NDR_SCALARS
) {
221 NDR_CHECK(ndr_pull_align(ndr
, 4));
222 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->duration
));
223 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
225 if (ndr_flags
& NDR_BUFFERS
) {
227 return NDR_ERR_SUCCESS
;
230 _PUBLIC_
void ndr_print_netr_UasLogoffInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasLogoffInfo
*r
)
232 ndr_print_struct(ndr
, name
, "netr_UasLogoffInfo");
234 ndr_print_uint32(ndr
, "duration", r
->duration
);
235 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
239 _PUBLIC_
enum ndr_err_code
ndr_push_netr_AcctLockStr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AcctLockStr
*r
)
241 if (ndr_flags
& NDR_SCALARS
) {
242 NDR_CHECK(ndr_push_align(ndr
, 4));
243 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->lockout_duration
));
244 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reset_count
));
245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_attempt_lockout
));
246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
));
248 if (ndr_flags
& NDR_BUFFERS
) {
250 return NDR_ERR_SUCCESS
;
253 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_AcctLockStr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AcctLockStr
*r
)
255 if (ndr_flags
& NDR_SCALARS
) {
256 NDR_CHECK(ndr_pull_align(ndr
, 4));
257 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->lockout_duration
));
258 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reset_count
));
259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_attempt_lockout
));
260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
262 if (ndr_flags
& NDR_BUFFERS
) {
264 return NDR_ERR_SUCCESS
;
267 _PUBLIC_
void ndr_print_netr_AcctLockStr(struct ndr_print
*ndr
, const char *name
, const struct netr_AcctLockStr
*r
)
269 ndr_print_struct(ndr
, name
, "netr_AcctLockStr");
271 ndr_print_dlong(ndr
, "lockout_duration", r
->lockout_duration
);
272 ndr_print_udlong(ndr
, "reset_count", r
->reset_count
);
273 ndr_print_uint32(ndr
, "bad_attempt_lockout", r
->bad_attempt_lockout
);
274 ndr_print_uint32(ndr
, "dummy", r
->dummy
);
278 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonParameterControl(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
281 return NDR_ERR_SUCCESS
;
284 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonParameterControl(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
289 return NDR_ERR_SUCCESS
;
292 _PUBLIC_
void ndr_print_netr_LogonParameterControl(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
294 ndr_print_uint32(ndr
, name
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_DONT_TRY_GUEST_ACCOUNT", MSV1_0_DONT_TRY_GUEST_ACCOUNT
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT
, r
);
301 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_PASSWORD_EXPIRY", MSV1_0_RETURN_PASSWORD_EXPIRY
, r
);
302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_USE_CLIENT_CHALLENGE", MSV1_0_USE_CLIENT_CHALLENGE
, r
);
303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_TRY_GUEST_ACCOUNT_ONLY", MSV1_0_TRY_GUEST_ACCOUNT_ONLY
, r
);
304 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH
, r
);
305 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY", MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY
, r
);
306 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
, r
);
307 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_DISABLE_PERSONAL_FALLBACK", MSV1_0_DISABLE_PERSONAL_FALLBACK
, r
);
308 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_FORCE_GUEST", MSV1_0_ALLOW_FORCE_GUEST
, r
);
309 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED", MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED
, r
);
310 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY", MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY
, r
);
311 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_MSVCHAPV2", MSV1_0_ALLOW_MSVCHAPV2
, r
);
312 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_S4U2SELF", MSV1_0_S4U2SELF
, r
);
313 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CHECK_LOGONHOURS_FOR_S4U", MSV1_0_CHECK_LOGONHOURS_FOR_S4U
, r
);
314 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_SUBAUTHENTICATION_DLL_EX", MSV1_0_SUBAUTHENTICATION_DLL_EX
, r
);
318 static enum ndr_err_code
ndr_push_netr_IdentityInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_IdentityInfo
*r
)
320 if (ndr_flags
& NDR_SCALARS
) {
321 NDR_CHECK(ndr_push_align(ndr
, 4));
322 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
323 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr
, NDR_SCALARS
, r
->parameter_control
));
324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_low
));
325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_high
));
326 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
327 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
329 if (ndr_flags
& NDR_BUFFERS
) {
330 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
331 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
332 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
334 return NDR_ERR_SUCCESS
;
337 static enum ndr_err_code
ndr_pull_netr_IdentityInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_IdentityInfo
*r
)
339 if (ndr_flags
& NDR_SCALARS
) {
340 NDR_CHECK(ndr_pull_align(ndr
, 4));
341 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
342 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr
, NDR_SCALARS
, &r
->parameter_control
));
343 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_low
));
344 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_high
));
345 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
346 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
348 if (ndr_flags
& NDR_BUFFERS
) {
349 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
350 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
351 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
353 return NDR_ERR_SUCCESS
;
356 _PUBLIC_
void ndr_print_netr_IdentityInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_IdentityInfo
*r
)
358 ndr_print_struct(ndr
, name
, "netr_IdentityInfo");
360 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
361 ndr_print_netr_LogonParameterControl(ndr
, "parameter_control", r
->parameter_control
);
362 ndr_print_uint32(ndr
, "logon_id_low", r
->logon_id_low
);
363 ndr_print_uint32(ndr
, "logon_id_high", r
->logon_id_high
);
364 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
365 ndr_print_lsa_String(ndr
, "workstation", &r
->workstation
);
369 static enum ndr_err_code
ndr_push_netr_PasswordInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordInfo
*r
)
371 if (ndr_flags
& NDR_SCALARS
) {
372 NDR_CHECK(ndr_push_align(ndr
, 4));
373 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
374 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
375 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
377 if (ndr_flags
& NDR_BUFFERS
) {
378 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
380 return NDR_ERR_SUCCESS
;
383 static enum ndr_err_code
ndr_pull_netr_PasswordInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordInfo
*r
)
385 if (ndr_flags
& NDR_SCALARS
) {
386 NDR_CHECK(ndr_pull_align(ndr
, 4));
387 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
388 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
389 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
391 if (ndr_flags
& NDR_BUFFERS
) {
392 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
394 return NDR_ERR_SUCCESS
;
397 _PUBLIC_
void ndr_print_netr_PasswordInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordInfo
*r
)
399 ndr_print_struct(ndr
, name
, "netr_PasswordInfo");
401 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
402 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
403 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
407 static enum ndr_err_code
ndr_push_netr_ChallengeResponse(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChallengeResponse
*r
)
410 uint32_t _flags_save_STRUCT
= ndr
->flags
;
411 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
412 if (ndr_flags
& NDR_SCALARS
) {
413 NDR_CHECK(ndr_push_align(ndr
, 4));
414 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
415 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
416 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
418 if (ndr_flags
& NDR_BUFFERS
) {
420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
423 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
426 ndr
->flags
= _flags_save_STRUCT
;
428 return NDR_ERR_SUCCESS
;
431 static enum ndr_err_code
ndr_pull_netr_ChallengeResponse(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChallengeResponse
*r
)
434 TALLOC_CTX
*_mem_save_data_0
;
436 uint32_t _flags_save_STRUCT
= ndr
->flags
;
437 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
438 if (ndr_flags
& NDR_SCALARS
) {
439 NDR_CHECK(ndr_pull_align(ndr
, 4));
440 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
441 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
442 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
444 NDR_PULL_ALLOC(ndr
, r
->data
);
449 if (ndr_flags
& NDR_BUFFERS
) {
451 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
452 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
453 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
454 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
455 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
456 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
));
458 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
459 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_length(ndr
, &r
->data
)));
460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
463 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
466 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
));
469 ndr
->flags
= _flags_save_STRUCT
;
471 return NDR_ERR_SUCCESS
;
474 _PUBLIC_
void ndr_print_netr_ChallengeResponse(struct ndr_print
*ndr
, const char *name
, const struct netr_ChallengeResponse
*r
)
476 ndr_print_struct(ndr
, name
, "netr_ChallengeResponse");
478 uint32_t _flags_save_STRUCT
= ndr
->flags
;
479 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
481 ndr_print_uint16(ndr
, "length", r
->length
);
482 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
483 ndr_print_ptr(ndr
, "data", r
->data
);
486 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
490 ndr
->flags
= _flags_save_STRUCT
;
494 static enum ndr_err_code
ndr_push_netr_NetworkInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NetworkInfo
*r
)
497 uint32_t _flags_save_STRUCT
= ndr
->flags
;
498 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
499 if (ndr_flags
& NDR_SCALARS
) {
500 NDR_CHECK(ndr_push_align(ndr
, 4));
501 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
502 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
503 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
504 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
506 if (ndr_flags
& NDR_BUFFERS
) {
507 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
508 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
509 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
511 ndr
->flags
= _flags_save_STRUCT
;
513 return NDR_ERR_SUCCESS
;
516 static enum ndr_err_code
ndr_pull_netr_NetworkInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NetworkInfo
*r
)
519 uint32_t _flags_save_STRUCT
= ndr
->flags
;
520 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
521 if (ndr_flags
& NDR_SCALARS
) {
522 NDR_CHECK(ndr_pull_align(ndr
, 4));
523 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
524 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
525 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
526 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
528 if (ndr_flags
& NDR_BUFFERS
) {
529 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
530 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
531 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
533 ndr
->flags
= _flags_save_STRUCT
;
535 return NDR_ERR_SUCCESS
;
538 _PUBLIC_
void ndr_print_netr_NetworkInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_NetworkInfo
*r
)
540 ndr_print_struct(ndr
, name
, "netr_NetworkInfo");
542 uint32_t _flags_save_STRUCT
= ndr
->flags
;
543 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
545 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
546 ndr_print_array_uint8(ndr
, "challenge", r
->challenge
, 8);
547 ndr_print_netr_ChallengeResponse(ndr
, "nt", &r
->nt
);
548 ndr_print_netr_ChallengeResponse(ndr
, "lm", &r
->lm
);
550 ndr
->flags
= _flags_save_STRUCT
;
554 static enum ndr_err_code
ndr_push_netr_GenericInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GenericInfo
*r
)
557 uint32_t _flags_save_STRUCT
= ndr
->flags
;
558 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
559 if (ndr_flags
& NDR_SCALARS
) {
560 NDR_CHECK(ndr_push_align(ndr
, 4));
561 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
562 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->package_name
));
563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
564 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
566 if (ndr_flags
& NDR_BUFFERS
) {
567 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
568 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->package_name
));
570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
571 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
574 ndr
->flags
= _flags_save_STRUCT
;
576 return NDR_ERR_SUCCESS
;
579 static enum ndr_err_code
ndr_pull_netr_GenericInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GenericInfo
*r
)
582 TALLOC_CTX
*_mem_save_data_0
;
584 uint32_t _flags_save_STRUCT
= ndr
->flags
;
585 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
586 if (ndr_flags
& NDR_SCALARS
) {
587 NDR_CHECK(ndr_pull_align(ndr
, 4));
588 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
589 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->package_name
));
590 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
591 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
593 NDR_PULL_ALLOC(ndr
, r
->data
);
598 if (ndr_flags
& NDR_BUFFERS
) {
599 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
600 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->package_name
));
602 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
603 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
604 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
605 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
606 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
610 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
613 ndr
->flags
= _flags_save_STRUCT
;
615 return NDR_ERR_SUCCESS
;
618 _PUBLIC_
void ndr_print_netr_GenericInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_GenericInfo
*r
)
620 ndr_print_struct(ndr
, name
, "netr_GenericInfo");
622 uint32_t _flags_save_STRUCT
= ndr
->flags
;
623 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
625 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
626 ndr_print_lsa_String(ndr
, "package_name", &r
->package_name
);
627 ndr_print_uint32(ndr
, "length", r
->length
);
628 ndr_print_ptr(ndr
, "data", r
->data
);
631 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
635 ndr
->flags
= _flags_save_STRUCT
;
639 static enum ndr_err_code
ndr_push_netr_LogonInfoClass(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonInfoClass r
)
641 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
642 return NDR_ERR_SUCCESS
;
645 static enum ndr_err_code
ndr_pull_netr_LogonInfoClass(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonInfoClass
*r
)
648 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
650 return NDR_ERR_SUCCESS
;
653 _PUBLIC_
void ndr_print_netr_LogonInfoClass(struct ndr_print
*ndr
, const char *name
, enum netr_LogonInfoClass r
)
655 const char *val
= NULL
;
658 case NetlogonInteractiveInformation
: val
= "NetlogonInteractiveInformation"; break;
659 case NetlogonNetworkInformation
: val
= "NetlogonNetworkInformation"; break;
660 case NetlogonServiceInformation
: val
= "NetlogonServiceInformation"; break;
661 case NetlogonGenericInformation
: val
= "NetlogonGenericInformation"; break;
662 case NetlogonInteractiveTransitiveInformation
: val
= "NetlogonInteractiveTransitiveInformation"; break;
663 case NetlogonNetworkTransitiveInformation
: val
= "NetlogonNetworkTransitiveInformation"; break;
664 case NetlogonServiceTransitiveInformation
: val
= "NetlogonServiceTransitiveInformation"; break;
666 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
669 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonLevel(struct ndr_push
*ndr
, int ndr_flags
, const union netr_LogonLevel
*r
)
671 if (ndr_flags
& NDR_SCALARS
) {
672 int level
= ndr_push_get_switch_value(ndr
, r
);
673 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, level
));
675 case NetlogonInteractiveInformation
: {
676 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
679 case NetlogonNetworkInformation
: {
680 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
683 case NetlogonServiceInformation
: {
684 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
687 case NetlogonGenericInformation
: {
688 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
691 case NetlogonInteractiveTransitiveInformation
: {
692 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
695 case NetlogonNetworkTransitiveInformation
: {
696 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
699 case NetlogonServiceTransitiveInformation
: {
700 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
704 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
707 if (ndr_flags
& NDR_BUFFERS
) {
708 int level
= ndr_push_get_switch_value(ndr
, r
);
710 case NetlogonInteractiveInformation
:
712 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
716 case NetlogonNetworkInformation
:
718 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
722 case NetlogonServiceInformation
:
724 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
728 case NetlogonGenericInformation
:
730 NDR_CHECK(ndr_push_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
734 case NetlogonInteractiveTransitiveInformation
:
736 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
740 case NetlogonNetworkTransitiveInformation
:
742 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
746 case NetlogonServiceTransitiveInformation
:
748 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
753 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
756 return NDR_ERR_SUCCESS
;
759 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonLevel(struct ndr_pull
*ndr
, int ndr_flags
, union netr_LogonLevel
*r
)
763 TALLOC_CTX
*_mem_save_password_0
;
764 TALLOC_CTX
*_mem_save_network_0
;
765 TALLOC_CTX
*_mem_save_generic_0
;
766 level
= ndr_pull_get_switch_value(ndr
, r
);
767 if (ndr_flags
& NDR_SCALARS
) {
768 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
769 if (_level
!= level
) {
770 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
773 case NetlogonInteractiveInformation
: {
774 uint32_t _ptr_password
;
775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
777 NDR_PULL_ALLOC(ndr
, r
->password
);
783 case NetlogonNetworkInformation
: {
784 uint32_t _ptr_network
;
785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
787 NDR_PULL_ALLOC(ndr
, r
->network
);
793 case NetlogonServiceInformation
: {
794 uint32_t _ptr_password
;
795 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
797 NDR_PULL_ALLOC(ndr
, r
->password
);
803 case NetlogonGenericInformation
: {
804 uint32_t _ptr_generic
;
805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
807 NDR_PULL_ALLOC(ndr
, r
->generic
);
813 case NetlogonInteractiveTransitiveInformation
: {
814 uint32_t _ptr_password
;
815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
817 NDR_PULL_ALLOC(ndr
, r
->password
);
823 case NetlogonNetworkTransitiveInformation
: {
824 uint32_t _ptr_network
;
825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
827 NDR_PULL_ALLOC(ndr
, r
->network
);
833 case NetlogonServiceTransitiveInformation
: {
834 uint32_t _ptr_password
;
835 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
837 NDR_PULL_ALLOC(ndr
, r
->password
);
844 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
847 if (ndr_flags
& NDR_BUFFERS
) {
849 case NetlogonInteractiveInformation
:
851 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
852 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
853 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
858 case NetlogonNetworkInformation
:
860 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
861 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
862 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
867 case NetlogonServiceInformation
:
869 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
870 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
871 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
876 case NetlogonGenericInformation
:
878 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
879 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
880 NDR_CHECK(ndr_pull_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
885 case NetlogonInteractiveTransitiveInformation
:
887 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
888 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
889 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
894 case NetlogonNetworkTransitiveInformation
:
896 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
897 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
898 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
903 case NetlogonServiceTransitiveInformation
:
905 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
906 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
907 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
913 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
916 return NDR_ERR_SUCCESS
;
919 _PUBLIC_
void ndr_print_netr_LogonLevel(struct ndr_print
*ndr
, const char *name
, const union netr_LogonLevel
*r
)
922 level
= ndr_print_get_switch_value(ndr
, r
);
923 ndr_print_union(ndr
, name
, level
, "netr_LogonLevel");
925 case NetlogonInteractiveInformation
:
926 ndr_print_ptr(ndr
, "password", r
->password
);
929 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
934 case NetlogonNetworkInformation
:
935 ndr_print_ptr(ndr
, "network", r
->network
);
938 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
943 case NetlogonServiceInformation
:
944 ndr_print_ptr(ndr
, "password", r
->password
);
947 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
952 case NetlogonGenericInformation
:
953 ndr_print_ptr(ndr
, "generic", r
->generic
);
956 ndr_print_netr_GenericInfo(ndr
, "generic", r
->generic
);
961 case NetlogonInteractiveTransitiveInformation
:
962 ndr_print_ptr(ndr
, "password", r
->password
);
965 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
970 case NetlogonNetworkTransitiveInformation
:
971 ndr_print_ptr(ndr
, "network", r
->network
);
974 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
979 case NetlogonServiceTransitiveInformation
:
980 ndr_print_ptr(ndr
, "password", r
->password
);
983 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
989 ndr_print_bad_level(ndr
, name
, level
);
993 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UserSessionKey
*r
)
996 uint32_t _flags_save_STRUCT
= ndr
->flags
;
997 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
998 if (ndr_flags
& NDR_SCALARS
) {
999 NDR_CHECK(ndr_push_align(ndr
, 1));
1000 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
1002 if (ndr_flags
& NDR_BUFFERS
) {
1004 ndr
->flags
= _flags_save_STRUCT
;
1006 return NDR_ERR_SUCCESS
;
1009 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UserSessionKey
*r
)
1012 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1013 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1014 if (ndr_flags
& NDR_SCALARS
) {
1015 NDR_CHECK(ndr_pull_align(ndr
, 1));
1016 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
1018 if (ndr_flags
& NDR_BUFFERS
) {
1020 ndr
->flags
= _flags_save_STRUCT
;
1022 return NDR_ERR_SUCCESS
;
1025 _PUBLIC_
void ndr_print_netr_UserSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_UserSessionKey
*r
)
1027 ndr_print_struct(ndr
, name
, "netr_UserSessionKey");
1029 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1030 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1032 ndr_print_array_uint8(ndr
, "key", r
->key
, 16);
1034 ndr
->flags
= _flags_save_STRUCT
;
1038 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LMSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LMSessionKey
*r
)
1041 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1042 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1043 if (ndr_flags
& NDR_SCALARS
) {
1044 NDR_CHECK(ndr_push_align(ndr
, 1));
1045 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
1047 if (ndr_flags
& NDR_BUFFERS
) {
1049 ndr
->flags
= _flags_save_STRUCT
;
1051 return NDR_ERR_SUCCESS
;
1054 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LMSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LMSessionKey
*r
)
1057 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1058 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1059 if (ndr_flags
& NDR_SCALARS
) {
1060 NDR_CHECK(ndr_pull_align(ndr
, 1));
1061 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
1063 if (ndr_flags
& NDR_BUFFERS
) {
1065 ndr
->flags
= _flags_save_STRUCT
;
1067 return NDR_ERR_SUCCESS
;
1070 _PUBLIC_
void ndr_print_netr_LMSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_LMSessionKey
*r
)
1072 ndr_print_struct(ndr
, name
, "netr_LMSessionKey");
1074 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1075 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1077 ndr_print_array_uint8(ndr
, "key", r
->key
, 8);
1079 ndr
->flags
= _flags_save_STRUCT
;
1083 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1086 return NDR_ERR_SUCCESS
;
1089 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1094 return NDR_ERR_SUCCESS
;
1097 _PUBLIC_
void ndr_print_netr_UserFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1099 ndr_print_uint32(ndr
, name
, r
);
1101 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST
, r
);
1102 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION
, r
);
1103 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT
, r
);
1104 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD
, r
);
1105 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS
, r
);
1106 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY
, r
);
1107 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT
, r
);
1108 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED
, r
);
1109 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS
, r
);
1110 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED
, r
);
1111 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON
, r
);
1115 static enum ndr_err_code
ndr_push_netr_SamBaseInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamBaseInfo
*r
)
1117 uint32_t cntr_unknown_0
;
1118 if (ndr_flags
& NDR_SCALARS
) {
1119 NDR_CHECK(ndr_push_align(ndr
, 4));
1120 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
1121 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
1122 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
1123 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
1124 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
1125 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
1126 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1127 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1128 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1129 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1130 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1131 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1132 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
1133 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
1134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
1135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
1136 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1137 NDR_CHECK(ndr_push_netr_UserFlags(ndr
, NDR_SCALARS
, r
->user_flags
));
1138 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1139 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1140 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
1142 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1143 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
1144 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
1148 if (ndr_flags
& NDR_BUFFERS
) {
1149 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1150 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1151 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1152 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1153 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1154 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1155 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1156 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1157 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1158 if (r
->domain_sid
) {
1159 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1162 return NDR_ERR_SUCCESS
;
1165 static enum ndr_err_code
ndr_pull_netr_SamBaseInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamBaseInfo
*r
)
1167 uint32_t _ptr_domain_sid
;
1168 TALLOC_CTX
*_mem_save_domain_sid_0
;
1169 uint32_t cntr_unknown_0
;
1170 if (ndr_flags
& NDR_SCALARS
) {
1171 NDR_CHECK(ndr_pull_align(ndr
, 4));
1172 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
1173 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
1174 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
1175 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
1176 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
1177 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
1178 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1179 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1180 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1181 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1182 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1183 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1184 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
1185 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
1186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
1187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
1188 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1189 NDR_CHECK(ndr_pull_netr_UserFlags(ndr
, NDR_SCALARS
, &r
->user_flags
));
1190 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1191 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1192 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
1194 if (_ptr_domain_sid
) {
1195 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
1197 r
->domain_sid
= NULL
;
1199 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1200 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
1201 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
1205 if (ndr_flags
& NDR_BUFFERS
) {
1206 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1207 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1208 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1209 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1210 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1211 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1212 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1213 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1214 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1215 if (r
->domain_sid
) {
1216 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1217 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
1218 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
1222 return NDR_ERR_SUCCESS
;
1225 _PUBLIC_
void ndr_print_netr_SamBaseInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_SamBaseInfo
*r
)
1227 uint32_t cntr_unknown_0
;
1228 ndr_print_struct(ndr
, name
, "netr_SamBaseInfo");
1230 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
1231 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
1232 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
1233 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
1234 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
1235 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
1236 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1237 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1238 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
1239 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
1240 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
1241 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
1242 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
1243 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
1244 ndr_print_uint32(ndr
, "rid", r
->rid
);
1245 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1246 ndr_print_samr_RidWithAttributeArray(ndr
, "groups", &r
->groups
);
1247 ndr_print_netr_UserFlags(ndr
, "user_flags", r
->user_flags
);
1248 ndr_print_netr_UserSessionKey(ndr
, "key", &r
->key
);
1249 ndr_print_lsa_StringLarge(ndr
, "logon_server", &r
->logon_server
);
1250 ndr_print_lsa_StringLarge(ndr
, "domain", &r
->domain
);
1251 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
1253 if (r
->domain_sid
) {
1254 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
1257 ndr_print_netr_LMSessionKey(ndr
, "LMSessKey", &r
->LMSessKey
);
1258 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
1259 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)7);
1261 for (cntr_unknown_0
=0;cntr_unknown_0
<7;cntr_unknown_0
++) {
1263 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
1264 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1272 static enum ndr_err_code
ndr_push_netr_SamInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo2
*r
)
1274 if (ndr_flags
& NDR_SCALARS
) {
1275 NDR_CHECK(ndr_push_align(ndr
, 4));
1276 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1278 if (ndr_flags
& NDR_BUFFERS
) {
1279 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1281 return NDR_ERR_SUCCESS
;
1284 static enum ndr_err_code
ndr_pull_netr_SamInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo2
*r
)
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
));
1290 if (ndr_flags
& NDR_BUFFERS
) {
1291 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1293 return NDR_ERR_SUCCESS
;
1296 _PUBLIC_
void ndr_print_netr_SamInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo2
*r
)
1298 ndr_print_struct(ndr
, name
, "netr_SamInfo2");
1300 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1304 static enum ndr_err_code
ndr_push_netr_SidAttr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SidAttr
*r
)
1306 if (ndr_flags
& NDR_SCALARS
) {
1307 NDR_CHECK(ndr_push_align(ndr
, 4));
1308 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
1309 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1311 if (ndr_flags
& NDR_BUFFERS
) {
1313 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1316 return NDR_ERR_SUCCESS
;
1319 static enum ndr_err_code
ndr_pull_netr_SidAttr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SidAttr
*r
)
1322 TALLOC_CTX
*_mem_save_sid_0
;
1323 if (ndr_flags
& NDR_SCALARS
) {
1324 NDR_CHECK(ndr_pull_align(ndr
, 4));
1325 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
1327 NDR_PULL_ALLOC(ndr
, r
->sid
);
1331 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1333 if (ndr_flags
& NDR_BUFFERS
) {
1335 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1336 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
1337 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
1341 return NDR_ERR_SUCCESS
;
1344 _PUBLIC_
void ndr_print_netr_SidAttr(struct ndr_print
*ndr
, const char *name
, const struct netr_SidAttr
*r
)
1346 ndr_print_struct(ndr
, name
, "netr_SidAttr");
1348 ndr_print_ptr(ndr
, "sid", r
->sid
);
1351 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
1354 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1358 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SamInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo3
*r
)
1360 uint32_t cntr_sids_1
;
1361 if (ndr_flags
& NDR_SCALARS
) {
1362 NDR_CHECK(ndr_push_align(ndr
, 4));
1363 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1367 if (ndr_flags
& NDR_BUFFERS
) {
1368 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1371 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1372 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1374 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1375 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1379 return NDR_ERR_SUCCESS
;
1382 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SamInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo3
*r
)
1385 uint32_t cntr_sids_1
;
1386 TALLOC_CTX
*_mem_save_sids_0
;
1387 TALLOC_CTX
*_mem_save_sids_1
;
1388 if (ndr_flags
& NDR_SCALARS
) {
1389 NDR_CHECK(ndr_pull_align(ndr
, 4));
1390 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1391 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1394 NDR_PULL_ALLOC(ndr
, r
->sids
);
1399 if (ndr_flags
& NDR_BUFFERS
) {
1400 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1402 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1403 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1404 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1405 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1406 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1407 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1408 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1409 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1411 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1412 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1418 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1421 return NDR_ERR_SUCCESS
;
1424 _PUBLIC_
void ndr_print_netr_SamInfo3(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo3
*r
)
1426 uint32_t cntr_sids_1
;
1427 ndr_print_struct(ndr
, name
, "netr_SamInfo3");
1429 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1430 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1431 ndr_print_ptr(ndr
, "sids", r
->sids
);
1434 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1436 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1438 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1439 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1449 static enum ndr_err_code
ndr_push_netr_SamInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo6
*r
)
1451 uint32_t cntr_sids_1
;
1452 uint32_t cntr_unknown4_0
;
1453 if (ndr_flags
& NDR_SCALARS
) {
1454 NDR_CHECK(ndr_push_align(ndr
, 4));
1455 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1457 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1458 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1459 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1460 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
[cntr_unknown4_0
]));
1464 if (ndr_flags
& NDR_BUFFERS
) {
1465 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1468 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1469 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1471 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1472 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1475 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1476 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1478 return NDR_ERR_SUCCESS
;
1481 static enum ndr_err_code
ndr_pull_netr_SamInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo6
*r
)
1484 uint32_t cntr_sids_1
;
1485 TALLOC_CTX
*_mem_save_sids_0
;
1486 TALLOC_CTX
*_mem_save_sids_1
;
1487 uint32_t cntr_unknown4_0
;
1488 if (ndr_flags
& NDR_SCALARS
) {
1489 NDR_CHECK(ndr_pull_align(ndr
, 4));
1490 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1494 NDR_PULL_ALLOC(ndr
, r
->sids
);
1498 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1499 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1500 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1501 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
[cntr_unknown4_0
]));
1504 if (ndr_flags
& NDR_BUFFERS
) {
1505 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1507 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1508 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1509 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1510 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1511 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1512 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1513 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1514 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1516 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1517 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1522 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1523 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1525 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1528 return NDR_ERR_SUCCESS
;
1531 _PUBLIC_
void ndr_print_netr_SamInfo6(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo6
*r
)
1533 uint32_t cntr_sids_1
;
1534 uint32_t cntr_unknown4_0
;
1535 ndr_print_struct(ndr
, name
, "netr_SamInfo6");
1537 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1538 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1539 ndr_print_ptr(ndr
, "sids", r
->sids
);
1542 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1544 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1546 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1547 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1554 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
1555 ndr_print_lsa_String(ndr
, "principle", &r
->principle
);
1556 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown4", (int)20);
1558 for (cntr_unknown4_0
=0;cntr_unknown4_0
<20;cntr_unknown4_0
++) {
1560 if (asprintf(&idx_0
, "[%d]", cntr_unknown4_0
) != -1) {
1561 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
[cntr_unknown4_0
]);
1569 static enum ndr_err_code
ndr_push_netr_PacInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PacInfo
*r
)
1571 uint32_t cntr_expansionroom_0
;
1572 if (ndr_flags
& NDR_SCALARS
) {
1573 NDR_CHECK(ndr_push_align(ndr
, 4));
1574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1576 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1577 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1578 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1580 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->auth
));
1581 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1582 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1583 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->expansionroom
[cntr_expansionroom_0
]));
1585 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1586 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1587 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1588 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1590 if (ndr_flags
& NDR_BUFFERS
) {
1592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1593 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, r
->pac_size
));
1595 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1596 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1597 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1600 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, r
->auth_size
));
1602 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1603 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1604 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1605 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1607 return NDR_ERR_SUCCESS
;
1610 static enum ndr_err_code
ndr_pull_netr_PacInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PacInfo
*r
)
1613 TALLOC_CTX
*_mem_save_pac_0
;
1615 TALLOC_CTX
*_mem_save_auth_0
;
1616 uint32_t cntr_expansionroom_0
;
1617 if (ndr_flags
& NDR_SCALARS
) {
1618 NDR_CHECK(ndr_pull_align(ndr
, 4));
1619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pac_size
));
1620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1622 NDR_PULL_ALLOC(ndr
, r
->pac
);
1626 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1627 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1628 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1629 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_size
));
1630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_auth
));
1632 NDR_PULL_ALLOC(ndr
, r
->auth
);
1636 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1637 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->expansionroom
[cntr_expansionroom_0
]));
1640 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1641 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1642 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1643 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1645 if (ndr_flags
& NDR_BUFFERS
) {
1647 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1648 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1649 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pac
));
1650 NDR_PULL_ALLOC_N(ndr
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
));
1651 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
)));
1652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1654 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1655 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1656 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1658 _mem_save_auth_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1659 NDR_PULL_SET_MEM_CTX(ndr
, r
->auth
, 0);
1660 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->auth
));
1661 NDR_PULL_ALLOC_N(ndr
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
));
1662 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
)));
1663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_auth_0
, 0);
1665 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1666 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1667 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1668 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1670 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pac
, r
->pac_size
));
1673 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->auth
, r
->auth_size
));
1676 return NDR_ERR_SUCCESS
;
1679 _PUBLIC_
void ndr_print_netr_PacInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PacInfo
*r
)
1681 uint32_t cntr_expansionroom_0
;
1682 ndr_print_struct(ndr
, name
, "netr_PacInfo");
1684 ndr_print_uint32(ndr
, "pac_size", r
->pac_size
);
1685 ndr_print_ptr(ndr
, "pac", r
->pac
);
1688 ndr_print_array_uint8(ndr
, "pac", r
->pac
, r
->pac_size
);
1691 ndr_print_lsa_String(ndr
, "logon_domain", &r
->logon_domain
);
1692 ndr_print_lsa_String(ndr
, "logon_server", &r
->logon_server
);
1693 ndr_print_lsa_String(ndr
, "principal_name", &r
->principal_name
);
1694 ndr_print_uint32(ndr
, "auth_size", r
->auth_size
);
1695 ndr_print_ptr(ndr
, "auth", r
->auth
);
1698 ndr_print_array_uint8(ndr
, "auth", r
->auth
, r
->auth_size
);
1701 ndr_print_netr_UserSessionKey(ndr
, "user_session_key", &r
->user_session_key
);
1702 ndr
->print(ndr
, "%s: ARRAY(%d)", "expansionroom", (int)10);
1704 for (cntr_expansionroom_0
=0;cntr_expansionroom_0
<10;cntr_expansionroom_0
++) {
1706 if (asprintf(&idx_0
, "[%d]", cntr_expansionroom_0
) != -1) {
1707 ndr_print_uint32(ndr
, "expansionroom", r
->expansionroom
[cntr_expansionroom_0
]);
1712 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1713 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1714 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1715 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1719 static enum ndr_err_code
ndr_push_netr_GenericInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GenericInfo2
*r
)
1722 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1723 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1724 if (ndr_flags
& NDR_SCALARS
) {
1725 NDR_CHECK(ndr_push_align(ndr
, 4));
1726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
1727 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
1729 if (ndr_flags
& NDR_BUFFERS
) {
1731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
1732 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
1735 ndr
->flags
= _flags_save_STRUCT
;
1737 return NDR_ERR_SUCCESS
;
1740 static enum ndr_err_code
ndr_pull_netr_GenericInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GenericInfo2
*r
)
1743 TALLOC_CTX
*_mem_save_data_0
;
1745 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1746 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1747 if (ndr_flags
& NDR_SCALARS
) {
1748 NDR_CHECK(ndr_pull_align(ndr
, 4));
1749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
1750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
1752 NDR_PULL_ALLOC(ndr
, r
->data
);
1757 if (ndr_flags
& NDR_BUFFERS
) {
1759 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1760 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
1761 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
1762 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
1763 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
1764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
1767 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
1770 ndr
->flags
= _flags_save_STRUCT
;
1772 return NDR_ERR_SUCCESS
;
1775 _PUBLIC_
void ndr_print_netr_GenericInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_GenericInfo2
*r
)
1777 ndr_print_struct(ndr
, name
, "netr_GenericInfo2");
1779 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1780 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1782 ndr_print_uint32(ndr
, "length", r
->length
);
1783 ndr_print_ptr(ndr
, "data", r
->data
);
1786 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
1790 ndr
->flags
= _flags_save_STRUCT
;
1794 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Validation(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Validation
*r
)
1796 if (ndr_flags
& NDR_SCALARS
) {
1797 int level
= ndr_push_get_switch_value(ndr
, r
);
1798 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
1800 case NetlogonValidationSamInfo
: {
1801 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam2
));
1804 case NetlogonValidationSamInfo2
: {
1805 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam3
));
1809 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1812 case NetlogonValidationGenericInfo2
: {
1813 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
1816 case NetlogonValidationSamInfo4
: {
1817 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam6
));
1821 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1824 if (ndr_flags
& NDR_BUFFERS
) {
1825 int level
= ndr_push_get_switch_value(ndr
, r
);
1827 case NetlogonValidationSamInfo
:
1829 NDR_CHECK(ndr_push_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1833 case NetlogonValidationSamInfo2
:
1835 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1841 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1845 case NetlogonValidationGenericInfo2
:
1847 NDR_CHECK(ndr_push_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1851 case NetlogonValidationSamInfo4
:
1853 NDR_CHECK(ndr_push_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1858 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1861 return NDR_ERR_SUCCESS
;
1864 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Validation(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Validation
*r
)
1868 TALLOC_CTX
*_mem_save_sam2_0
;
1869 TALLOC_CTX
*_mem_save_sam3_0
;
1870 TALLOC_CTX
*_mem_save_pac_0
;
1871 TALLOC_CTX
*_mem_save_generic_0
;
1872 TALLOC_CTX
*_mem_save_sam6_0
;
1873 level
= ndr_pull_get_switch_value(ndr
, r
);
1874 if (ndr_flags
& NDR_SCALARS
) {
1875 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1876 if (_level
!= level
) {
1877 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
1880 case NetlogonValidationSamInfo
: {
1882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam2
));
1884 NDR_PULL_ALLOC(ndr
, r
->sam2
);
1890 case NetlogonValidationSamInfo2
: {
1892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam3
));
1894 NDR_PULL_ALLOC(ndr
, r
->sam3
);
1902 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1904 NDR_PULL_ALLOC(ndr
, r
->pac
);
1910 case NetlogonValidationGenericInfo2
: {
1911 uint32_t _ptr_generic
;
1912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
1914 NDR_PULL_ALLOC(ndr
, r
->generic
);
1920 case NetlogonValidationSamInfo4
: {
1922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam6
));
1924 NDR_PULL_ALLOC(ndr
, r
->sam6
);
1931 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1934 if (ndr_flags
& NDR_BUFFERS
) {
1936 case NetlogonValidationSamInfo
:
1938 _mem_save_sam2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1939 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam2
, 0);
1940 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1941 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam2_0
, 0);
1945 case NetlogonValidationSamInfo2
:
1947 _mem_save_sam3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1948 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam3
, 0);
1949 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam3_0
, 0);
1956 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1957 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1958 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1963 case NetlogonValidationGenericInfo2
:
1965 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1966 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
1967 NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
1972 case NetlogonValidationSamInfo4
:
1974 _mem_save_sam6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1975 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam6
, 0);
1976 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam6_0
, 0);
1982 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1985 return NDR_ERR_SUCCESS
;
1988 _PUBLIC_
void ndr_print_netr_Validation(struct ndr_print
*ndr
, const char *name
, const union netr_Validation
*r
)
1991 level
= ndr_print_get_switch_value(ndr
, r
);
1992 ndr_print_union(ndr
, name
, level
, "netr_Validation");
1994 case NetlogonValidationSamInfo
:
1995 ndr_print_ptr(ndr
, "sam2", r
->sam2
);
1998 ndr_print_netr_SamInfo2(ndr
, "sam2", r
->sam2
);
2003 case NetlogonValidationSamInfo2
:
2004 ndr_print_ptr(ndr
, "sam3", r
->sam3
);
2007 ndr_print_netr_SamInfo3(ndr
, "sam3", r
->sam3
);
2013 ndr_print_ptr(ndr
, "pac", r
->pac
);
2016 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
2021 case NetlogonValidationGenericInfo2
:
2022 ndr_print_ptr(ndr
, "generic", r
->generic
);
2025 ndr_print_netr_GenericInfo2(ndr
, "generic", r
->generic
);
2030 case NetlogonValidationSamInfo4
:
2031 ndr_print_ptr(ndr
, "sam6", r
->sam6
);
2034 ndr_print_netr_SamInfo6(ndr
, "sam6", r
->sam6
);
2040 ndr_print_bad_level(ndr
, name
, level
);
2044 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Credential(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Credential
*r
)
2047 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2048 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2049 if (ndr_flags
& NDR_SCALARS
) {
2050 NDR_CHECK(ndr_push_align(ndr
, 1));
2051 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
2053 if (ndr_flags
& NDR_BUFFERS
) {
2055 ndr
->flags
= _flags_save_STRUCT
;
2057 return NDR_ERR_SUCCESS
;
2060 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Credential(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Credential
*r
)
2063 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2064 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2065 if (ndr_flags
& NDR_SCALARS
) {
2066 NDR_CHECK(ndr_pull_align(ndr
, 1));
2067 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
2069 if (ndr_flags
& NDR_BUFFERS
) {
2071 ndr
->flags
= _flags_save_STRUCT
;
2073 return NDR_ERR_SUCCESS
;
2076 _PUBLIC_
void ndr_print_netr_Credential(struct ndr_print
*ndr
, const char *name
, const struct netr_Credential
*r
)
2078 ndr_print_struct(ndr
, name
, "netr_Credential");
2080 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2081 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2083 ndr_print_array_uint8(ndr
, "data", r
->data
, 8);
2085 ndr
->flags
= _flags_save_STRUCT
;
2089 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Authenticator(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Authenticator
*r
)
2091 if (ndr_flags
& NDR_SCALARS
) {
2092 NDR_CHECK(ndr_push_align(ndr
, 4));
2093 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2094 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
2096 if (ndr_flags
& NDR_BUFFERS
) {
2098 return NDR_ERR_SUCCESS
;
2101 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Authenticator(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Authenticator
*r
)
2103 if (ndr_flags
& NDR_SCALARS
) {
2104 NDR_CHECK(ndr_pull_align(ndr
, 4));
2105 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2106 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
2108 if (ndr_flags
& NDR_BUFFERS
) {
2110 return NDR_ERR_SUCCESS
;
2113 _PUBLIC_
void ndr_print_netr_Authenticator(struct ndr_print
*ndr
, const char *name
, const struct netr_Authenticator
*r
)
2115 ndr_print_struct(ndr
, name
, "netr_Authenticator");
2117 ndr_print_netr_Credential(ndr
, "cred", &r
->cred
);
2118 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
2122 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
)
2124 if (ndr_flags
& NDR_SCALARS
) {
2125 NDR_CHECK(ndr_push_align(ndr
, 4));
2126 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
2127 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2128 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2129 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2130 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2136 if (ndr_flags
& NDR_BUFFERS
) {
2137 if (r
->account_name
) {
2138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
2140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2141 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
2143 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2144 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2145 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2146 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2148 return NDR_ERR_SUCCESS
;
2151 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_USER
*r
)
2153 uint32_t _ptr_account_name
;
2154 TALLOC_CTX
*_mem_save_account_name_0
;
2155 if (ndr_flags
& NDR_SCALARS
) {
2156 NDR_CHECK(ndr_pull_align(ndr
, 4));
2157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
2158 if (_ptr_account_name
) {
2159 NDR_PULL_ALLOC(ndr
, r
->account_name
);
2161 r
->account_name
= NULL
;
2163 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2164 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2165 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2166 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2167 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2168 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2169 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2172 if (ndr_flags
& NDR_BUFFERS
) {
2173 if (r
->account_name
) {
2174 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2175 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
2176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
2177 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
2178 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
2179 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
));
2181 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
2182 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
2183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
2185 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2186 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2187 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2188 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2190 return NDR_ERR_SUCCESS
;
2193 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_USER
*r
)
2195 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_USER");
2197 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
2199 if (r
->account_name
) {
2200 ndr_print_string(ndr
, "account_name", r
->account_name
);
2203 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2204 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2205 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2206 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2207 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2208 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2209 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2210 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2214 static enum ndr_err_code
ndr_push_netr_USER_KEY16(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY16
*r
)
2216 if (ndr_flags
& NDR_SCALARS
) {
2217 NDR_CHECK(ndr_push_align(ndr
, 4));
2218 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2219 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
2221 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2223 if (ndr_flags
& NDR_BUFFERS
) {
2225 return NDR_ERR_SUCCESS
;
2228 static enum ndr_err_code
ndr_pull_netr_USER_KEY16(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY16
*r
)
2230 if (ndr_flags
& NDR_SCALARS
) {
2231 NDR_CHECK(ndr_pull_align(ndr
, 4));
2232 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
2233 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
2234 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
2235 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2237 if (ndr_flags
& NDR_BUFFERS
) {
2239 return NDR_ERR_SUCCESS
;
2242 _PUBLIC_
void ndr_print_netr_USER_KEY16(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY16
*r
)
2244 ndr_print_struct(ndr
, name
, "netr_USER_KEY16");
2246 ndr_print_uint16(ndr
, "length", r
->length
);
2247 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
2248 ndr_print_uint32(ndr
, "flags", r
->flags
);
2249 ndr_print_samr_Password(ndr
, "pwd", &r
->pwd
);
2253 static enum ndr_err_code
ndr_push_netr_PasswordHistory(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordHistory
*r
)
2255 if (ndr_flags
& NDR_SCALARS
) {
2256 NDR_CHECK(ndr_push_align(ndr
, 4));
2257 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2258 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nt_flags
));
2260 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2261 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lm_flags
));
2263 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2264 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2266 if (ndr_flags
& NDR_BUFFERS
) {
2268 return NDR_ERR_SUCCESS
;
2271 static enum ndr_err_code
ndr_pull_netr_PasswordHistory(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordHistory
*r
)
2273 if (ndr_flags
& NDR_SCALARS
) {
2274 NDR_CHECK(ndr_pull_align(ndr
, 4));
2275 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_length
));
2276 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_size
));
2277 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nt_flags
));
2278 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_length
));
2279 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_size
));
2280 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lm_flags
));
2281 NDR_PULL_ALLOC_N(ndr
, r
->nt_history
, r
->nt_length
);
2282 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2283 NDR_PULL_ALLOC_N(ndr
, r
->lm_history
, r
->lm_length
);
2284 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2286 if (ndr_flags
& NDR_BUFFERS
) {
2288 return NDR_ERR_SUCCESS
;
2291 _PUBLIC_
void ndr_print_netr_PasswordHistory(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordHistory
*r
)
2293 ndr_print_struct(ndr
, name
, "netr_PasswordHistory");
2295 ndr_print_uint16(ndr
, "nt_length", r
->nt_length
);
2296 ndr_print_uint16(ndr
, "nt_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->nt_length
:r
->nt_size
);
2297 ndr_print_uint32(ndr
, "nt_flags", r
->nt_flags
);
2298 ndr_print_uint16(ndr
, "lm_length", r
->lm_length
);
2299 ndr_print_uint16(ndr
, "lm_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->lm_length
:r
->lm_size
);
2300 ndr_print_uint32(ndr
, "lm_flags", r
->lm_flags
);
2301 ndr_print_array_uint8(ndr
, "nt_history", r
->nt_history
, r
->nt_length
);
2302 ndr_print_array_uint8(ndr
, "lm_history", r
->lm_history
, r
->lm_length
);
2306 static enum ndr_err_code
ndr_push_netr_USER_KEYS2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS2
*r
)
2308 if (ndr_flags
& NDR_SCALARS
) {
2309 NDR_CHECK(ndr_push_align(ndr
, 4));
2310 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2311 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2312 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2314 if (ndr_flags
& NDR_BUFFERS
) {
2316 return NDR_ERR_SUCCESS
;
2319 static enum ndr_err_code
ndr_pull_netr_USER_KEYS2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS2
*r
)
2321 if (ndr_flags
& NDR_SCALARS
) {
2322 NDR_CHECK(ndr_pull_align(ndr
, 4));
2323 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2324 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2325 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2327 if (ndr_flags
& NDR_BUFFERS
) {
2329 return NDR_ERR_SUCCESS
;
2332 _PUBLIC_
void ndr_print_netr_USER_KEYS2(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS2
*r
)
2334 ndr_print_struct(ndr
, name
, "netr_USER_KEYS2");
2336 ndr_print_netr_USER_KEY16(ndr
, "lmpassword", &r
->lmpassword
);
2337 ndr_print_netr_USER_KEY16(ndr
, "ntpassword", &r
->ntpassword
);
2338 ndr_print_netr_PasswordHistory(ndr
, "history", &r
->history
);
2342 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
)
2344 if (ndr_flags
& NDR_SCALARS
) {
2345 NDR_CHECK(ndr_push_align(ndr
, 4));
2346 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2348 if (ndr_flags
& NDR_BUFFERS
) {
2350 return NDR_ERR_SUCCESS
;
2353 static enum ndr_err_code
ndr_pull_netr_USER_KEY_UNION(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY_UNION
*r
)
2355 if (ndr_flags
& NDR_SCALARS
) {
2356 NDR_CHECK(ndr_pull_align(ndr
, 4));
2357 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2359 if (ndr_flags
& NDR_BUFFERS
) {
2361 return NDR_ERR_SUCCESS
;
2364 _PUBLIC_
void ndr_print_netr_USER_KEY_UNION(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY_UNION
*r
)
2366 ndr_print_struct(ndr
, name
, "netr_USER_KEY_UNION");
2368 ndr_print_netr_USER_KEYS2(ndr
, "keys2", &r
->keys2
);
2372 _PUBLIC_
enum ndr_err_code
ndr_push_netr_USER_KEYS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS
*r
)
2374 if (ndr_flags
& NDR_SCALARS
) {
2375 NDR_CHECK(ndr_push_align(ndr
, 4));
2376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2377 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2379 if (ndr_flags
& NDR_BUFFERS
) {
2381 return NDR_ERR_SUCCESS
;
2384 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_USER_KEYS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS
*r
)
2386 if (ndr_flags
& NDR_SCALARS
) {
2387 NDR_CHECK(ndr_pull_align(ndr
, 4));
2388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2389 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2391 if (ndr_flags
& NDR_BUFFERS
) {
2393 return NDR_ERR_SUCCESS
;
2396 _PUBLIC_
void ndr_print_netr_USER_KEYS(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS
*r
)
2398 ndr_print_struct(ndr
, name
, "netr_USER_KEYS");
2400 ndr_print_uint32(ndr
, "version", r
->version
);
2401 ndr_print_netr_USER_KEY_UNION(ndr
, "keys", &r
->keys
);
2405 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
)
2407 if (ndr_flags
& NDR_SCALARS
) {
2408 NDR_CHECK(ndr_push_align(ndr
, 4));
2409 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->SensitiveDataFlag
));
2410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2412 uint32_t _flags_save_uint8
= ndr
->flags
;
2413 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2414 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->SensitiveData
));
2415 ndr
->flags
= _flags_save_uint8
;
2418 if (ndr_flags
& NDR_BUFFERS
) {
2420 uint32_t _flags_save_uint8
= ndr
->flags
;
2421 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2422 if (r
->SensitiveData
) {
2423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2424 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, r
->DataLength
));
2426 ndr
->flags
= _flags_save_uint8
;
2429 return NDR_ERR_SUCCESS
;
2432 static enum ndr_err_code
ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_PRIVATE_INFO
*r
)
2434 uint32_t _ptr_SensitiveData
;
2435 TALLOC_CTX
*_mem_save_SensitiveData_0
;
2436 if (ndr_flags
& NDR_SCALARS
) {
2437 NDR_CHECK(ndr_pull_align(ndr
, 4));
2438 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->SensitiveDataFlag
));
2439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->DataLength
));
2441 uint32_t _flags_save_uint8
= ndr
->flags
;
2442 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2443 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_SensitiveData
));
2444 if (_ptr_SensitiveData
) {
2445 NDR_PULL_ALLOC(ndr
, r
->SensitiveData
);
2447 r
->SensitiveData
= NULL
;
2449 ndr
->flags
= _flags_save_uint8
;
2452 if (ndr_flags
& NDR_BUFFERS
) {
2454 uint32_t _flags_save_uint8
= ndr
->flags
;
2455 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2456 if (r
->SensitiveData
) {
2457 _mem_save_SensitiveData_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2458 NDR_PULL_SET_MEM_CTX(ndr
, r
->SensitiveData
, 0);
2459 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->SensitiveData
));
2460 NDR_PULL_ALLOC_N(ndr
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
));
2461 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
)));
2462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_SensitiveData_0
, 0);
2464 ndr
->flags
= _flags_save_uint8
;
2466 if (r
->SensitiveData
) {
2467 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->SensitiveData
, r
->DataLength
));
2470 return NDR_ERR_SUCCESS
;
2473 _PUBLIC_
void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_PRIVATE_INFO
*r
)
2475 ndr_print_struct(ndr
, name
, "netr_USER_PRIVATE_INFO");
2477 ndr_print_uint8(ndr
, "SensitiveDataFlag", r
->SensitiveDataFlag
);
2478 ndr_print_uint32(ndr
, "DataLength", r
->DataLength
);
2479 ndr_print_ptr(ndr
, "SensitiveData", r
->SensitiveData
);
2481 if (r
->SensitiveData
) {
2482 ndr_print_array_uint8(ndr
, "SensitiveData", r
->SensitiveData
, r
->DataLength
);
2488 static enum ndr_err_code
ndr_push_netr_DELTA_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_USER
*r
)
2490 if (ndr_flags
& NDR_SCALARS
) {
2491 NDR_CHECK(ndr_push_align(ndr
, 4));
2492 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2493 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2496 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2497 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2498 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2499 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2500 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2501 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2502 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2503 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2504 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2505 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2506 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2507 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2508 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2509 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2510 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2511 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_present
));
2512 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_present
));
2513 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2514 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2515 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2516 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2517 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2518 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2520 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2521 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2522 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2523 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2524 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2530 if (ndr_flags
& NDR_BUFFERS
) {
2531 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2532 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2533 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2534 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2535 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2536 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2537 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2538 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2539 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2540 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2541 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2542 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2543 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2544 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2545 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2546 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2548 return NDR_ERR_SUCCESS
;
2551 static enum ndr_err_code
ndr_pull_netr_DELTA_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_USER
*r
)
2553 if (ndr_flags
& NDR_SCALARS
) {
2554 NDR_CHECK(ndr_pull_align(ndr
, 4));
2555 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2556 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2558 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2559 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2560 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2561 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2562 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2563 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2564 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2565 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2566 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2567 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2568 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2569 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2570 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2571 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2572 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2573 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2574 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_present
));
2575 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_present
));
2576 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2577 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2578 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2579 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2580 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2581 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2582 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2583 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2584 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2585 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2586 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2587 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2588 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2589 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2590 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2593 if (ndr_flags
& NDR_BUFFERS
) {
2594 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2595 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2596 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2597 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2598 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2599 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2600 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2601 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2602 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2603 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2604 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2605 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2606 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2607 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2608 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2609 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2611 return NDR_ERR_SUCCESS
;
2614 _PUBLIC_
void ndr_print_netr_DELTA_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_USER
*r
)
2616 ndr_print_struct(ndr
, name
, "netr_DELTA_USER");
2618 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2619 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2620 ndr_print_uint32(ndr
, "rid", r
->rid
);
2621 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2622 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2623 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2624 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2625 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2626 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2627 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2628 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2629 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2630 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2631 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2632 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2633 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2634 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2635 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
2636 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
2637 ndr_print_uint8(ndr
, "nt_password_present", r
->nt_password_present
);
2638 ndr_print_uint8(ndr
, "lm_password_present", r
->lm_password_present
);
2639 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2640 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2641 ndr_print_lsa_BinaryString(ndr
, "parameters", &r
->parameters
);
2642 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2643 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2644 ndr_print_netr_USER_PRIVATE_INFO(ndr
, "user_private_info", &r
->user_private_info
);
2645 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2646 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2647 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2648 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2649 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2650 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2651 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2652 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2653 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2654 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2658 static enum ndr_err_code
ndr_push_netr_DELTA_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DOMAIN
*r
)
2660 if (ndr_flags
& NDR_SCALARS
) {
2661 NDR_CHECK(ndr_push_align(ndr
, 4));
2662 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2663 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2664 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
2665 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
2666 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
2667 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
2668 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
2669 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2670 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
2671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2672 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2673 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2674 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2675 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2676 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_to_chgpass
));
2678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2682 if (ndr_flags
& NDR_BUFFERS
) {
2683 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2684 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2685 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2686 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2687 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2688 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2689 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2691 return NDR_ERR_SUCCESS
;
2694 static enum ndr_err_code
ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DOMAIN
*r
)
2696 if (ndr_flags
& NDR_SCALARS
) {
2697 NDR_CHECK(ndr_pull_align(ndr
, 4));
2698 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2699 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2700 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
2701 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
2702 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
2703 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
2704 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
2705 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
2706 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
2707 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2708 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2709 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2710 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2711 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2712 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_to_chgpass
));
2714 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2716 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2718 if (ndr_flags
& NDR_BUFFERS
) {
2719 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2720 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2721 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2722 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2723 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2724 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2725 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2727 return NDR_ERR_SUCCESS
;
2730 _PUBLIC_
void ndr_print_netr_DELTA_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DOMAIN
*r
)
2732 ndr_print_struct(ndr
, name
, "netr_DELTA_DOMAIN");
2734 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
2735 ndr_print_lsa_String(ndr
, "oem_information", &r
->oem_information
);
2736 ndr_print_dlong(ndr
, "force_logoff_time", r
->force_logoff_time
);
2737 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
2738 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
2739 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
2740 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
2741 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
2742 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
2743 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2744 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2745 ndr_print_lsa_BinaryString(ndr
, "account_lockout", &r
->account_lockout
);
2746 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2747 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2748 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2749 ndr_print_uint32(ndr
, "logon_to_chgpass", r
->logon_to_chgpass
);
2750 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2751 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2752 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2756 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP
*r
)
2758 if (ndr_flags
& NDR_SCALARS
) {
2759 NDR_CHECK(ndr_push_align(ndr
, 4));
2760 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
2763 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2765 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2766 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2767 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2768 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2769 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2775 if (ndr_flags
& NDR_BUFFERS
) {
2776 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2777 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2778 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2779 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2780 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2781 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2782 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2784 return NDR_ERR_SUCCESS
;
2787 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP
*r
)
2789 if (ndr_flags
& NDR_SCALARS
) {
2790 NDR_CHECK(ndr_pull_align(ndr
, 4));
2791 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2793 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
2794 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2795 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2796 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2797 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2798 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2799 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2800 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2801 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2802 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2803 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2804 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2806 if (ndr_flags
& NDR_BUFFERS
) {
2807 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2808 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2809 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2810 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2811 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2812 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2813 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2815 return NDR_ERR_SUCCESS
;
2818 _PUBLIC_
void ndr_print_netr_DELTA_GROUP(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP
*r
)
2820 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP");
2822 ndr_print_lsa_String(ndr
, "group_name", &r
->group_name
);
2823 ndr_print_uint32(ndr
, "rid", r
->rid
);
2824 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
2825 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2826 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2827 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2828 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2829 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2830 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2831 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2832 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2833 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2834 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2835 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2839 static enum ndr_err_code
ndr_push_netr_DELTA_RENAME(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_RENAME
*r
)
2841 if (ndr_flags
& NDR_SCALARS
) {
2842 NDR_CHECK(ndr_push_align(ndr
, 4));
2843 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2844 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2845 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2846 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2847 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2848 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2854 if (ndr_flags
& NDR_BUFFERS
) {
2855 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2856 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2857 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2858 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2859 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2860 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2862 return NDR_ERR_SUCCESS
;
2865 static enum ndr_err_code
ndr_pull_netr_DELTA_RENAME(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_RENAME
*r
)
2867 if (ndr_flags
& NDR_SCALARS
) {
2868 NDR_CHECK(ndr_pull_align(ndr
, 4));
2869 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2870 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2871 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2872 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2873 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2874 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2877 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2878 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2880 if (ndr_flags
& NDR_BUFFERS
) {
2881 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2882 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2883 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2884 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2885 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2886 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2888 return NDR_ERR_SUCCESS
;
2891 _PUBLIC_
void ndr_print_netr_DELTA_RENAME(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_RENAME
*r
)
2893 ndr_print_struct(ndr
, name
, "netr_DELTA_RENAME");
2895 ndr_print_lsa_String(ndr
, "OldName", &r
->OldName
);
2896 ndr_print_lsa_String(ndr
, "NewName", &r
->NewName
);
2897 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2898 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2899 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2900 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2901 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2902 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2903 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2904 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2908 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
)
2910 uint32_t cntr_rids_1
;
2911 uint32_t cntr_attribs_1
;
2912 if (ndr_flags
& NDR_SCALARS
) {
2913 NDR_CHECK(ndr_push_align(ndr
, 4));
2914 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
2915 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribs
));
2916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2918 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2922 if (ndr_flags
& NDR_BUFFERS
) {
2924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2925 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
2930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2931 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribs
[cntr_attribs_1
]));
2936 return NDR_ERR_SUCCESS
;
2939 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP_MEMBER
*r
)
2942 uint32_t cntr_rids_1
;
2943 TALLOC_CTX
*_mem_save_rids_0
;
2944 TALLOC_CTX
*_mem_save_rids_1
;
2945 uint32_t _ptr_attribs
;
2946 uint32_t cntr_attribs_1
;
2947 TALLOC_CTX
*_mem_save_attribs_0
;
2948 TALLOC_CTX
*_mem_save_attribs_1
;
2949 if (ndr_flags
& NDR_SCALARS
) {
2950 NDR_CHECK(ndr_pull_align(ndr
, 4));
2951 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
2953 NDR_PULL_ALLOC(ndr
, r
->rids
);
2957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribs
));
2959 NDR_PULL_ALLOC(ndr
, r
->attribs
);
2963 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_rids
));
2964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2965 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2966 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2967 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2969 if (ndr_flags
& NDR_BUFFERS
) {
2971 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2972 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2973 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
2974 NDR_PULL_ALLOC_N(ndr
, r
->rids
, ndr_get_array_size(ndr
, &r
->rids
));
2975 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2976 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2977 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2978 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
2980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
2981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
2984 _mem_save_attribs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2985 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2986 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribs
));
2987 NDR_PULL_ALLOC_N(ndr
, r
->attribs
, ndr_get_array_size(ndr
, &r
->attribs
));
2988 _mem_save_attribs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2989 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2990 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribs
[cntr_attribs_1
]));
2993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_1
, 0);
2994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_0
, 0);
2997 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->num_rids
));
3000 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attribs
, r
->num_rids
));
3003 return NDR_ERR_SUCCESS
;
3006 _PUBLIC_
void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP_MEMBER
*r
)
3008 uint32_t cntr_rids_1
;
3009 uint32_t cntr_attribs_1
;
3010 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP_MEMBER");
3012 ndr_print_ptr(ndr
, "rids", r
->rids
);
3015 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->num_rids
);
3017 for (cntr_rids_1
=0;cntr_rids_1
<r
->num_rids
;cntr_rids_1
++) {
3019 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
3020 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
3027 ndr_print_ptr(ndr
, "attribs", r
->attribs
);
3030 ndr
->print(ndr
, "%s: ARRAY(%d)", "attribs", (int)r
->num_rids
);
3032 for (cntr_attribs_1
=0;cntr_attribs_1
<r
->num_rids
;cntr_attribs_1
++) {
3034 if (asprintf(&idx_1
, "[%d]", cntr_attribs_1
) != -1) {
3035 ndr_print_uint32(ndr
, "attribs", r
->attribs
[cntr_attribs_1
]);
3042 ndr_print_uint32(ndr
, "num_rids", r
->num_rids
);
3043 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3044 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3045 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3046 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3050 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS
*r
)
3052 if (ndr_flags
& NDR_SCALARS
) {
3053 NDR_CHECK(ndr_push_align(ndr
, 4));
3054 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
3056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3057 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3058 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3059 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3060 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3061 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3067 if (ndr_flags
& NDR_BUFFERS
) {
3068 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3069 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3070 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3071 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3072 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3073 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3075 return NDR_ERR_SUCCESS
;
3078 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS
*r
)
3080 if (ndr_flags
& NDR_SCALARS
) {
3081 NDR_CHECK(ndr_pull_align(ndr
, 4));
3082 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3083 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
3084 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3085 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3086 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3087 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3088 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3089 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3090 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3091 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3093 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3095 if (ndr_flags
& NDR_BUFFERS
) {
3096 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3097 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3098 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3099 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3100 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3101 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3103 return NDR_ERR_SUCCESS
;
3106 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS
*r
)
3108 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS");
3110 ndr_print_lsa_String(ndr
, "alias_name", &r
->alias_name
);
3111 ndr_print_uint32(ndr
, "rid", r
->rid
);
3112 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3113 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3114 ndr_print_lsa_String(ndr
, "description", &r
->description
);
3115 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3116 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3117 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3118 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3119 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3120 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3121 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3125 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
)
3127 if (ndr_flags
& NDR_SCALARS
) {
3128 NDR_CHECK(ndr_push_align(ndr
, 4));
3129 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
3131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
3132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
3133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
3135 if (ndr_flags
& NDR_BUFFERS
) {
3136 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3138 return NDR_ERR_SUCCESS
;
3141 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS_MEMBER
*r
)
3143 if (ndr_flags
& NDR_SCALARS
) {
3144 NDR_CHECK(ndr_pull_align(ndr
, 4));
3145 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3146 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
3147 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
3148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
3149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
3151 if (ndr_flags
& NDR_BUFFERS
) {
3152 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3154 return NDR_ERR_SUCCESS
;
3157 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
3159 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS_MEMBER");
3161 ndr_print_lsa_SidArray(ndr
, "sids", &r
->sids
);
3162 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3163 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3164 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3165 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3169 static enum ndr_err_code
ndr_push_netr_QUOTA_LIMITS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_QUOTA_LIMITS
*r
)
3171 if (ndr_flags
& NDR_SCALARS
) {
3172 NDR_CHECK(ndr_push_align(ndr
, 4));
3173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagedpoollimit
));
3174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nonpagedpoollimit
));
3175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minimumworkingsetsize
));
3176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maximumworkingsetsize
));
3177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagefilelimit
));
3178 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timelimit
));
3180 if (ndr_flags
& NDR_BUFFERS
) {
3182 return NDR_ERR_SUCCESS
;
3185 static enum ndr_err_code
ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_QUOTA_LIMITS
*r
)
3187 if (ndr_flags
& NDR_SCALARS
) {
3188 NDR_CHECK(ndr_pull_align(ndr
, 4));
3189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagedpoollimit
));
3190 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nonpagedpoollimit
));
3191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minimumworkingsetsize
));
3192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maximumworkingsetsize
));
3193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagefilelimit
));
3194 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timelimit
));
3196 if (ndr_flags
& NDR_BUFFERS
) {
3198 return NDR_ERR_SUCCESS
;
3201 _PUBLIC_
void ndr_print_netr_QUOTA_LIMITS(struct ndr_print
*ndr
, const char *name
, const struct netr_QUOTA_LIMITS
*r
)
3203 ndr_print_struct(ndr
, name
, "netr_QUOTA_LIMITS");
3205 ndr_print_uint32(ndr
, "pagedpoollimit", r
->pagedpoollimit
);
3206 ndr_print_uint32(ndr
, "nonpagedpoollimit", r
->nonpagedpoollimit
);
3207 ndr_print_uint32(ndr
, "minimumworkingsetsize", r
->minimumworkingsetsize
);
3208 ndr_print_uint32(ndr
, "maximumworkingsetsize", r
->maximumworkingsetsize
);
3209 ndr_print_uint32(ndr
, "pagefilelimit", r
->pagefilelimit
);
3210 ndr_print_NTTIME(ndr
, "timelimit", r
->timelimit
);
3214 static enum ndr_err_code
ndr_push_netr_DELTA_POLICY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_POLICY
*r
)
3216 uint32_t cntr_eventauditoptions_1
;
3217 if (ndr_flags
& NDR_SCALARS
) {
3218 NDR_CHECK(ndr_push_align(ndr
, 4));
3219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlogsize
));
3220 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->auditretentionperiod
));
3221 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auditingmode
));
3222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
));
3223 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eventauditoptions
));
3224 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3225 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
3226 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3227 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
3228 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->db_create_time
));
3229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3230 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3231 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3232 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3233 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3234 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3240 if (ndr_flags
& NDR_BUFFERS
) {
3241 if (r
->eventauditoptions
) {
3242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
+ 1));
3243 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3247 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3249 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3251 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3252 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3253 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3254 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3255 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3257 return NDR_ERR_SUCCESS
;
3260 static enum ndr_err_code
ndr_pull_netr_DELTA_POLICY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_POLICY
*r
)
3262 uint32_t _ptr_eventauditoptions
;
3263 uint32_t cntr_eventauditoptions_1
;
3264 TALLOC_CTX
*_mem_save_eventauditoptions_0
;
3265 TALLOC_CTX
*_mem_save_eventauditoptions_1
;
3267 TALLOC_CTX
*_mem_save_sid_0
;
3268 if (ndr_flags
& NDR_SCALARS
) {
3269 NDR_CHECK(ndr_pull_align(ndr
, 4));
3270 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlogsize
));
3271 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->auditretentionperiod
));
3272 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auditingmode
));
3273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxauditeventcount
));
3274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eventauditoptions
));
3275 if (_ptr_eventauditoptions
) {
3276 NDR_PULL_ALLOC(ndr
, r
->eventauditoptions
);
3278 r
->eventauditoptions
= NULL
;
3280 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3281 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
3283 NDR_PULL_ALLOC(ndr
, r
->sid
);
3287 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3288 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
3289 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->db_create_time
));
3290 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3291 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3292 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3293 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3294 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3295 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3296 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3297 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3298 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3301 if (ndr_flags
& NDR_BUFFERS
) {
3302 if (r
->eventauditoptions
) {
3303 _mem_save_eventauditoptions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3304 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eventauditoptions
));
3306 NDR_PULL_ALLOC_N(ndr
, r
->eventauditoptions
, ndr_get_array_size(ndr
, &r
->eventauditoptions
));
3307 _mem_save_eventauditoptions_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3308 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3309 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3310 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_1
, 0);
3313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_0
, 0);
3315 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3317 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3318 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
3319 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
3322 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3323 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3324 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3325 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3326 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3327 if (r
->eventauditoptions
) {
3328 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eventauditoptions
, r
->maxauditeventcount
+ 1));
3331 return NDR_ERR_SUCCESS
;
3334 _PUBLIC_
void ndr_print_netr_DELTA_POLICY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_POLICY
*r
)
3336 uint32_t cntr_eventauditoptions_1
;
3337 ndr_print_struct(ndr
, name
, "netr_DELTA_POLICY");
3339 ndr_print_uint32(ndr
, "maxlogsize", r
->maxlogsize
);
3340 ndr_print_NTTIME(ndr
, "auditretentionperiod", r
->auditretentionperiod
);
3341 ndr_print_uint8(ndr
, "auditingmode", r
->auditingmode
);
3342 ndr_print_uint32(ndr
, "maxauditeventcount", r
->maxauditeventcount
);
3343 ndr_print_ptr(ndr
, "eventauditoptions", r
->eventauditoptions
);
3345 if (r
->eventauditoptions
) {
3346 ndr
->print(ndr
, "%s: ARRAY(%d)", "eventauditoptions", (int)r
->maxauditeventcount
+ 1);
3348 for (cntr_eventauditoptions_1
=0;cntr_eventauditoptions_1
<r
->maxauditeventcount
+ 1;cntr_eventauditoptions_1
++) {
3350 if (asprintf(&idx_1
, "[%d]", cntr_eventauditoptions_1
) != -1) {
3351 ndr_print_uint32(ndr
, "eventauditoptions", r
->eventauditoptions
[cntr_eventauditoptions_1
]);
3358 ndr_print_lsa_String(ndr
, "primary_domain_name", &r
->primary_domain_name
);
3359 ndr_print_ptr(ndr
, "sid", r
->sid
);
3362 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
3365 ndr_print_netr_QUOTA_LIMITS(ndr
, "quota_limits", &r
->quota_limits
);
3366 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
3367 ndr_print_NTTIME(ndr
, "db_create_time", r
->db_create_time
);
3368 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3369 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3370 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3371 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3372 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3373 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3374 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3375 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3376 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3377 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3381 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
)
3383 uint32_t cntr_controller_names_1
;
3384 if (ndr_flags
& NDR_SCALARS
) {
3385 NDR_CHECK(ndr_push_align(ndr
, 4));
3386 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3388 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->controller_names
));
3389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3390 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3391 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3392 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3393 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3394 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->posix_offset
));
3396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3400 if (ndr_flags
& NDR_BUFFERS
) {
3401 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3402 if (r
->controller_names
) {
3403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3404 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3405 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3407 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3408 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3411 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3412 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3413 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3414 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3415 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3417 return NDR_ERR_SUCCESS
;
3420 static enum ndr_err_code
ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3422 uint32_t _ptr_controller_names
;
3423 uint32_t cntr_controller_names_1
;
3424 TALLOC_CTX
*_mem_save_controller_names_0
;
3425 TALLOC_CTX
*_mem_save_controller_names_1
;
3426 if (ndr_flags
& NDR_SCALARS
) {
3427 NDR_CHECK(ndr_pull_align(ndr
, 4));
3428 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_controllers
));
3430 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_controller_names
));
3431 if (_ptr_controller_names
) {
3432 NDR_PULL_ALLOC(ndr
, r
->controller_names
);
3434 r
->controller_names
= NULL
;
3436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3437 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3438 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3439 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3440 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3441 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->posix_offset
));
3443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3445 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3447 if (ndr_flags
& NDR_BUFFERS
) {
3448 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3449 if (r
->controller_names
) {
3450 _mem_save_controller_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3451 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3452 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->controller_names
));
3453 NDR_PULL_ALLOC_N(ndr
, r
->controller_names
, ndr_get_array_size(ndr
, &r
->controller_names
));
3454 _mem_save_controller_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3455 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3456 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3457 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3459 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3460 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_1
, 0);
3463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_0
, 0);
3465 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3466 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3467 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3468 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3469 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3470 if (r
->controller_names
) {
3471 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->controller_names
, r
->num_controllers
));
3474 return NDR_ERR_SUCCESS
;
3477 _PUBLIC_
void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3479 uint32_t cntr_controller_names_1
;
3480 ndr_print_struct(ndr
, name
, "netr_DELTA_TRUSTED_DOMAIN");
3482 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
3483 ndr_print_uint32(ndr
, "num_controllers", r
->num_controllers
);
3484 ndr_print_ptr(ndr
, "controller_names", r
->controller_names
);
3486 if (r
->controller_names
) {
3487 ndr
->print(ndr
, "%s: ARRAY(%d)", "controller_names", (int)r
->num_controllers
);
3489 for (cntr_controller_names_1
=0;cntr_controller_names_1
<r
->num_controllers
;cntr_controller_names_1
++) {
3491 if (asprintf(&idx_1
, "[%d]", cntr_controller_names_1
) != -1) {
3492 ndr_print_lsa_String(ndr
, "controller_names", &r
->controller_names
[cntr_controller_names_1
]);
3499 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3500 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3501 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3502 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3503 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3504 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3505 ndr_print_uint32(ndr
, "posix_offset", r
->posix_offset
);
3506 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3507 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3508 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3512 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
)
3514 if (ndr_flags
& NDR_SCALARS
) {
3515 NDR_CHECK(ndr_push_align(ndr
, 2));
3516 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3518 if (ndr_flags
& NDR_BUFFERS
) {
3520 return NDR_ERR_SUCCESS
;
3523 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_TRUST
*r
)
3525 if (ndr_flags
& NDR_SCALARS
) {
3526 NDR_CHECK(ndr_pull_align(ndr
, 2));
3527 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3529 if (ndr_flags
& NDR_BUFFERS
) {
3531 return NDR_ERR_SUCCESS
;
3534 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_TRUST
*r
)
3536 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_TRUST");
3538 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3542 static enum ndr_err_code
ndr_push_netr_DELTA_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ACCOUNT
*r
)
3544 uint32_t cntr_privilege_attrib_1
;
3545 uint32_t cntr_privilege_name_1
;
3546 if (ndr_flags
& NDR_SCALARS
) {
3547 NDR_CHECK(ndr_push_align(ndr
, 4));
3548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_control
));
3550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_attrib
));
3551 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_name
));
3552 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->system_flags
));
3554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3555 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3556 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3557 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3558 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3559 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3562 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3565 if (ndr_flags
& NDR_BUFFERS
) {
3566 if (r
->privilege_attrib
) {
3567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3568 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3572 if (r
->privilege_name
) {
3573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3574 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3575 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3577 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3578 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3581 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3582 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3583 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3584 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3585 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3587 return NDR_ERR_SUCCESS
;
3590 static enum ndr_err_code
ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ACCOUNT
*r
)
3592 uint32_t _ptr_privilege_attrib
;
3593 uint32_t cntr_privilege_attrib_1
;
3594 TALLOC_CTX
*_mem_save_privilege_attrib_0
;
3595 TALLOC_CTX
*_mem_save_privilege_attrib_1
;
3596 uint32_t _ptr_privilege_name
;
3597 uint32_t cntr_privilege_name_1
;
3598 TALLOC_CTX
*_mem_save_privilege_name_0
;
3599 TALLOC_CTX
*_mem_save_privilege_name_1
;
3600 if (ndr_flags
& NDR_SCALARS
) {
3601 NDR_CHECK(ndr_pull_align(ndr
, 4));
3602 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_entries
));
3603 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_control
));
3604 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_attrib
));
3605 if (_ptr_privilege_attrib
) {
3606 NDR_PULL_ALLOC(ndr
, r
->privilege_attrib
);
3608 r
->privilege_attrib
= NULL
;
3610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_name
));
3611 if (_ptr_privilege_name
) {
3612 NDR_PULL_ALLOC(ndr
, r
->privilege_name
);
3614 r
->privilege_name
= NULL
;
3616 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3617 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->system_flags
));
3618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3619 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3620 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3621 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3622 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3623 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3624 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3625 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3626 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3627 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3629 if (ndr_flags
& NDR_BUFFERS
) {
3630 if (r
->privilege_attrib
) {
3631 _mem_save_privilege_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3632 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3633 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_attrib
));
3634 NDR_PULL_ALLOC_N(ndr
, r
->privilege_attrib
, ndr_get_array_size(ndr
, &r
->privilege_attrib
));
3635 _mem_save_privilege_attrib_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3636 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3637 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_1
, 0);
3641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_0
, 0);
3643 if (r
->privilege_name
) {
3644 _mem_save_privilege_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3645 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3646 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_name
));
3647 NDR_PULL_ALLOC_N(ndr
, r
->privilege_name
, ndr_get_array_size(ndr
, &r
->privilege_name
));
3648 _mem_save_privilege_name_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3649 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3650 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3651 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3653 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3654 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_1
, 0);
3657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_0
, 0);
3659 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3660 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3661 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3662 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3663 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3664 if (r
->privilege_attrib
) {
3665 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_attrib
, r
->privilege_entries
));
3667 if (r
->privilege_name
) {
3668 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_name
, r
->privilege_entries
));
3671 return NDR_ERR_SUCCESS
;
3674 _PUBLIC_
void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ACCOUNT
*r
)
3676 uint32_t cntr_privilege_attrib_1
;
3677 uint32_t cntr_privilege_name_1
;
3678 ndr_print_struct(ndr
, name
, "netr_DELTA_ACCOUNT");
3680 ndr_print_uint32(ndr
, "privilege_entries", r
->privilege_entries
);
3681 ndr_print_uint32(ndr
, "privilege_control", r
->privilege_control
);
3682 ndr_print_ptr(ndr
, "privilege_attrib", r
->privilege_attrib
);
3684 if (r
->privilege_attrib
) {
3685 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_attrib", (int)r
->privilege_entries
);
3687 for (cntr_privilege_attrib_1
=0;cntr_privilege_attrib_1
<r
->privilege_entries
;cntr_privilege_attrib_1
++) {
3689 if (asprintf(&idx_1
, "[%d]", cntr_privilege_attrib_1
) != -1) {
3690 ndr_print_uint32(ndr
, "privilege_attrib", r
->privilege_attrib
[cntr_privilege_attrib_1
]);
3697 ndr_print_ptr(ndr
, "privilege_name", r
->privilege_name
);
3699 if (r
->privilege_name
) {
3700 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_name", (int)r
->privilege_entries
);
3702 for (cntr_privilege_name_1
=0;cntr_privilege_name_1
<r
->privilege_entries
;cntr_privilege_name_1
++) {
3704 if (asprintf(&idx_1
, "[%d]", cntr_privilege_name_1
) != -1) {
3705 ndr_print_lsa_String(ndr
, "privilege_name", &r
->privilege_name
[cntr_privilege_name_1
]);
3712 ndr_print_netr_QUOTA_LIMITS(ndr
, "quotalimits", &r
->quotalimits
);
3713 ndr_print_uint32(ndr
, "system_flags", r
->system_flags
);
3714 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3715 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3716 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3717 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3718 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3719 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3720 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3721 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3722 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3723 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3727 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
)
3729 if (ndr_flags
& NDR_SCALARS
) {
3730 NDR_CHECK(ndr_push_align(ndr
, 2));
3731 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3733 if (ndr_flags
& NDR_BUFFERS
) {
3735 return NDR_ERR_SUCCESS
;
3738 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_ACCOUNT
*r
)
3740 if (ndr_flags
& NDR_SCALARS
) {
3741 NDR_CHECK(ndr_pull_align(ndr
, 2));
3742 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3744 if (ndr_flags
& NDR_BUFFERS
) {
3746 return NDR_ERR_SUCCESS
;
3749 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3751 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_ACCOUNT");
3753 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3757 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
)
3759 if (ndr_flags
& NDR_SCALARS
) {
3760 NDR_CHECK(ndr_push_align(ndr
, 2));
3761 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3763 if (ndr_flags
& NDR_BUFFERS
) {
3765 return NDR_ERR_SUCCESS
;
3768 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_SECRET
*r
)
3770 if (ndr_flags
& NDR_SCALARS
) {
3771 NDR_CHECK(ndr_pull_align(ndr
, 2));
3772 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3774 if (ndr_flags
& NDR_BUFFERS
) {
3776 return NDR_ERR_SUCCESS
;
3779 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_SECRET
*r
)
3781 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_SECRET");
3783 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3787 static enum ndr_err_code
ndr_push_netr_CIPHER_VALUE(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CIPHER_VALUE
*r
)
3789 if (ndr_flags
& NDR_SCALARS
) {
3790 NDR_CHECK(ndr_push_align(ndr
, 4));
3791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3793 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cipher_data
));
3795 if (ndr_flags
& NDR_BUFFERS
) {
3796 if (r
->cipher_data
) {
3797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3800 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, r
->len
));
3803 return NDR_ERR_SUCCESS
;
3806 static enum ndr_err_code
ndr_pull_netr_CIPHER_VALUE(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CIPHER_VALUE
*r
)
3808 uint32_t _ptr_cipher_data
;
3809 TALLOC_CTX
*_mem_save_cipher_data_0
;
3810 if (ndr_flags
& NDR_SCALARS
) {
3811 NDR_CHECK(ndr_pull_align(ndr
, 4));
3812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
3813 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlen
));
3814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cipher_data
));
3815 if (_ptr_cipher_data
) {
3816 NDR_PULL_ALLOC(ndr
, r
->cipher_data
);
3818 r
->cipher_data
= NULL
;
3821 if (ndr_flags
& NDR_BUFFERS
) {
3822 if (r
->cipher_data
) {
3823 _mem_save_cipher_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3824 NDR_PULL_SET_MEM_CTX(ndr
, r
->cipher_data
, 0);
3825 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cipher_data
));
3826 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->cipher_data
));
3827 if (ndr_get_array_length(ndr
, &r
->cipher_data
) > ndr_get_array_size(ndr
, &r
->cipher_data
)) {
3828 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
));
3830 NDR_PULL_ALLOC_N(ndr
, r
->cipher_data
, ndr_get_array_size(ndr
, &r
->cipher_data
));
3831 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, ndr_get_array_length(ndr
, &r
->cipher_data
)));
3832 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cipher_data_0
, 0);
3834 if (r
->cipher_data
) {
3835 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cipher_data
, r
->maxlen
));
3837 if (r
->cipher_data
) {
3838 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->cipher_data
, r
->len
));
3841 return NDR_ERR_SUCCESS
;
3844 _PUBLIC_
void ndr_print_netr_CIPHER_VALUE(struct ndr_print
*ndr
, const char *name
, const struct netr_CIPHER_VALUE
*r
)
3846 ndr_print_struct(ndr
, name
, "netr_CIPHER_VALUE");
3848 ndr_print_uint32(ndr
, "len", r
->len
);
3849 ndr_print_uint32(ndr
, "maxlen", r
->maxlen
);
3850 ndr_print_ptr(ndr
, "cipher_data", r
->cipher_data
);
3852 if (r
->cipher_data
) {
3853 ndr_print_array_uint8(ndr
, "cipher_data", r
->cipher_data
, r
->len
);
3859 static enum ndr_err_code
ndr_push_netr_DELTA_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_SECRET
*r
)
3861 if (ndr_flags
& NDR_SCALARS
) {
3862 NDR_CHECK(ndr_push_align(ndr
, 4));
3863 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3864 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->current_cipher_set_time
));
3865 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3866 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->old_cipher_set_time
));
3867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3868 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3869 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3870 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3871 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3872 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3873 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3878 if (ndr_flags
& NDR_BUFFERS
) {
3879 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3880 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3881 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3882 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3883 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3884 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3885 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3887 return NDR_ERR_SUCCESS
;
3890 static enum ndr_err_code
ndr_pull_netr_DELTA_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_SECRET
*r
)
3892 if (ndr_flags
& NDR_SCALARS
) {
3893 NDR_CHECK(ndr_pull_align(ndr
, 4));
3894 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3895 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->current_cipher_set_time
));
3896 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3897 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->old_cipher_set_time
));
3898 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3899 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3900 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3901 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3902 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3903 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3904 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3905 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3909 if (ndr_flags
& NDR_BUFFERS
) {
3910 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3911 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3912 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3913 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3914 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3915 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3916 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3918 return NDR_ERR_SUCCESS
;
3921 _PUBLIC_
void ndr_print_netr_DELTA_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_SECRET
*r
)
3923 ndr_print_struct(ndr
, name
, "netr_DELTA_SECRET");
3925 ndr_print_netr_CIPHER_VALUE(ndr
, "current_cipher", &r
->current_cipher
);
3926 ndr_print_NTTIME(ndr
, "current_cipher_set_time", r
->current_cipher_set_time
);
3927 ndr_print_netr_CIPHER_VALUE(ndr
, "old_cipher", &r
->old_cipher
);
3928 ndr_print_NTTIME(ndr
, "old_cipher_set_time", r
->old_cipher_set_time
);
3929 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3930 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3931 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3932 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3933 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3934 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3935 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3936 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3937 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3938 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3942 static enum ndr_err_code
ndr_push_netr_DeltaEnum(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DeltaEnum r
)
3944 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
3945 return NDR_ERR_SUCCESS
;
3948 static enum ndr_err_code
ndr_pull_netr_DeltaEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DeltaEnum
*r
)
3951 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
3953 return NDR_ERR_SUCCESS
;
3956 _PUBLIC_
void ndr_print_netr_DeltaEnum(struct ndr_print
*ndr
, const char *name
, enum netr_DeltaEnum r
)
3958 const char *val
= NULL
;
3961 case NETR_DELTA_DOMAIN
: val
= "NETR_DELTA_DOMAIN"; break;
3962 case NETR_DELTA_GROUP
: val
= "NETR_DELTA_GROUP"; break;
3963 case NETR_DELTA_DELETE_GROUP
: val
= "NETR_DELTA_DELETE_GROUP"; break;
3964 case NETR_DELTA_RENAME_GROUP
: val
= "NETR_DELTA_RENAME_GROUP"; break;
3965 case NETR_DELTA_USER
: val
= "NETR_DELTA_USER"; break;
3966 case NETR_DELTA_DELETE_USER
: val
= "NETR_DELTA_DELETE_USER"; break;
3967 case NETR_DELTA_RENAME_USER
: val
= "NETR_DELTA_RENAME_USER"; break;
3968 case NETR_DELTA_GROUP_MEMBER
: val
= "NETR_DELTA_GROUP_MEMBER"; break;
3969 case NETR_DELTA_ALIAS
: val
= "NETR_DELTA_ALIAS"; break;
3970 case NETR_DELTA_DELETE_ALIAS
: val
= "NETR_DELTA_DELETE_ALIAS"; break;
3971 case NETR_DELTA_RENAME_ALIAS
: val
= "NETR_DELTA_RENAME_ALIAS"; break;
3972 case NETR_DELTA_ALIAS_MEMBER
: val
= "NETR_DELTA_ALIAS_MEMBER"; break;
3973 case NETR_DELTA_POLICY
: val
= "NETR_DELTA_POLICY"; break;
3974 case NETR_DELTA_TRUSTED_DOMAIN
: val
= "NETR_DELTA_TRUSTED_DOMAIN"; break;
3975 case NETR_DELTA_DELETE_TRUST
: val
= "NETR_DELTA_DELETE_TRUST"; break;
3976 case NETR_DELTA_ACCOUNT
: val
= "NETR_DELTA_ACCOUNT"; break;
3977 case NETR_DELTA_DELETE_ACCOUNT
: val
= "NETR_DELTA_DELETE_ACCOUNT"; break;
3978 case NETR_DELTA_SECRET
: val
= "NETR_DELTA_SECRET"; break;
3979 case NETR_DELTA_DELETE_SECRET
: val
= "NETR_DELTA_DELETE_SECRET"; break;
3980 case NETR_DELTA_DELETE_GROUP2
: val
= "NETR_DELTA_DELETE_GROUP2"; break;
3981 case NETR_DELTA_DELETE_USER2
: val
= "NETR_DELTA_DELETE_USER2"; break;
3982 case NETR_DELTA_MODIFY_COUNT
: val
= "NETR_DELTA_MODIFY_COUNT"; break;
3984 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3987 static enum ndr_err_code
ndr_push_netr_DELTA_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_UNION
*r
)
3989 if (ndr_flags
& NDR_SCALARS
) {
3990 int level
= ndr_push_get_switch_value(ndr
, r
);
3991 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
3993 case NETR_DELTA_DOMAIN
: {
3994 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
3997 case NETR_DELTA_GROUP
: {
3998 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group
));
4001 case NETR_DELTA_DELETE_GROUP
: {
4004 case NETR_DELTA_RENAME_GROUP
: {
4005 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_group
));
4008 case NETR_DELTA_USER
: {
4009 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
4012 case NETR_DELTA_DELETE_USER
: {
4015 case NETR_DELTA_RENAME_USER
: {
4016 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_user
));
4019 case NETR_DELTA_GROUP_MEMBER
: {
4020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_member
));
4023 case NETR_DELTA_ALIAS
: {
4024 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias
));
4027 case NETR_DELTA_DELETE_ALIAS
: {
4030 case NETR_DELTA_RENAME_ALIAS
: {
4031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_alias
));
4034 case NETR_DELTA_ALIAS_MEMBER
: {
4035 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias_member
));
4038 case NETR_DELTA_POLICY
: {
4039 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
4042 case NETR_DELTA_TRUSTED_DOMAIN
: {
4043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain
));
4046 case NETR_DELTA_DELETE_TRUST
: {
4047 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4050 case NETR_DELTA_ACCOUNT
: {
4051 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account
));
4054 case NETR_DELTA_DELETE_ACCOUNT
: {
4055 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4058 case NETR_DELTA_SECRET
: {
4059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secret
));
4062 case NETR_DELTA_DELETE_SECRET
: {
4063 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4066 case NETR_DELTA_DELETE_GROUP2
: {
4067 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_group
));
4070 case NETR_DELTA_DELETE_USER2
: {
4071 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_user
));
4074 case NETR_DELTA_MODIFY_COUNT
: {
4075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->modified_count
));
4079 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4082 if (ndr_flags
& NDR_BUFFERS
) {
4083 int level
= ndr_push_get_switch_value(ndr
, r
);
4085 case NETR_DELTA_DOMAIN
:
4087 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4091 case NETR_DELTA_GROUP
:
4093 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4097 case NETR_DELTA_DELETE_GROUP
:
4100 case NETR_DELTA_RENAME_GROUP
:
4101 if (r
->rename_group
) {
4102 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4106 case NETR_DELTA_USER
:
4108 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4112 case NETR_DELTA_DELETE_USER
:
4115 case NETR_DELTA_RENAME_USER
:
4116 if (r
->rename_user
) {
4117 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4121 case NETR_DELTA_GROUP_MEMBER
:
4122 if (r
->group_member
) {
4123 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4127 case NETR_DELTA_ALIAS
:
4129 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4133 case NETR_DELTA_DELETE_ALIAS
:
4136 case NETR_DELTA_RENAME_ALIAS
:
4137 if (r
->rename_alias
) {
4138 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4142 case NETR_DELTA_ALIAS_MEMBER
:
4143 if (r
->alias_member
) {
4144 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4148 case NETR_DELTA_POLICY
:
4150 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4154 case NETR_DELTA_TRUSTED_DOMAIN
:
4155 if (r
->trusted_domain
) {
4156 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4160 case NETR_DELTA_DELETE_TRUST
:
4163 case NETR_DELTA_ACCOUNT
:
4165 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4169 case NETR_DELTA_DELETE_ACCOUNT
:
4172 case NETR_DELTA_SECRET
:
4174 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4178 case NETR_DELTA_DELETE_SECRET
:
4181 case NETR_DELTA_DELETE_GROUP2
:
4182 if (r
->delete_group
) {
4183 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4187 case NETR_DELTA_DELETE_USER2
:
4188 if (r
->delete_user
) {
4189 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4193 case NETR_DELTA_MODIFY_COUNT
:
4194 if (r
->modified_count
) {
4195 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->modified_count
));
4200 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4203 return NDR_ERR_SUCCESS
;
4206 static enum ndr_err_code
ndr_pull_netr_DELTA_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_UNION
*r
)
4210 TALLOC_CTX
*_mem_save_domain_0
;
4211 TALLOC_CTX
*_mem_save_group_0
;
4212 TALLOC_CTX
*_mem_save_rename_group_0
;
4213 TALLOC_CTX
*_mem_save_user_0
;
4214 TALLOC_CTX
*_mem_save_rename_user_0
;
4215 TALLOC_CTX
*_mem_save_group_member_0
;
4216 TALLOC_CTX
*_mem_save_alias_0
;
4217 TALLOC_CTX
*_mem_save_rename_alias_0
;
4218 TALLOC_CTX
*_mem_save_alias_member_0
;
4219 TALLOC_CTX
*_mem_save_policy_0
;
4220 TALLOC_CTX
*_mem_save_trusted_domain_0
;
4221 TALLOC_CTX
*_mem_save_account_0
;
4222 TALLOC_CTX
*_mem_save_secret_0
;
4223 TALLOC_CTX
*_mem_save_delete_group_0
;
4224 TALLOC_CTX
*_mem_save_delete_user_0
;
4225 TALLOC_CTX
*_mem_save_modified_count_0
;
4226 level
= ndr_pull_get_switch_value(ndr
, r
);
4227 if (ndr_flags
& NDR_SCALARS
) {
4228 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4229 if (_level
!= level
) {
4230 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4233 case NETR_DELTA_DOMAIN
: {
4234 uint32_t _ptr_domain
;
4235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
4237 NDR_PULL_ALLOC(ndr
, r
->domain
);
4243 case NETR_DELTA_GROUP
: {
4244 uint32_t _ptr_group
;
4245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group
));
4247 NDR_PULL_ALLOC(ndr
, r
->group
);
4253 case NETR_DELTA_DELETE_GROUP
: {
4256 case NETR_DELTA_RENAME_GROUP
: {
4257 uint32_t _ptr_rename_group
;
4258 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_group
));
4259 if (_ptr_rename_group
) {
4260 NDR_PULL_ALLOC(ndr
, r
->rename_group
);
4262 r
->rename_group
= NULL
;
4266 case NETR_DELTA_USER
: {
4268 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
4270 NDR_PULL_ALLOC(ndr
, r
->user
);
4276 case NETR_DELTA_DELETE_USER
: {
4279 case NETR_DELTA_RENAME_USER
: {
4280 uint32_t _ptr_rename_user
;
4281 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_user
));
4282 if (_ptr_rename_user
) {
4283 NDR_PULL_ALLOC(ndr
, r
->rename_user
);
4285 r
->rename_user
= NULL
;
4289 case NETR_DELTA_GROUP_MEMBER
: {
4290 uint32_t _ptr_group_member
;
4291 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_member
));
4292 if (_ptr_group_member
) {
4293 NDR_PULL_ALLOC(ndr
, r
->group_member
);
4295 r
->group_member
= NULL
;
4299 case NETR_DELTA_ALIAS
: {
4300 uint32_t _ptr_alias
;
4301 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias
));
4303 NDR_PULL_ALLOC(ndr
, r
->alias
);
4309 case NETR_DELTA_DELETE_ALIAS
: {
4312 case NETR_DELTA_RENAME_ALIAS
: {
4313 uint32_t _ptr_rename_alias
;
4314 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_alias
));
4315 if (_ptr_rename_alias
) {
4316 NDR_PULL_ALLOC(ndr
, r
->rename_alias
);
4318 r
->rename_alias
= NULL
;
4322 case NETR_DELTA_ALIAS_MEMBER
: {
4323 uint32_t _ptr_alias_member
;
4324 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias_member
));
4325 if (_ptr_alias_member
) {
4326 NDR_PULL_ALLOC(ndr
, r
->alias_member
);
4328 r
->alias_member
= NULL
;
4332 case NETR_DELTA_POLICY
: {
4333 uint32_t _ptr_policy
;
4334 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
4336 NDR_PULL_ALLOC(ndr
, r
->policy
);
4342 case NETR_DELTA_TRUSTED_DOMAIN
: {
4343 uint32_t _ptr_trusted_domain
;
4344 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain
));
4345 if (_ptr_trusted_domain
) {
4346 NDR_PULL_ALLOC(ndr
, r
->trusted_domain
);
4348 r
->trusted_domain
= NULL
;
4352 case NETR_DELTA_DELETE_TRUST
: {
4353 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4356 case NETR_DELTA_ACCOUNT
: {
4357 uint32_t _ptr_account
;
4358 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account
));
4360 NDR_PULL_ALLOC(ndr
, r
->account
);
4366 case NETR_DELTA_DELETE_ACCOUNT
: {
4367 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4370 case NETR_DELTA_SECRET
: {
4371 uint32_t _ptr_secret
;
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secret
));
4374 NDR_PULL_ALLOC(ndr
, r
->secret
);
4380 case NETR_DELTA_DELETE_SECRET
: {
4381 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4384 case NETR_DELTA_DELETE_GROUP2
: {
4385 uint32_t _ptr_delete_group
;
4386 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_group
));
4387 if (_ptr_delete_group
) {
4388 NDR_PULL_ALLOC(ndr
, r
->delete_group
);
4390 r
->delete_group
= NULL
;
4394 case NETR_DELTA_DELETE_USER2
: {
4395 uint32_t _ptr_delete_user
;
4396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_user
));
4397 if (_ptr_delete_user
) {
4398 NDR_PULL_ALLOC(ndr
, r
->delete_user
);
4400 r
->delete_user
= NULL
;
4404 case NETR_DELTA_MODIFY_COUNT
: {
4405 uint32_t _ptr_modified_count
;
4406 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_modified_count
));
4407 if (_ptr_modified_count
) {
4408 NDR_PULL_ALLOC(ndr
, r
->modified_count
);
4410 r
->modified_count
= NULL
;
4415 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4418 if (ndr_flags
& NDR_BUFFERS
) {
4420 case NETR_DELTA_DOMAIN
:
4422 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4423 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4424 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4429 case NETR_DELTA_GROUP
:
4431 _mem_save_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4432 NDR_PULL_SET_MEM_CTX(ndr
, r
->group
, 0);
4433 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_0
, 0);
4438 case NETR_DELTA_DELETE_GROUP
:
4441 case NETR_DELTA_RENAME_GROUP
:
4442 if (r
->rename_group
) {
4443 _mem_save_rename_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4444 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_group
, 0);
4445 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4446 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_group_0
, 0);
4450 case NETR_DELTA_USER
:
4452 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4453 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
4454 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
4459 case NETR_DELTA_DELETE_USER
:
4462 case NETR_DELTA_RENAME_USER
:
4463 if (r
->rename_user
) {
4464 _mem_save_rename_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4465 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_user
, 0);
4466 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_user_0
, 0);
4471 case NETR_DELTA_GROUP_MEMBER
:
4472 if (r
->group_member
) {
4473 _mem_save_group_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4474 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_member
, 0);
4475 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4476 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_member_0
, 0);
4480 case NETR_DELTA_ALIAS
:
4482 _mem_save_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4483 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias
, 0);
4484 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_0
, 0);
4489 case NETR_DELTA_DELETE_ALIAS
:
4492 case NETR_DELTA_RENAME_ALIAS
:
4493 if (r
->rename_alias
) {
4494 _mem_save_rename_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4495 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_alias
, 0);
4496 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_alias_0
, 0);
4501 case NETR_DELTA_ALIAS_MEMBER
:
4502 if (r
->alias_member
) {
4503 _mem_save_alias_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4504 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias_member
, 0);
4505 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_member_0
, 0);
4510 case NETR_DELTA_POLICY
:
4512 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4513 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
4514 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
4519 case NETR_DELTA_TRUSTED_DOMAIN
:
4520 if (r
->trusted_domain
) {
4521 _mem_save_trusted_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4522 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain
, 0);
4523 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_0
, 0);
4528 case NETR_DELTA_DELETE_TRUST
:
4531 case NETR_DELTA_ACCOUNT
:
4533 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4534 NDR_PULL_SET_MEM_CTX(ndr
, r
->account
, 0);
4535 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, 0);
4540 case NETR_DELTA_DELETE_ACCOUNT
:
4543 case NETR_DELTA_SECRET
:
4545 _mem_save_secret_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4546 NDR_PULL_SET_MEM_CTX(ndr
, r
->secret
, 0);
4547 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secret_0
, 0);
4552 case NETR_DELTA_DELETE_SECRET
:
4555 case NETR_DELTA_DELETE_GROUP2
:
4556 if (r
->delete_group
) {
4557 _mem_save_delete_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4558 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_group
, 0);
4559 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_group_0
, 0);
4564 case NETR_DELTA_DELETE_USER2
:
4565 if (r
->delete_user
) {
4566 _mem_save_delete_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4567 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_user
, 0);
4568 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_user_0
, 0);
4573 case NETR_DELTA_MODIFY_COUNT
:
4574 if (r
->modified_count
) {
4575 _mem_save_modified_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4576 NDR_PULL_SET_MEM_CTX(ndr
, r
->modified_count
, 0);
4577 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->modified_count
));
4578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_modified_count_0
, 0);
4583 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4586 return NDR_ERR_SUCCESS
;
4589 _PUBLIC_
void ndr_print_netr_DELTA_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_UNION
*r
)
4592 level
= ndr_print_get_switch_value(ndr
, r
);
4593 ndr_print_union(ndr
, name
, level
, "netr_DELTA_UNION");
4595 case NETR_DELTA_DOMAIN
:
4596 ndr_print_ptr(ndr
, "domain", r
->domain
);
4599 ndr_print_netr_DELTA_DOMAIN(ndr
, "domain", r
->domain
);
4604 case NETR_DELTA_GROUP
:
4605 ndr_print_ptr(ndr
, "group", r
->group
);
4608 ndr_print_netr_DELTA_GROUP(ndr
, "group", r
->group
);
4613 case NETR_DELTA_DELETE_GROUP
:
4616 case NETR_DELTA_RENAME_GROUP
:
4617 ndr_print_ptr(ndr
, "rename_group", r
->rename_group
);
4619 if (r
->rename_group
) {
4620 ndr_print_netr_DELTA_RENAME(ndr
, "rename_group", r
->rename_group
);
4625 case NETR_DELTA_USER
:
4626 ndr_print_ptr(ndr
, "user", r
->user
);
4629 ndr_print_netr_DELTA_USER(ndr
, "user", r
->user
);
4634 case NETR_DELTA_DELETE_USER
:
4637 case NETR_DELTA_RENAME_USER
:
4638 ndr_print_ptr(ndr
, "rename_user", r
->rename_user
);
4640 if (r
->rename_user
) {
4641 ndr_print_netr_DELTA_RENAME(ndr
, "rename_user", r
->rename_user
);
4646 case NETR_DELTA_GROUP_MEMBER
:
4647 ndr_print_ptr(ndr
, "group_member", r
->group_member
);
4649 if (r
->group_member
) {
4650 ndr_print_netr_DELTA_GROUP_MEMBER(ndr
, "group_member", r
->group_member
);
4655 case NETR_DELTA_ALIAS
:
4656 ndr_print_ptr(ndr
, "alias", r
->alias
);
4659 ndr_print_netr_DELTA_ALIAS(ndr
, "alias", r
->alias
);
4664 case NETR_DELTA_DELETE_ALIAS
:
4667 case NETR_DELTA_RENAME_ALIAS
:
4668 ndr_print_ptr(ndr
, "rename_alias", r
->rename_alias
);
4670 if (r
->rename_alias
) {
4671 ndr_print_netr_DELTA_RENAME(ndr
, "rename_alias", r
->rename_alias
);
4676 case NETR_DELTA_ALIAS_MEMBER
:
4677 ndr_print_ptr(ndr
, "alias_member", r
->alias_member
);
4679 if (r
->alias_member
) {
4680 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr
, "alias_member", r
->alias_member
);
4685 case NETR_DELTA_POLICY
:
4686 ndr_print_ptr(ndr
, "policy", r
->policy
);
4689 ndr_print_netr_DELTA_POLICY(ndr
, "policy", r
->policy
);
4694 case NETR_DELTA_TRUSTED_DOMAIN
:
4695 ndr_print_ptr(ndr
, "trusted_domain", r
->trusted_domain
);
4697 if (r
->trusted_domain
) {
4698 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr
, "trusted_domain", r
->trusted_domain
);
4703 case NETR_DELTA_DELETE_TRUST
:
4704 ndr_print_netr_DELTA_DELETE_TRUST(ndr
, "delete_trust", &r
->delete_trust
);
4707 case NETR_DELTA_ACCOUNT
:
4708 ndr_print_ptr(ndr
, "account", r
->account
);
4711 ndr_print_netr_DELTA_ACCOUNT(ndr
, "account", r
->account
);
4716 case NETR_DELTA_DELETE_ACCOUNT
:
4717 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr
, "delete_account", &r
->delete_account
);
4720 case NETR_DELTA_SECRET
:
4721 ndr_print_ptr(ndr
, "secret", r
->secret
);
4724 ndr_print_netr_DELTA_SECRET(ndr
, "secret", r
->secret
);
4729 case NETR_DELTA_DELETE_SECRET
:
4730 ndr_print_netr_DELTA_DELETE_SECRET(ndr
, "delete_secret", &r
->delete_secret
);
4733 case NETR_DELTA_DELETE_GROUP2
:
4734 ndr_print_ptr(ndr
, "delete_group", r
->delete_group
);
4736 if (r
->delete_group
) {
4737 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_group", r
->delete_group
);
4742 case NETR_DELTA_DELETE_USER2
:
4743 ndr_print_ptr(ndr
, "delete_user", r
->delete_user
);
4745 if (r
->delete_user
) {
4746 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_user", r
->delete_user
);
4751 case NETR_DELTA_MODIFY_COUNT
:
4752 ndr_print_ptr(ndr
, "modified_count", r
->modified_count
);
4754 if (r
->modified_count
) {
4755 ndr_print_udlong(ndr
, "modified_count", *r
->modified_count
);
4761 ndr_print_bad_level(ndr
, name
, level
);
4765 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
)
4767 if (ndr_flags
& NDR_SCALARS
) {
4768 int level
= ndr_push_get_switch_value(ndr
, r
);
4769 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4771 case NETR_DELTA_DOMAIN
: {
4772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4775 case NETR_DELTA_GROUP
: {
4776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4779 case NETR_DELTA_DELETE_GROUP
: {
4780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4783 case NETR_DELTA_RENAME_GROUP
: {
4784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4787 case NETR_DELTA_USER
: {
4788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4791 case NETR_DELTA_DELETE_USER
: {
4792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4795 case NETR_DELTA_RENAME_USER
: {
4796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4799 case NETR_DELTA_GROUP_MEMBER
: {
4800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4803 case NETR_DELTA_ALIAS
: {
4804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4807 case NETR_DELTA_DELETE_ALIAS
: {
4808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4811 case NETR_DELTA_RENAME_ALIAS
: {
4812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4815 case NETR_DELTA_ALIAS_MEMBER
: {
4816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4819 case NETR_DELTA_POLICY
: {
4820 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4823 case NETR_DELTA_TRUSTED_DOMAIN
: {
4824 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4827 case NETR_DELTA_DELETE_TRUST
: {
4828 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4831 case NETR_DELTA_ACCOUNT
: {
4832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4835 case NETR_DELTA_DELETE_ACCOUNT
: {
4836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4839 case NETR_DELTA_SECRET
: {
4840 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4843 case NETR_DELTA_DELETE_SECRET
: {
4844 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4847 case NETR_DELTA_DELETE_GROUP2
: {
4848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4851 case NETR_DELTA_DELETE_USER2
: {
4852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4855 case NETR_DELTA_MODIFY_COUNT
: {
4859 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4862 if (ndr_flags
& NDR_BUFFERS
) {
4863 int level
= ndr_push_get_switch_value(ndr
, r
);
4865 case NETR_DELTA_DOMAIN
:
4868 case NETR_DELTA_GROUP
:
4871 case NETR_DELTA_DELETE_GROUP
:
4874 case NETR_DELTA_RENAME_GROUP
:
4877 case NETR_DELTA_USER
:
4880 case NETR_DELTA_DELETE_USER
:
4883 case NETR_DELTA_RENAME_USER
:
4886 case NETR_DELTA_GROUP_MEMBER
:
4889 case NETR_DELTA_ALIAS
:
4892 case NETR_DELTA_DELETE_ALIAS
:
4895 case NETR_DELTA_RENAME_ALIAS
:
4898 case NETR_DELTA_ALIAS_MEMBER
:
4901 case NETR_DELTA_POLICY
:
4903 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4907 case NETR_DELTA_TRUSTED_DOMAIN
:
4909 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4913 case NETR_DELTA_DELETE_TRUST
:
4915 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4919 case NETR_DELTA_ACCOUNT
:
4921 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4925 case NETR_DELTA_DELETE_ACCOUNT
:
4927 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4931 case NETR_DELTA_SECRET
:
4933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4936 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4940 case NETR_DELTA_DELETE_SECRET
:
4942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4945 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4949 case NETR_DELTA_DELETE_GROUP2
:
4952 case NETR_DELTA_DELETE_USER2
:
4955 case NETR_DELTA_MODIFY_COUNT
:
4959 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4962 return NDR_ERR_SUCCESS
;
4965 static enum ndr_err_code
ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_ID_UNION
*r
)
4969 TALLOC_CTX
*_mem_save_sid_0
;
4970 TALLOC_CTX
*_mem_save_name_0
;
4971 level
= ndr_pull_get_switch_value(ndr
, r
);
4972 if (ndr_flags
& NDR_SCALARS
) {
4973 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4974 if (_level
!= level
) {
4975 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4978 case NETR_DELTA_DOMAIN
: {
4979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4982 case NETR_DELTA_GROUP
: {
4983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4986 case NETR_DELTA_DELETE_GROUP
: {
4987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4990 case NETR_DELTA_RENAME_GROUP
: {
4991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4994 case NETR_DELTA_USER
: {
4995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4998 case NETR_DELTA_DELETE_USER
: {
4999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5002 case NETR_DELTA_RENAME_USER
: {
5003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5006 case NETR_DELTA_GROUP_MEMBER
: {
5007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5010 case NETR_DELTA_ALIAS
: {
5011 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5014 case NETR_DELTA_DELETE_ALIAS
: {
5015 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5018 case NETR_DELTA_RENAME_ALIAS
: {
5019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5022 case NETR_DELTA_ALIAS_MEMBER
: {
5023 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5026 case NETR_DELTA_POLICY
: {
5028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5030 NDR_PULL_ALLOC(ndr
, r
->sid
);
5036 case NETR_DELTA_TRUSTED_DOMAIN
: {
5038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5040 NDR_PULL_ALLOC(ndr
, r
->sid
);
5046 case NETR_DELTA_DELETE_TRUST
: {
5048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5050 NDR_PULL_ALLOC(ndr
, r
->sid
);
5056 case NETR_DELTA_ACCOUNT
: {
5058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5060 NDR_PULL_ALLOC(ndr
, r
->sid
);
5066 case NETR_DELTA_DELETE_ACCOUNT
: {
5068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5070 NDR_PULL_ALLOC(ndr
, r
->sid
);
5076 case NETR_DELTA_SECRET
: {
5078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5080 NDR_PULL_ALLOC(ndr
, r
->name
);
5086 case NETR_DELTA_DELETE_SECRET
: {
5088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5090 NDR_PULL_ALLOC(ndr
, r
->name
);
5096 case NETR_DELTA_DELETE_GROUP2
: {
5097 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5100 case NETR_DELTA_DELETE_USER2
: {
5101 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5104 case NETR_DELTA_MODIFY_COUNT
: {
5108 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5111 if (ndr_flags
& NDR_BUFFERS
) {
5113 case NETR_DELTA_DOMAIN
:
5116 case NETR_DELTA_GROUP
:
5119 case NETR_DELTA_DELETE_GROUP
:
5122 case NETR_DELTA_RENAME_GROUP
:
5125 case NETR_DELTA_USER
:
5128 case NETR_DELTA_DELETE_USER
:
5131 case NETR_DELTA_RENAME_USER
:
5134 case NETR_DELTA_GROUP_MEMBER
:
5137 case NETR_DELTA_ALIAS
:
5140 case NETR_DELTA_DELETE_ALIAS
:
5143 case NETR_DELTA_RENAME_ALIAS
:
5146 case NETR_DELTA_ALIAS_MEMBER
:
5149 case NETR_DELTA_POLICY
:
5151 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5152 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5153 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5158 case NETR_DELTA_TRUSTED_DOMAIN
:
5160 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5161 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5162 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5167 case NETR_DELTA_DELETE_TRUST
:
5169 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5170 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5171 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5176 case NETR_DELTA_ACCOUNT
:
5178 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5179 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5180 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5185 case NETR_DELTA_DELETE_ACCOUNT
:
5187 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5188 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5189 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5190 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5194 case NETR_DELTA_SECRET
:
5196 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5197 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5198 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5199 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5200 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5201 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
));
5203 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5204 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5209 case NETR_DELTA_DELETE_SECRET
:
5211 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5212 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5213 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5214 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5215 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5216 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
));
5218 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5219 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5224 case NETR_DELTA_DELETE_GROUP2
:
5227 case NETR_DELTA_DELETE_USER2
:
5230 case NETR_DELTA_MODIFY_COUNT
:
5234 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5237 return NDR_ERR_SUCCESS
;
5240 _PUBLIC_
void ndr_print_netr_DELTA_ID_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_ID_UNION
*r
)
5243 level
= ndr_print_get_switch_value(ndr
, r
);
5244 ndr_print_union(ndr
, name
, level
, "netr_DELTA_ID_UNION");
5246 case NETR_DELTA_DOMAIN
:
5247 ndr_print_uint32(ndr
, "rid", r
->rid
);
5250 case NETR_DELTA_GROUP
:
5251 ndr_print_uint32(ndr
, "rid", r
->rid
);
5254 case NETR_DELTA_DELETE_GROUP
:
5255 ndr_print_uint32(ndr
, "rid", r
->rid
);
5258 case NETR_DELTA_RENAME_GROUP
:
5259 ndr_print_uint32(ndr
, "rid", r
->rid
);
5262 case NETR_DELTA_USER
:
5263 ndr_print_uint32(ndr
, "rid", r
->rid
);
5266 case NETR_DELTA_DELETE_USER
:
5267 ndr_print_uint32(ndr
, "rid", r
->rid
);
5270 case NETR_DELTA_RENAME_USER
:
5271 ndr_print_uint32(ndr
, "rid", r
->rid
);
5274 case NETR_DELTA_GROUP_MEMBER
:
5275 ndr_print_uint32(ndr
, "rid", r
->rid
);
5278 case NETR_DELTA_ALIAS
:
5279 ndr_print_uint32(ndr
, "rid", r
->rid
);
5282 case NETR_DELTA_DELETE_ALIAS
:
5283 ndr_print_uint32(ndr
, "rid", r
->rid
);
5286 case NETR_DELTA_RENAME_ALIAS
:
5287 ndr_print_uint32(ndr
, "rid", r
->rid
);
5290 case NETR_DELTA_ALIAS_MEMBER
:
5291 ndr_print_uint32(ndr
, "rid", r
->rid
);
5294 case NETR_DELTA_POLICY
:
5295 ndr_print_ptr(ndr
, "sid", r
->sid
);
5298 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5303 case NETR_DELTA_TRUSTED_DOMAIN
:
5304 ndr_print_ptr(ndr
, "sid", r
->sid
);
5307 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5312 case NETR_DELTA_DELETE_TRUST
:
5313 ndr_print_ptr(ndr
, "sid", r
->sid
);
5316 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5321 case NETR_DELTA_ACCOUNT
:
5322 ndr_print_ptr(ndr
, "sid", r
->sid
);
5325 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5330 case NETR_DELTA_DELETE_ACCOUNT
:
5331 ndr_print_ptr(ndr
, "sid", r
->sid
);
5334 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5339 case NETR_DELTA_SECRET
:
5340 ndr_print_ptr(ndr
, "name", r
->name
);
5343 ndr_print_string(ndr
, "name", r
->name
);
5348 case NETR_DELTA_DELETE_SECRET
:
5349 ndr_print_ptr(ndr
, "name", r
->name
);
5352 ndr_print_string(ndr
, "name", r
->name
);
5357 case NETR_DELTA_DELETE_GROUP2
:
5358 ndr_print_uint32(ndr
, "rid", r
->rid
);
5361 case NETR_DELTA_DELETE_USER2
:
5362 ndr_print_uint32(ndr
, "rid", r
->rid
);
5365 case NETR_DELTA_MODIFY_COUNT
:
5369 ndr_print_bad_level(ndr
, name
, level
);
5373 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM
*r
)
5375 if (ndr_flags
& NDR_SCALARS
) {
5376 NDR_CHECK(ndr_push_align(ndr
, 4));
5377 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, r
->delta_type
));
5378 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5379 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5380 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5381 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5383 if (ndr_flags
& NDR_BUFFERS
) {
5384 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5385 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5387 return NDR_ERR_SUCCESS
;
5390 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM
*r
)
5392 if (ndr_flags
& NDR_SCALARS
) {
5393 NDR_CHECK(ndr_pull_align(ndr
, 4));
5394 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr
, NDR_SCALARS
, &r
->delta_type
));
5395 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5396 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5397 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5398 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5400 if (ndr_flags
& NDR_BUFFERS
) {
5401 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5402 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5404 return NDR_ERR_SUCCESS
;
5407 _PUBLIC_
void ndr_print_netr_DELTA_ENUM(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM
*r
)
5409 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM");
5411 ndr_print_netr_DeltaEnum(ndr
, "delta_type", r
->delta_type
);
5412 ndr_print_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
);
5413 ndr_print_netr_DELTA_ID_UNION(ndr
, "delta_id_union", &r
->delta_id_union
);
5414 ndr_print_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
);
5415 ndr_print_netr_DELTA_UNION(ndr
, "delta_union", &r
->delta_union
);
5419 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
)
5421 uint32_t cntr_delta_enum_1
;
5422 if (ndr_flags
& NDR_SCALARS
) {
5423 NDR_CHECK(ndr_push_align(ndr
, 4));
5424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5425 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delta_enum
));
5427 if (ndr_flags
& NDR_BUFFERS
) {
5428 if (r
->delta_enum
) {
5429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5430 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5431 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5433 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5434 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5438 return NDR_ERR_SUCCESS
;
5441 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM_ARRAY
*r
)
5443 uint32_t _ptr_delta_enum
;
5444 uint32_t cntr_delta_enum_1
;
5445 TALLOC_CTX
*_mem_save_delta_enum_0
;
5446 TALLOC_CTX
*_mem_save_delta_enum_1
;
5447 if (ndr_flags
& NDR_SCALARS
) {
5448 NDR_CHECK(ndr_pull_align(ndr
, 4));
5449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_deltas
));
5450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum
));
5451 if (_ptr_delta_enum
) {
5452 NDR_PULL_ALLOC(ndr
, r
->delta_enum
);
5454 r
->delta_enum
= NULL
;
5457 if (ndr_flags
& NDR_BUFFERS
) {
5458 if (r
->delta_enum
) {
5459 _mem_save_delta_enum_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5460 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5461 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->delta_enum
));
5462 NDR_PULL_ALLOC_N(ndr
, r
->delta_enum
, ndr_get_array_size(ndr
, &r
->delta_enum
));
5463 _mem_save_delta_enum_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5464 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5465 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5466 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5468 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5469 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_1
, 0);
5472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_0
, 0);
5474 if (r
->delta_enum
) {
5475 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->delta_enum
, r
->num_deltas
));
5478 return NDR_ERR_SUCCESS
;
5481 _PUBLIC_
void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5483 uint32_t cntr_delta_enum_1
;
5484 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM_ARRAY");
5486 ndr_print_uint32(ndr
, "num_deltas", r
->num_deltas
);
5487 ndr_print_ptr(ndr
, "delta_enum", r
->delta_enum
);
5489 if (r
->delta_enum
) {
5490 ndr
->print(ndr
, "%s: ARRAY(%d)", "delta_enum", (int)r
->num_deltas
);
5492 for (cntr_delta_enum_1
=0;cntr_delta_enum_1
<r
->num_deltas
;cntr_delta_enum_1
++) {
5494 if (asprintf(&idx_1
, "[%d]", cntr_delta_enum_1
) != -1) {
5495 ndr_print_netr_DELTA_ENUM(ndr
, "delta_enum", &r
->delta_enum
[cntr_delta_enum_1
]);
5505 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
)
5508 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5509 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5510 if (ndr_flags
& NDR_SCALARS
) {
5511 NDR_CHECK(ndr_push_align(ndr
, 4));
5512 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timecreated
));
5514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number
));
5516 if (ndr_flags
& NDR_BUFFERS
) {
5518 ndr
->flags
= _flags_save_STRUCT
;
5520 return NDR_ERR_SUCCESS
;
5523 static enum ndr_err_code
ndr_pull_netr_UAS_INFO_0(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UAS_INFO_0
*r
)
5526 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5527 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5528 if (ndr_flags
& NDR_SCALARS
) {
5529 NDR_CHECK(ndr_pull_align(ndr
, 4));
5530 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5531 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timecreated
));
5532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number
));
5534 if (ndr_flags
& NDR_BUFFERS
) {
5536 ndr
->flags
= _flags_save_STRUCT
;
5538 return NDR_ERR_SUCCESS
;
5541 _PUBLIC_
void ndr_print_netr_UAS_INFO_0(struct ndr_print
*ndr
, const char *name
, const struct netr_UAS_INFO_0
*r
)
5543 ndr_print_struct(ndr
, name
, "netr_UAS_INFO_0");
5545 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5546 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5548 ndr_print_array_uint8(ndr
, "computer_name", r
->computer_name
, 16);
5549 ndr_print_uint32(ndr
, "timecreated", r
->timecreated
);
5550 ndr_print_uint32(ndr
, "serial_number", r
->serial_number
);
5552 ndr
->flags
= _flags_save_STRUCT
;
5556 static enum ndr_err_code
ndr_push_netr_AccountBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AccountBuffer
*r
)
5558 if (ndr_flags
& NDR_SCALARS
) {
5559 NDR_CHECK(ndr_push_align(ndr
, 4));
5561 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5562 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5563 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
5564 ndr
->flags
= _flags_save_DATA_BLOB
;
5567 if (ndr_flags
& NDR_BUFFERS
) {
5569 return NDR_ERR_SUCCESS
;
5572 static enum ndr_err_code
ndr_pull_netr_AccountBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AccountBuffer
*r
)
5574 if (ndr_flags
& NDR_SCALARS
) {
5575 NDR_CHECK(ndr_pull_align(ndr
, 4));
5577 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5579 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->blob
));
5580 ndr
->flags
= _flags_save_DATA_BLOB
;
5583 if (ndr_flags
& NDR_BUFFERS
) {
5585 return NDR_ERR_SUCCESS
;
5588 _PUBLIC_
void ndr_print_netr_AccountBuffer(struct ndr_print
*ndr
, const char *name
, const struct netr_AccountBuffer
*r
)
5590 ndr_print_struct(ndr
, name
, "netr_AccountBuffer");
5592 ndr_print_DATA_BLOB(ndr
, "blob", r
->blob
);
5596 static enum ndr_err_code
ndr_push_netr_InfoFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5599 return NDR_ERR_SUCCESS
;
5602 static enum ndr_err_code
ndr_pull_netr_InfoFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5607 return NDR_ERR_SUCCESS
;
5610 _PUBLIC_
void ndr_print_netr_InfoFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5612 ndr_print_uint32(ndr
, name
, r
);
5614 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REPLICATION_NEEDED", NETLOGON_REPLICATION_NEEDED
, r
);
5615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REPLICATION_IN_PROGRESS", NETLOGON_REPLICATION_IN_PROGRESS
, r
);
5616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_FULL_SYNC_REPLICATION", NETLOGON_FULL_SYNC_REPLICATION
, r
);
5617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REDO_NEEDED", NETLOGON_REDO_NEEDED
, r
);
5618 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_HAS_IP", NETLOGON_HAS_IP
, r
);
5619 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_HAS_TIMESERV", NETLOGON_HAS_TIMESERV
, r
);
5620 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_DNS_UPDATE_FAILURE", NETLOGON_DNS_UPDATE_FAILURE
, r
);
5621 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERIFY_STATUS_RETURNED", NETLOGON_VERIFY_STATUS_RETURNED
, r
);
5625 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
)
5627 if (ndr_flags
& NDR_SCALARS
) {
5628 NDR_CHECK(ndr_push_align(ndr
, 4));
5629 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5630 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5632 if (ndr_flags
& NDR_BUFFERS
) {
5634 return NDR_ERR_SUCCESS
;
5637 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5639 if (ndr_flags
& NDR_SCALARS
) {
5640 NDR_CHECK(ndr_pull_align(ndr
, 4));
5641 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5642 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5644 if (ndr_flags
& NDR_BUFFERS
) {
5646 return NDR_ERR_SUCCESS
;
5649 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5651 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5653 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5654 ndr_print_WERROR(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5658 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
)
5660 if (ndr_flags
& NDR_SCALARS
) {
5661 NDR_CHECK(ndr_push_align(ndr
, 4));
5662 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5663 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5664 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5665 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5667 if (ndr_flags
& NDR_BUFFERS
) {
5668 if (r
->trusted_dc_name
) {
5669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5670 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5672 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
));
5675 return NDR_ERR_SUCCESS
;
5678 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5680 uint32_t _ptr_trusted_dc_name
;
5681 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5682 if (ndr_flags
& NDR_SCALARS
) {
5683 NDR_CHECK(ndr_pull_align(ndr
, 4));
5684 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5685 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5686 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5687 if (_ptr_trusted_dc_name
) {
5688 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5690 r
->trusted_dc_name
= NULL
;
5692 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5694 if (ndr_flags
& NDR_BUFFERS
) {
5695 if (r
->trusted_dc_name
) {
5696 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5697 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5698 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5699 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5700 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5701 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
));
5703 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5704 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
));
5705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5708 return NDR_ERR_SUCCESS
;
5711 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5713 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5715 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5716 ndr_print_WERROR(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5717 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5719 if (r
->trusted_dc_name
) {
5720 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5723 ndr_print_WERROR(ndr
, "tc_connection_status", r
->tc_connection_status
);
5727 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
)
5729 if (ndr_flags
& NDR_SCALARS
) {
5730 NDR_CHECK(ndr_push_align(ndr
, 4));
5731 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5739 if (ndr_flags
& NDR_BUFFERS
) {
5741 return NDR_ERR_SUCCESS
;
5744 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5746 if (ndr_flags
& NDR_SCALARS
) {
5747 NDR_CHECK(ndr_pull_align(ndr
, 4));
5748 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5750 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5751 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5753 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5756 if (ndr_flags
& NDR_BUFFERS
) {
5758 return NDR_ERR_SUCCESS
;
5761 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5763 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5765 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5766 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5767 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5768 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5769 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5770 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5771 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5775 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_4(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_4
*r
)
5777 if (ndr_flags
& NDR_SCALARS
) {
5778 NDR_CHECK(ndr_push_align(ndr
, 4));
5779 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain_name
));
5782 if (ndr_flags
& NDR_BUFFERS
) {
5783 if (r
->trusted_dc_name
) {
5784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5787 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
));
5789 if (r
->trusted_domain_name
) {
5790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5793 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_domain_name
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5796 return NDR_ERR_SUCCESS
;
5799 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_4
*r
)
5801 uint32_t _ptr_trusted_dc_name
;
5802 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5803 uint32_t _ptr_trusted_domain_name
;
5804 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
5805 if (ndr_flags
& NDR_SCALARS
) {
5806 NDR_CHECK(ndr_pull_align(ndr
, 4));
5807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5808 if (_ptr_trusted_dc_name
) {
5809 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5811 r
->trusted_dc_name
= NULL
;
5813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
5814 if (_ptr_trusted_domain_name
) {
5815 NDR_PULL_ALLOC(ndr
, r
->trusted_domain_name
);
5817 r
->trusted_domain_name
= NULL
;
5820 if (ndr_flags
& NDR_BUFFERS
) {
5821 if (r
->trusted_dc_name
) {
5822 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5823 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5824 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5825 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5826 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5827 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
));
5829 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5830 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
));
5831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5833 if (r
->trusted_domain_name
) {
5834 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5835 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain_name
, 0);
5836 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domain_name
));
5837 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_domain_name
));
5838 if (ndr_get_array_length(ndr
, &r
->trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->trusted_domain_name
)) {
5839 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_domain_name
), ndr_get_array_length(ndr
, &r
->trusted_domain_name
));
5841 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_domain_name
), sizeof(uint16_t)));
5842 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_domain_name
, ndr_get_array_length(ndr
, &r
->trusted_domain_name
), sizeof(uint16_t), CH_UTF16
));
5843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
5846 return NDR_ERR_SUCCESS
;
5849 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_4
*r
)
5851 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_4");
5853 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5855 if (r
->trusted_dc_name
) {
5856 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5859 ndr_print_ptr(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5861 if (r
->trusted_domain_name
) {
5862 ndr_print_string(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5868 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
)
5870 if (ndr_flags
& NDR_SCALARS
) {
5871 int level
= ndr_push_get_switch_value(ndr
, r
);
5872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5875 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5879 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5883 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5887 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5895 if (ndr_flags
& NDR_BUFFERS
) {
5896 int level
= ndr_push_get_switch_value(ndr
, r
);
5900 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5906 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5912 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5918 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5927 return NDR_ERR_SUCCESS
;
5930 static enum ndr_err_code
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5934 TALLOC_CTX
*_mem_save_info1_0
;
5935 TALLOC_CTX
*_mem_save_info2_0
;
5936 TALLOC_CTX
*_mem_save_info3_0
;
5937 TALLOC_CTX
*_mem_save_info4_0
;
5938 level
= ndr_pull_get_switch_value(ndr
, r
);
5939 if (ndr_flags
& NDR_SCALARS
) {
5940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5941 if (_level
!= level
) {
5942 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5946 uint32_t _ptr_info1
;
5947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5949 NDR_PULL_ALLOC(ndr
, r
->info1
);
5956 uint32_t _ptr_info2
;
5957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5959 NDR_PULL_ALLOC(ndr
, r
->info2
);
5966 uint32_t _ptr_info3
;
5967 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5969 NDR_PULL_ALLOC(ndr
, r
->info3
);
5976 uint32_t _ptr_info4
;
5977 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5979 NDR_PULL_ALLOC(ndr
, r
->info4
);
5990 if (ndr_flags
& NDR_BUFFERS
) {
5994 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5995 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5996 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6003 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6004 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6005 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6012 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6013 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6014 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
6015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6021 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6022 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6023 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6024 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6033 return NDR_ERR_SUCCESS
;
6036 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
6039 level
= ndr_print_get_switch_value(ndr
, r
);
6040 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
6043 ndr_print_ptr(ndr
, "info1", r
->info1
);
6046 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
6052 ndr_print_ptr(ndr
, "info2", r
->info2
);
6055 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
6061 ndr_print_ptr(ndr
, "info3", r
->info3
);
6064 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
6070 ndr_print_ptr(ndr
, "info4", r
->info4
);
6073 ndr_print_netr_NETLOGON_INFO_4(ndr
, "info4", r
->info4
);
6084 static enum ndr_err_code
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
6086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6087 return NDR_ERR_SUCCESS
;
6090 static enum ndr_err_code
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
6093 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6095 return NDR_ERR_SUCCESS
;
6098 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
6100 const char *val
= NULL
;
6103 case NETLOGON_CONTROL_QUERY
: val
= "NETLOGON_CONTROL_QUERY"; break;
6104 case NETLOGON_CONTROL_REPLICATE
: val
= "NETLOGON_CONTROL_REPLICATE"; break;
6105 case NETLOGON_CONTROL_SYNCHRONIZE
: val
= "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6106 case NETLOGON_CONTROL_PDC_REPLICATE
: val
= "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6107 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
6108 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
6109 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6110 case NETLOGON_CONTROL_FIND_USER
: val
= "NETLOGON_CONTROL_FIND_USER"; break;
6111 case NETLOGON_CONTROL_CHANGE_PASSWORD
: val
= "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6112 case NETLOGON_CONTROL_TC_VERIFY
: val
= "NETLOGON_CONTROL_TC_VERIFY"; break;
6113 case NETLOGON_CONTROL_FORCE_DNS_REG
: val
= "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6114 case NETLOGON_CONTROL_QUERY_DNS_REG
: val
= "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6115 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG
: val
= "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6116 case NETLOGON_CONTROL_TRUNCATE_LOG
: val
= "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6117 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
6118 case NETLOGON_CONTROL_BREAKPOINT
: val
= "NETLOGON_CONTROL_BREAKPOINT"; break;
6120 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6123 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
)
6125 if (ndr_flags
& NDR_SCALARS
) {
6126 int level
= ndr_push_get_switch_value(ndr
, r
);
6127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6129 case NETLOGON_CONTROL_REDISCOVER
: {
6130 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6133 case NETLOGON_CONTROL_TC_QUERY
: {
6134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6137 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6138 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6141 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6142 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6145 case NETLOGON_CONTROL_TC_VERIFY
: {
6146 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6149 case NETLOGON_CONTROL_FIND_USER
: {
6150 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
6153 case NETLOGON_CONTROL_SET_DBFLAG
: {
6154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
6162 if (ndr_flags
& NDR_BUFFERS
) {
6163 int level
= ndr_push_get_switch_value(ndr
, r
);
6165 case NETLOGON_CONTROL_REDISCOVER
:
6167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6174 case NETLOGON_CONTROL_TC_QUERY
:
6176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6179 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6183 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6186 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6187 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6188 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6192 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6197 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6201 case NETLOGON_CONTROL_TC_VERIFY
:
6203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6206 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6210 case NETLOGON_CONTROL_FIND_USER
:
6212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6215 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6219 case NETLOGON_CONTROL_SET_DBFLAG
:
6227 return NDR_ERR_SUCCESS
;
6230 static enum ndr_err_code
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
6234 TALLOC_CTX
*_mem_save_domain_0
;
6235 TALLOC_CTX
*_mem_save_user_0
;
6236 level
= ndr_pull_get_switch_value(ndr
, r
);
6237 if (ndr_flags
& NDR_SCALARS
) {
6238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6239 if (_level
!= level
) {
6240 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6243 case NETLOGON_CONTROL_REDISCOVER
: {
6244 uint32_t _ptr_domain
;
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6247 NDR_PULL_ALLOC(ndr
, r
->domain
);
6253 case NETLOGON_CONTROL_TC_QUERY
: {
6254 uint32_t _ptr_domain
;
6255 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6257 NDR_PULL_ALLOC(ndr
, r
->domain
);
6263 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6264 uint32_t _ptr_domain
;
6265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6267 NDR_PULL_ALLOC(ndr
, r
->domain
);
6273 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6274 uint32_t _ptr_domain
;
6275 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6277 NDR_PULL_ALLOC(ndr
, r
->domain
);
6283 case NETLOGON_CONTROL_TC_VERIFY
: {
6284 uint32_t _ptr_domain
;
6285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6287 NDR_PULL_ALLOC(ndr
, r
->domain
);
6293 case NETLOGON_CONTROL_FIND_USER
: {
6295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
6297 NDR_PULL_ALLOC(ndr
, r
->user
);
6303 case NETLOGON_CONTROL_SET_DBFLAG
: {
6304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
6312 if (ndr_flags
& NDR_BUFFERS
) {
6314 case NETLOGON_CONTROL_REDISCOVER
:
6316 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6317 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6318 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6319 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6320 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6321 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
));
6323 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6324 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6325 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6329 case NETLOGON_CONTROL_TC_QUERY
:
6331 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6332 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6333 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6334 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6335 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6336 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
));
6338 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6339 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6344 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6346 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6347 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6349 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6350 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6351 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
));
6353 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6359 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6361 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6362 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6365 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6366 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
));
6368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6369 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6374 case NETLOGON_CONTROL_TC_VERIFY
:
6376 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6377 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6380 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6381 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
));
6383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6389 case NETLOGON_CONTROL_FIND_USER
:
6391 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6392 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
6393 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
6394 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
6395 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
6396 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user
), ndr_get_array_length(ndr
, &r
->user
));
6398 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
6399 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
6400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
6404 case NETLOGON_CONTROL_SET_DBFLAG
:
6412 return NDR_ERR_SUCCESS
;
6415 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
6418 level
= ndr_print_get_switch_value(ndr
, r
);
6419 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
6421 case NETLOGON_CONTROL_REDISCOVER
:
6422 ndr_print_ptr(ndr
, "domain", r
->domain
);
6425 ndr_print_string(ndr
, "domain", r
->domain
);
6430 case NETLOGON_CONTROL_TC_QUERY
:
6431 ndr_print_ptr(ndr
, "domain", r
->domain
);
6434 ndr_print_string(ndr
, "domain", r
->domain
);
6439 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6440 ndr_print_ptr(ndr
, "domain", r
->domain
);
6443 ndr_print_string(ndr
, "domain", r
->domain
);
6448 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6449 ndr_print_ptr(ndr
, "domain", r
->domain
);
6452 ndr_print_string(ndr
, "domain", r
->domain
);
6457 case NETLOGON_CONTROL_TC_VERIFY
:
6458 ndr_print_ptr(ndr
, "domain", r
->domain
);
6461 ndr_print_string(ndr
, "domain", r
->domain
);
6466 case NETLOGON_CONTROL_FIND_USER
:
6467 ndr_print_ptr(ndr
, "user", r
->user
);
6470 ndr_print_string(ndr
, "user", r
->user
);
6475 case NETLOGON_CONTROL_SET_DBFLAG
:
6476 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
6485 _PUBLIC_
enum ndr_err_code
ndr_push_netr_NegotiateFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6488 return NDR_ERR_SUCCESS
;
6491 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_NegotiateFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6494 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6496 return NDR_ERR_SUCCESS
;
6499 _PUBLIC_
void ndr_print_netr_NegotiateFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6501 ndr_print_uint32(ndr
, name
, r
);
6503 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT
, r
);
6504 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL
, r
);
6505 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR
, r
);
6506 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT
, r
);
6507 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC
, r
);
6508 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL
, r
);
6509 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS
, r
);
6510 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO
, r
);
6511 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL
, r
);
6512 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC
, r
);
6513 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH
, r
);
6514 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC
, r
);
6515 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL
, r
);
6516 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL
, r
);
6517 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS
, r
);
6518 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS
, r
);
6519 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS
, r
);
6520 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2
, r
);
6521 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO
, r
);
6522 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS
, r
);
6523 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION
, r
);
6524 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH
, r
);
6525 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2
, r
);
6526 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES", NETLOGON_NEG_SUPPORTS_AES
, r
);
6527 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS
, r
);
6528 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC
, r
);
6532 static enum ndr_err_code
ndr_push_SyncStateEnum(struct ndr_push
*ndr
, int ndr_flags
, enum SyncStateEnum r
)
6534 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6535 return NDR_ERR_SUCCESS
;
6538 static enum ndr_err_code
ndr_pull_SyncStateEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum SyncStateEnum
*r
)
6541 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6543 return NDR_ERR_SUCCESS
;
6546 _PUBLIC_
void ndr_print_SyncStateEnum(struct ndr_print
*ndr
, const char *name
, enum SyncStateEnum r
)
6548 const char *val
= NULL
;
6551 case SYNCSTATE_NORMAL_STATE
: val
= "SYNCSTATE_NORMAL_STATE"; break;
6552 case SYNCSTATE_DOMAIN_STATE
: val
= "SYNCSTATE_DOMAIN_STATE"; break;
6553 case SYNCSTATE_GROUP_STATE
: val
= "SYNCSTATE_GROUP_STATE"; break;
6554 case SYNCSTATE_UAS_BUILT_IN_GROUP_STATE
: val
= "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE"; break;
6555 case SYNCSTATE_USER_STATE
: val
= "SYNCSTATE_USER_STATE"; break;
6556 case SYNCSTATE_GROUP_MEMBER_STATE
: val
= "SYNCSTATE_GROUP_MEMBER_STATE"; break;
6557 case SYNCSTATE_ALIAS_STATE
: val
= "SYNCSTATE_ALIAS_STATE"; break;
6558 case SYNCSTATE_ALIAS_MEMBER_STATE
: val
= "SYNCSTATE_ALIAS_MEMBER_STATE"; break;
6559 case SYNCSTATE_SAM_DONE_STATE
: val
= "SYNCSTATE_SAM_DONE_STATE"; break;
6561 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6564 static enum ndr_err_code
ndr_push_netr_ChangeLogFlags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
6566 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6567 return NDR_ERR_SUCCESS
;
6570 static enum ndr_err_code
ndr_pull_netr_ChangeLogFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
6573 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6575 return NDR_ERR_SUCCESS
;
6578 _PUBLIC_
void ndr_print_netr_ChangeLogFlags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
6580 ndr_print_uint16(ndr
, name
, r
);
6582 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED
, r
);
6583 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD
, r
);
6584 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED
, r
);
6585 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED
, r
);
6586 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ
, r
);
6590 static enum ndr_err_code
ndr_push_netr_ChangeLogObject(struct ndr_push
*ndr
, int ndr_flags
, const union netr_ChangeLogObject
*r
)
6592 if (ndr_flags
& NDR_SCALARS
) {
6593 int level
= ndr_push_get_switch_value(ndr
, r
);
6595 case NETR_CHANGELOG_SID_INCLUDED
: {
6596 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6599 case NETR_CHANGELOG_NAME_INCLUDED
: {
6601 uint32_t _flags_save_string
= ndr
->flags
;
6602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6603 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->object_name
));
6604 ndr
->flags
= _flags_save_string
;
6613 if (ndr_flags
& NDR_BUFFERS
) {
6614 int level
= ndr_push_get_switch_value(ndr
, r
);
6616 case NETR_CHANGELOG_SID_INCLUDED
:
6619 case NETR_CHANGELOG_NAME_INCLUDED
:
6627 return NDR_ERR_SUCCESS
;
6630 static enum ndr_err_code
ndr_pull_netr_ChangeLogObject(struct ndr_pull
*ndr
, int ndr_flags
, union netr_ChangeLogObject
*r
)
6633 level
= ndr_pull_get_switch_value(ndr
, r
);
6634 if (ndr_flags
& NDR_SCALARS
) {
6636 case NETR_CHANGELOG_SID_INCLUDED
: {
6637 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6640 case NETR_CHANGELOG_NAME_INCLUDED
: {
6642 uint32_t _flags_save_string
= ndr
->flags
;
6643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6644 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->object_name
));
6645 ndr
->flags
= _flags_save_string
;
6654 if (ndr_flags
& NDR_BUFFERS
) {
6656 case NETR_CHANGELOG_SID_INCLUDED
:
6659 case NETR_CHANGELOG_NAME_INCLUDED
:
6667 return NDR_ERR_SUCCESS
;
6670 _PUBLIC_
void ndr_print_netr_ChangeLogObject(struct ndr_print
*ndr
, const char *name
, const union netr_ChangeLogObject
*r
)
6673 level
= ndr_print_get_switch_value(ndr
, r
);
6674 ndr_print_union(ndr
, name
, level
, "netr_ChangeLogObject");
6676 case NETR_CHANGELOG_SID_INCLUDED
:
6677 ndr_print_dom_sid(ndr
, "object_sid", &r
->object_sid
);
6680 case NETR_CHANGELOG_NAME_INCLUDED
:
6681 ndr_print_string(ndr
, "object_name", r
->object_name
);
6690 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ChangeLogEntry(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChangeLogEntry
*r
)
6692 if (ndr_flags
& NDR_SCALARS
) {
6693 NDR_CHECK(ndr_push_align(ndr
, 4));
6694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number1
));
6695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number2
));
6696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_rid
));
6697 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, r
->flags
));
6698 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, r
->db_index
));
6699 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, r
->delta_type
));
6700 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6701 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6703 if (ndr_flags
& NDR_BUFFERS
) {
6704 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6706 return NDR_ERR_SUCCESS
;
6709 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ChangeLogEntry(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChangeLogEntry
*r
)
6711 if (ndr_flags
& NDR_SCALARS
) {
6712 NDR_CHECK(ndr_pull_align(ndr
, 4));
6713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number1
));
6714 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number2
));
6715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_rid
));
6716 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6717 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, &r
->db_index
));
6718 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, &r
->delta_type
));
6719 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6720 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6722 if (ndr_flags
& NDR_BUFFERS
) {
6723 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6725 return NDR_ERR_SUCCESS
;
6728 _PUBLIC_
void ndr_print_netr_ChangeLogEntry(struct ndr_print
*ndr
, const char *name
, const struct netr_ChangeLogEntry
*r
)
6730 ndr_print_struct(ndr
, name
, "netr_ChangeLogEntry");
6732 ndr_print_uint32(ndr
, "serial_number1", r
->serial_number1
);
6733 ndr_print_uint32(ndr
, "serial_number2", r
->serial_number2
);
6734 ndr_print_uint32(ndr
, "object_rid", r
->object_rid
);
6735 ndr_print_netr_ChangeLogFlags(ndr
, "flags", r
->flags
);
6736 ndr_print_netr_SamDatabaseID8Bit(ndr
, "db_index", r
->db_index
);
6737 ndr_print_netr_DeltaEnum8Bit(ndr
, "delta_type", r
->delta_type
);
6738 ndr_print_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
));
6739 ndr_print_netr_ChangeLogObject(ndr
, "object", &r
->object
);
6743 _PUBLIC_
size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry
*r
, struct smb_iconv_convenience
*ic
, int flags
)
6745 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_netr_ChangeLogEntry
, ic
);
6748 static enum ndr_err_code
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
6750 if (ndr_flags
& NDR_SCALARS
) {
6751 NDR_CHECK(ndr_push_align(ndr
, 4));
6752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6753 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6755 if (ndr_flags
& NDR_BUFFERS
) {
6757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6758 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6761 return NDR_ERR_SUCCESS
;
6764 static enum ndr_err_code
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6767 TALLOC_CTX
*_mem_save_data_0
;
6768 if (ndr_flags
& NDR_SCALARS
) {
6769 NDR_CHECK(ndr_pull_align(ndr
, 4));
6770 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6771 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6773 NDR_PULL_ALLOC(ndr
, r
->data
);
6778 if (ndr_flags
& NDR_BUFFERS
) {
6780 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6781 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6782 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6783 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6784 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
6785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6788 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6791 return NDR_ERR_SUCCESS
;
6794 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6796 ndr_print_struct(ndr
, name
, "netr_Blob");
6798 ndr_print_uint32(ndr
, "length", r
->length
);
6799 ndr_print_ptr(ndr
, "data", r
->data
);
6802 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6808 static enum ndr_err_code
ndr_push_netr_DsRGetDCName_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6811 return NDR_ERR_SUCCESS
;
6814 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6819 return NDR_ERR_SUCCESS
;
6822 _PUBLIC_
void ndr_print_netr_DsRGetDCName_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6824 ndr_print_uint32(ndr
, name
, r
);
6826 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY
, r
);
6827 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED
, r
);
6828 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED
, r
);
6829 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED
, r
);
6830 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED
, r
);
6831 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY
, r
);
6832 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED
, r
);
6833 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED
, r
);
6834 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED
, r
);
6835 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED
, r
);
6836 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED
, r
);
6837 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF
, r
);
6838 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED
, r
);
6839 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME
, r
);
6840 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME
, r
);
6841 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE
, r
);
6842 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED
, r
);
6843 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WEB_SERVICE_REQUIRED", DS_WEB_SERVICE_REQUIRED
, r
);
6844 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME
, r
);
6845 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME
, r
);
6849 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType r
)
6851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6852 return NDR_ERR_SUCCESS
;
6855 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType
*r
)
6858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6860 return NDR_ERR_SUCCESS
;
6863 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print
*ndr
, const char *name
, enum netr_DsRGetDCNameInfo_AddressType r
)
6865 const char *val
= NULL
;
6868 case DS_ADDRESS_TYPE_INET
: val
= "DS_ADDRESS_TYPE_INET"; break;
6869 case DS_ADDRESS_TYPE_NETBIOS
: val
= "DS_ADDRESS_TYPE_NETBIOS"; break;
6871 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6874 static enum ndr_err_code
ndr_push_netr_DsR_DcFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6877 return NDR_ERR_SUCCESS
;
6880 static enum ndr_err_code
ndr_pull_netr_DsR_DcFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6885 return NDR_ERR_SUCCESS
;
6888 _PUBLIC_
void ndr_print_netr_DsR_DcFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6890 ndr_print_uint32(ndr
, name
, r
);
6892 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC
, r
);
6893 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC
, r
);
6894 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP
, r
);
6895 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS
, r
);
6896 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC
, r
);
6897 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV
, r
);
6898 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST
, r
);
6899 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE
, r
);
6900 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV
, r
);
6901 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC
, r
);
6902 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
6903 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6
, r
);
6904 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER
, r
);
6905 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN
, r
);
6906 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST
, r
);
6910 _PUBLIC_
enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
6912 if (ndr_flags
& NDR_SCALARS
) {
6913 NDR_CHECK(ndr_push_align(ndr
, 4));
6914 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
6915 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
6916 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, r
->dc_address_type
));
6917 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6918 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6919 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
6920 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, r
->dc_flags
));
6921 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
6922 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
6924 if (ndr_flags
& NDR_BUFFERS
) {
6926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6929 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6931 if (r
->dc_address
) {
6932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6935 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6937 if (r
->domain_name
) {
6938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6941 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6943 if (r
->forest_name
) {
6944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6947 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6949 if (r
->dc_site_name
) {
6950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6953 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
));
6955 if (r
->client_site_name
) {
6956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6959 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
));
6962 return NDR_ERR_SUCCESS
;
6965 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
6967 uint32_t _ptr_dc_unc
;
6968 TALLOC_CTX
*_mem_save_dc_unc_0
;
6969 uint32_t _ptr_dc_address
;
6970 TALLOC_CTX
*_mem_save_dc_address_0
;
6971 uint32_t _ptr_domain_name
;
6972 TALLOC_CTX
*_mem_save_domain_name_0
;
6973 uint32_t _ptr_forest_name
;
6974 TALLOC_CTX
*_mem_save_forest_name_0
;
6975 uint32_t _ptr_dc_site_name
;
6976 TALLOC_CTX
*_mem_save_dc_site_name_0
;
6977 uint32_t _ptr_client_site_name
;
6978 TALLOC_CTX
*_mem_save_client_site_name_0
;
6979 if (ndr_flags
& NDR_SCALARS
) {
6980 NDR_CHECK(ndr_pull_align(ndr
, 4));
6981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
6983 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
6987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
6988 if (_ptr_dc_address
) {
6989 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
6991 r
->dc_address
= NULL
;
6993 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
6994 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6995 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
6996 if (_ptr_domain_name
) {
6997 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
6999 r
->domain_name
= NULL
;
7001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
7002 if (_ptr_forest_name
) {
7003 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
7005 r
->forest_name
= NULL
;
7007 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, &r
->dc_flags
));
7008 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
7009 if (_ptr_dc_site_name
) {
7010 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
7012 r
->dc_site_name
= NULL
;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
7015 if (_ptr_client_site_name
) {
7016 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
7018 r
->client_site_name
= NULL
;
7021 if (ndr_flags
& NDR_BUFFERS
) {
7023 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7024 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
7025 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
7026 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
7027 if (ndr_get_array_length(ndr
, &r
->dc_unc
) > ndr_get_array_size(ndr
, &r
->dc_unc
)) {
7028 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
));
7030 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t)));
7031 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t), CH_UTF16
));
7032 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
7034 if (r
->dc_address
) {
7035 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7036 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
7037 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
7038 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
7039 if (ndr_get_array_length(ndr
, &r
->dc_address
) > ndr_get_array_size(ndr
, &r
->dc_address
)) {
7040 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
));
7042 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t)));
7043 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t), CH_UTF16
));
7044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
7046 if (r
->domain_name
) {
7047 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7048 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
7049 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
7050 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
7051 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
7052 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
));
7054 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
7055 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
7056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
7058 if (r
->forest_name
) {
7059 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7060 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
7061 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
7062 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
7063 if (ndr_get_array_length(ndr
, &r
->forest_name
) > ndr_get_array_size(ndr
, &r
->forest_name
)) {
7064 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
));
7066 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t)));
7067 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t), CH_UTF16
));
7068 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
7070 if (r
->dc_site_name
) {
7071 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7072 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
7073 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
7074 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
7075 if (ndr_get_array_length(ndr
, &r
->dc_site_name
) > ndr_get_array_size(ndr
, &r
->dc_site_name
)) {
7076 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
));
7078 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t)));
7079 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
));
7080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
7082 if (r
->client_site_name
) {
7083 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7084 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
7085 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
7086 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
7087 if (ndr_get_array_length(ndr
, &r
->client_site_name
) > ndr_get_array_size(ndr
, &r
->client_site_name
)) {
7088 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
));
7090 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t)));
7091 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
));
7092 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
7095 return NDR_ERR_SUCCESS
;
7098 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
7100 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
7102 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
7105 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
7108 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
7110 if (r
->dc_address
) {
7111 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
7114 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr
, "dc_address_type", r
->dc_address_type
);
7115 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
7116 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
7118 if (r
->domain_name
) {
7119 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
7122 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
7124 if (r
->forest_name
) {
7125 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
7128 ndr_print_netr_DsR_DcFlags(ndr
, "dc_flags", r
->dc_flags
);
7129 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
7131 if (r
->dc_site_name
) {
7132 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
7135 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
7137 if (r
->client_site_name
) {
7138 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
7144 static enum ndr_err_code
ndr_push_netr_Capabilities(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Capabilities
*r
)
7146 if (ndr_flags
& NDR_SCALARS
) {
7147 int level
= ndr_push_get_switch_value(ndr
, r
);
7148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7151 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->server_capabilities
));
7155 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7158 if (ndr_flags
& NDR_BUFFERS
) {
7159 int level
= ndr_push_get_switch_value(ndr
, r
);
7165 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7168 return NDR_ERR_SUCCESS
;
7171 static enum ndr_err_code
ndr_pull_netr_Capabilities(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Capabilities
*r
)
7175 level
= ndr_pull_get_switch_value(ndr
, r
);
7176 if (ndr_flags
& NDR_SCALARS
) {
7177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7178 if (_level
!= level
) {
7179 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7183 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->server_capabilities
));
7187 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7190 if (ndr_flags
& NDR_BUFFERS
) {
7196 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7199 return NDR_ERR_SUCCESS
;
7202 _PUBLIC_
void ndr_print_netr_Capabilities(struct ndr_print
*ndr
, const char *name
, const union netr_Capabilities
*r
)
7205 level
= ndr_print_get_switch_value(ndr
, r
);
7206 ndr_print_union(ndr
, name
, level
, "netr_Capabilities");
7209 ndr_print_netr_NegotiateFlags(ndr
, "server_capabilities", r
->server_capabilities
);
7213 ndr_print_bad_level(ndr
, name
, level
);
7217 static enum ndr_err_code
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7220 return NDR_ERR_SUCCESS
;
7223 static enum ndr_err_code
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7228 return NDR_ERR_SUCCESS
;
7231 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7233 ndr_print_uint32(ndr
, name
, r
);
7235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5
, r
);
7242 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES
, r
);
7246 static enum ndr_err_code
ndr_push_netr_WorkstationFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7249 return NDR_ERR_SUCCESS
;
7252 static enum ndr_err_code
ndr_pull_netr_WorkstationFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7257 return NDR_ERR_SUCCESS
;
7260 _PUBLIC_
void ndr_print_netr_WorkstationFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7262 ndr_print_uint32(ndr
, name
, r
);
7264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS
, r
);
7265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE
, r
);
7269 static enum ndr_err_code
ndr_push_netr_SuiteMask(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
7271 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
7272 return NDR_ERR_SUCCESS
;
7275 static enum ndr_err_code
ndr_pull_netr_SuiteMask(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
7278 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
7280 return NDR_ERR_SUCCESS
;
7283 _PUBLIC_
void ndr_print_netr_SuiteMask(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
7285 ndr_print_uint16(ndr
, name
, r
);
7287 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE
, r
);
7288 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE
, r
);
7289 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER
, r
);
7290 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER
, r
);
7291 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE
, r
);
7292 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT
, r
);
7293 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL
, r
);
7294 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS
, r
);
7295 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS
, r
);
7296 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED
, r
);
7297 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER
, r
);
7298 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL
, r
);
7299 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER
, r
);
7303 static enum ndr_err_code
ndr_push_netr_ProductType(struct ndr_push
*ndr
, int ndr_flags
, uint8_t r
)
7305 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
7306 return NDR_ERR_SUCCESS
;
7309 static enum ndr_err_code
ndr_pull_netr_ProductType(struct ndr_pull
*ndr
, int ndr_flags
, uint8_t *r
)
7312 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
7314 return NDR_ERR_SUCCESS
;
7317 _PUBLIC_
void ndr_print_netr_ProductType(struct ndr_print
*ndr
, const char *name
, uint8_t r
)
7319 ndr_print_uint8(ndr
, name
, r
);
7321 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER
, r
);
7322 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER
, r
);
7323 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION
, r
);
7327 static enum ndr_err_code
ndr_push_netr_LsaPolicyInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LsaPolicyInformation
*r
)
7329 if (ndr_flags
& NDR_SCALARS
) {
7330 NDR_CHECK(ndr_push_align(ndr
, 4));
7331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7332 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
7334 if (ndr_flags
& NDR_BUFFERS
) {
7336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7337 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, r
->policy_size
));
7340 return NDR_ERR_SUCCESS
;
7343 static enum ndr_err_code
ndr_pull_netr_LsaPolicyInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LsaPolicyInformation
*r
)
7345 uint32_t _ptr_policy
;
7346 TALLOC_CTX
*_mem_save_policy_0
;
7347 if (ndr_flags
& NDR_SCALARS
) {
7348 NDR_CHECK(ndr_pull_align(ndr
, 4));
7349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->policy_size
));
7350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
7352 NDR_PULL_ALLOC(ndr
, r
->policy
);
7357 if (ndr_flags
& NDR_BUFFERS
) {
7359 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7360 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
7361 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->policy
));
7362 NDR_PULL_ALLOC_N(ndr
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
));
7363 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
)));
7364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
7367 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->policy
, r
->policy_size
));
7370 return NDR_ERR_SUCCESS
;
7373 _PUBLIC_
void ndr_print_netr_LsaPolicyInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_LsaPolicyInformation
*r
)
7375 ndr_print_struct(ndr
, name
, "netr_LsaPolicyInformation");
7377 ndr_print_uint32(ndr
, "policy_size", r
->policy_size
);
7378 ndr_print_ptr(ndr
, "policy", r
->policy
);
7381 ndr_print_array_uint8(ndr
, "policy", r
->policy
, r
->policy_size
);
7387 static enum ndr_err_code
ndr_push_netr_OsVersionInfoEx(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionInfoEx
*r
)
7389 if (ndr_flags
& NDR_SCALARS
) {
7390 NDR_CHECK(ndr_push_align(ndr
, 4));
7391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 284));
7392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MajorVersion
));
7393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MinorVersion
));
7394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->BuildNumber
));
7395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->PlatformId
));
7397 uint32_t _flags_save_string
= ndr
->flags
;
7398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7400 struct ndr_push
*_ndr_CSDVersion
;
7401 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_CSDVersion
, 0, 256));
7402 NDR_CHECK(ndr_push_string(_ndr_CSDVersion
, NDR_SCALARS
, r
->CSDVersion
));
7403 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_CSDVersion
, 0, 256));
7405 ndr
->flags
= _flags_save_string
;
7407 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMajor
));
7408 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMinor
));
7409 NDR_CHECK(ndr_push_netr_SuiteMask(ndr
, NDR_SCALARS
, r
->SuiteMask
));
7410 NDR_CHECK(ndr_push_netr_ProductType(ndr
, NDR_SCALARS
, r
->ProductType
));
7411 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Reserved
));
7413 if (ndr_flags
& NDR_BUFFERS
) {
7415 return NDR_ERR_SUCCESS
;
7418 static enum ndr_err_code
ndr_pull_netr_OsVersionInfoEx(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionInfoEx
*r
)
7420 if (ndr_flags
& NDR_SCALARS
) {
7421 NDR_CHECK(ndr_pull_align(ndr
, 4));
7422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->OSVersionInfoSize
));
7423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MajorVersion
));
7424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MinorVersion
));
7425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->BuildNumber
));
7426 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->PlatformId
));
7428 uint32_t _flags_save_string
= ndr
->flags
;
7429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7431 struct ndr_pull
*_ndr_CSDVersion
;
7432 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_CSDVersion
, 0, 256));
7433 NDR_CHECK(ndr_pull_string(_ndr_CSDVersion
, NDR_SCALARS
, &r
->CSDVersion
));
7434 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_CSDVersion
, 0, 256));
7436 ndr
->flags
= _flags_save_string
;
7438 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMajor
));
7439 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMinor
));
7440 NDR_CHECK(ndr_pull_netr_SuiteMask(ndr
, NDR_SCALARS
, &r
->SuiteMask
));
7441 NDR_CHECK(ndr_pull_netr_ProductType(ndr
, NDR_SCALARS
, &r
->ProductType
));
7442 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Reserved
));
7444 if (ndr_flags
& NDR_BUFFERS
) {
7446 return NDR_ERR_SUCCESS
;
7449 _PUBLIC_
void ndr_print_netr_OsVersionInfoEx(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionInfoEx
*r
)
7451 ndr_print_struct(ndr
, name
, "netr_OsVersionInfoEx");
7453 ndr_print_uint32(ndr
, "OSVersionInfoSize", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?284:r
->OSVersionInfoSize
);
7454 ndr_print_uint32(ndr
, "MajorVersion", r
->MajorVersion
);
7455 ndr_print_uint32(ndr
, "MinorVersion", r
->MinorVersion
);
7456 ndr_print_uint32(ndr
, "BuildNumber", r
->BuildNumber
);
7457 ndr_print_uint32(ndr
, "PlatformId", r
->PlatformId
);
7458 ndr_print_string(ndr
, "CSDVersion", r
->CSDVersion
);
7459 ndr_print_uint16(ndr
, "ServicePackMajor", r
->ServicePackMajor
);
7460 ndr_print_uint16(ndr
, "ServicePackMinor", r
->ServicePackMinor
);
7461 ndr_print_netr_SuiteMask(ndr
, "SuiteMask", r
->SuiteMask
);
7462 ndr_print_netr_ProductType(ndr
, "ProductType", r
->ProductType
);
7463 ndr_print_uint8(ndr
, "Reserved", r
->Reserved
);
7467 static enum ndr_err_code
ndr_push_netr_OsVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersion
*r
)
7469 if (ndr_flags
& NDR_SCALARS
) {
7470 NDR_CHECK(ndr_push_align(ndr
, 4));
7471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7474 NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7476 if (ndr_flags
& NDR_BUFFERS
) {
7478 return NDR_ERR_SUCCESS
;
7481 static enum ndr_err_code
ndr_pull_netr_OsVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersion
*r
)
7483 if (ndr_flags
& NDR_SCALARS
) {
7484 NDR_CHECK(ndr_pull_align(ndr
, 4));
7485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7487 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7488 NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7490 if (ndr_flags
& NDR_BUFFERS
) {
7492 return NDR_ERR_SUCCESS
;
7495 _PUBLIC_
void ndr_print_netr_OsVersion(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersion
*r
)
7497 ndr_print_struct(ndr
, name
, "netr_OsVersion");
7499 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->length
);
7500 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7501 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->size
);
7502 ndr_print_netr_OsVersionInfoEx(ndr
, "os", &r
->os
);
7506 static enum ndr_err_code
ndr_push_netr_OsVersionContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionContainer
*r
)
7508 if (ndr_flags
& NDR_SCALARS
) {
7509 NDR_CHECK(ndr_push_align(ndr
, 4));
7510 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7511 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->os
));
7514 if (ndr_flags
& NDR_BUFFERS
) {
7516 NDR_CHECK(ndr_push_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7519 return NDR_ERR_SUCCESS
;
7522 static enum ndr_err_code
ndr_pull_netr_OsVersionContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionContainer
*r
)
7525 TALLOC_CTX
*_mem_save_os_0
;
7526 if (ndr_flags
& NDR_SCALARS
) {
7527 NDR_CHECK(ndr_pull_align(ndr
, 4));
7528 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
7529 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
7530 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_os
));
7532 NDR_PULL_ALLOC(ndr
, r
->os
);
7537 if (ndr_flags
& NDR_BUFFERS
) {
7539 _mem_save_os_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7540 NDR_PULL_SET_MEM_CTX(ndr
, r
->os
, 0);
7541 NDR_CHECK(ndr_pull_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_os_0
, 0);
7545 return NDR_ERR_SUCCESS
;
7548 _PUBLIC_
void ndr_print_netr_OsVersionContainer(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionContainer
*r
)
7550 ndr_print_struct(ndr
, name
, "netr_OsVersionContainer");
7552 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->length
);
7553 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->size
);
7554 ndr_print_ptr(ndr
, "os", r
->os
);
7557 ndr_print_netr_OsVersion(ndr
, "os", r
->os
);
7563 static enum ndr_err_code
ndr_push_netr_WorkstationInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_WorkstationInformation
*r
)
7565 if (ndr_flags
& NDR_SCALARS
) {
7566 NDR_CHECK(ndr_push_align(ndr
, 4));
7567 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7568 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_hostname
));
7569 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7570 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy1
));
7571 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy2
));
7572 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy3
));
7573 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy4
));
7574 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7575 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7576 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7577 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7578 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
7579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
7580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
7581 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
7583 if (ndr_flags
& NDR_BUFFERS
) {
7584 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7585 if (r
->dns_hostname
) {
7586 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7589 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_hostname
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7595 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sitename
, ndr_charset_length(r
->sitename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7601 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy1
, ndr_charset_length(r
->dummy1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7607 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy2
, ndr_charset_length(r
->dummy2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7613 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy3
, ndr_charset_length(r
->dummy3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7619 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy4
, ndr_charset_length(r
->dummy4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7621 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7622 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7623 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7624 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7626 return NDR_ERR_SUCCESS
;
7629 static enum ndr_err_code
ndr_pull_netr_WorkstationInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_WorkstationInformation
*r
)
7631 uint32_t _ptr_dns_hostname
;
7632 TALLOC_CTX
*_mem_save_dns_hostname_0
;
7633 uint32_t _ptr_sitename
;
7634 TALLOC_CTX
*_mem_save_sitename_0
;
7635 uint32_t _ptr_dummy1
;
7636 TALLOC_CTX
*_mem_save_dummy1_0
;
7637 uint32_t _ptr_dummy2
;
7638 TALLOC_CTX
*_mem_save_dummy2_0
;
7639 uint32_t _ptr_dummy3
;
7640 TALLOC_CTX
*_mem_save_dummy3_0
;
7641 uint32_t _ptr_dummy4
;
7642 TALLOC_CTX
*_mem_save_dummy4_0
;
7643 if (ndr_flags
& NDR_SCALARS
) {
7644 NDR_CHECK(ndr_pull_align(ndr
, 4));
7645 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7646 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_hostname
));
7647 if (_ptr_dns_hostname
) {
7648 NDR_PULL_ALLOC(ndr
, r
->dns_hostname
);
7650 r
->dns_hostname
= NULL
;
7652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
7653 if (_ptr_sitename
) {
7654 NDR_PULL_ALLOC(ndr
, r
->sitename
);
7658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy1
));
7660 NDR_PULL_ALLOC(ndr
, r
->dummy1
);
7664 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy2
));
7666 NDR_PULL_ALLOC(ndr
, r
->dummy2
);
7670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy3
));
7672 NDR_PULL_ALLOC(ndr
, r
->dummy3
);
7676 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy4
));
7678 NDR_PULL_ALLOC(ndr
, r
->dummy4
);
7682 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7683 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7684 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7685 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7686 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
7687 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
7688 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
7689 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
7691 if (ndr_flags
& NDR_BUFFERS
) {
7692 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7693 if (r
->dns_hostname
) {
7694 _mem_save_dns_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7695 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_hostname
, 0);
7696 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_hostname
));
7697 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_hostname
));
7698 if (ndr_get_array_length(ndr
, &r
->dns_hostname
) > ndr_get_array_size(ndr
, &r
->dns_hostname
)) {
7699 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_hostname
), ndr_get_array_length(ndr
, &r
->dns_hostname
));
7701 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t)));
7702 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_hostname
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t), CH_UTF16
));
7703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_hostname_0
, 0);
7706 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7707 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7708 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
7709 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sitename
));
7710 if (ndr_get_array_length(ndr
, &r
->sitename
) > ndr_get_array_size(ndr
, &r
->sitename
)) {
7711 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->sitename
), ndr_get_array_length(ndr
, &r
->sitename
));
7713 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t)));
7714 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sitename
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t), CH_UTF16
));
7715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
7718 _mem_save_dummy1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7719 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy1
, 0);
7720 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy1
));
7721 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy1
));
7722 if (ndr_get_array_length(ndr
, &r
->dummy1
) > ndr_get_array_size(ndr
, &r
->dummy1
)) {
7723 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dummy1
), ndr_get_array_length(ndr
, &r
->dummy1
));
7725 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t)));
7726 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy1
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t), CH_UTF16
));
7727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy1_0
, 0);
7730 _mem_save_dummy2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7731 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy2
, 0);
7732 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy2
));
7733 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy2
));
7734 if (ndr_get_array_length(ndr
, &r
->dummy2
) > ndr_get_array_size(ndr
, &r
->dummy2
)) {
7735 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dummy2
), ndr_get_array_length(ndr
, &r
->dummy2
));
7737 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t)));
7738 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy2
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t), CH_UTF16
));
7739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy2_0
, 0);
7742 _mem_save_dummy3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7743 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy3
, 0);
7744 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy3
));
7745 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy3
));
7746 if (ndr_get_array_length(ndr
, &r
->dummy3
) > ndr_get_array_size(ndr
, &r
->dummy3
)) {
7747 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dummy3
), ndr_get_array_length(ndr
, &r
->dummy3
));
7749 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t)));
7750 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy3
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t), CH_UTF16
));
7751 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy3_0
, 0);
7754 _mem_save_dummy4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7755 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy4
, 0);
7756 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy4
));
7757 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy4
));
7758 if (ndr_get_array_length(ndr
, &r
->dummy4
) > ndr_get_array_size(ndr
, &r
->dummy4
)) {
7759 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dummy4
), ndr_get_array_length(ndr
, &r
->dummy4
));
7761 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t)));
7762 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy4
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t), CH_UTF16
));
7763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy4_0
, 0);
7765 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7766 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7767 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7768 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7770 return NDR_ERR_SUCCESS
;
7773 _PUBLIC_
void ndr_print_netr_WorkstationInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_WorkstationInformation
*r
)
7775 ndr_print_struct(ndr
, name
, "netr_WorkstationInformation");
7777 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
7778 ndr_print_ptr(ndr
, "dns_hostname", r
->dns_hostname
);
7780 if (r
->dns_hostname
) {
7781 ndr_print_string(ndr
, "dns_hostname", r
->dns_hostname
);
7784 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
7787 ndr_print_string(ndr
, "sitename", r
->sitename
);
7790 ndr_print_ptr(ndr
, "dummy1", r
->dummy1
);
7793 ndr_print_string(ndr
, "dummy1", r
->dummy1
);
7796 ndr_print_ptr(ndr
, "dummy2", r
->dummy2
);
7799 ndr_print_string(ndr
, "dummy2", r
->dummy2
);
7802 ndr_print_ptr(ndr
, "dummy3", r
->dummy3
);
7805 ndr_print_string(ndr
, "dummy3", r
->dummy3
);
7808 ndr_print_ptr(ndr
, "dummy4", r
->dummy4
);
7811 ndr_print_string(ndr
, "dummy4", r
->dummy4
);
7814 ndr_print_netr_OsVersionContainer(ndr
, "os_version", &r
->os_version
);
7815 ndr_print_lsa_String(ndr
, "os_name", &r
->os_name
);
7816 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
7817 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
7818 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
7819 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
7820 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
7821 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
7825 static enum ndr_err_code
ndr_push_netr_WorkstationInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_WorkstationInfo
*r
)
7827 if (ndr_flags
& NDR_SCALARS
) {
7828 int level
= ndr_push_get_switch_value(ndr
, r
);
7829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_info
));
7836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
7840 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7843 if (ndr_flags
& NDR_BUFFERS
) {
7844 int level
= ndr_push_get_switch_value(ndr
, r
);
7847 if (r
->workstation_info
) {
7848 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7853 if (r
->lsa_policy_info
) {
7854 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7859 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7862 return NDR_ERR_SUCCESS
;
7865 static enum ndr_err_code
ndr_pull_netr_WorkstationInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_WorkstationInfo
*r
)
7869 TALLOC_CTX
*_mem_save_workstation_info_0
;
7870 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
7871 level
= ndr_pull_get_switch_value(ndr
, r
);
7872 if (ndr_flags
& NDR_SCALARS
) {
7873 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7874 if (_level
!= level
) {
7875 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7879 uint32_t _ptr_workstation_info
;
7880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_info
));
7881 if (_ptr_workstation_info
) {
7882 NDR_PULL_ALLOC(ndr
, r
->workstation_info
);
7884 r
->workstation_info
= NULL
;
7889 uint32_t _ptr_lsa_policy_info
;
7890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
7891 if (_ptr_lsa_policy_info
) {
7892 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
7894 r
->lsa_policy_info
= NULL
;
7899 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7902 if (ndr_flags
& NDR_BUFFERS
) {
7905 if (r
->workstation_info
) {
7906 _mem_save_workstation_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7907 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_info
, 0);
7908 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_info_0
, 0);
7914 if (r
->lsa_policy_info
) {
7915 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7916 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
7917 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
7923 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7926 return NDR_ERR_SUCCESS
;
7929 _PUBLIC_
void ndr_print_netr_WorkstationInfo(struct ndr_print
*ndr
, const char *name
, const union netr_WorkstationInfo
*r
)
7932 level
= ndr_print_get_switch_value(ndr
, r
);
7933 ndr_print_union(ndr
, name
, level
, "netr_WorkstationInfo");
7936 ndr_print_ptr(ndr
, "workstation_info", r
->workstation_info
);
7938 if (r
->workstation_info
) {
7939 ndr_print_netr_WorkstationInformation(ndr
, "workstation_info", r
->workstation_info
);
7945 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7947 if (r
->lsa_policy_info
) {
7948 ndr_print_netr_WorkstationInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7954 ndr_print_bad_level(ndr
, name
, level
);
7958 static enum ndr_err_code
ndr_push_netr_trust_extension(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_trust_extension
*r
)
7960 if (ndr_flags
& NDR_SCALARS
) {
7961 NDR_CHECK(ndr_push_align(ndr
, 4));
7962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7965 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->flags
));
7966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_type
));
7968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7970 if (ndr_flags
& NDR_BUFFERS
) {
7972 return NDR_ERR_SUCCESS
;
7975 static enum ndr_err_code
ndr_pull_netr_trust_extension(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension
*r
)
7977 if (ndr_flags
& NDR_SCALARS
) {
7978 NDR_CHECK(ndr_pull_align(ndr
, 4));
7979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7982 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->flags
));
7983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
7984 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_type
));
7985 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
7987 if (ndr_flags
& NDR_BUFFERS
) {
7989 return NDR_ERR_SUCCESS
;
7992 _PUBLIC_
void ndr_print_netr_trust_extension(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension
*r
)
7994 ndr_print_struct(ndr
, name
, "netr_trust_extension");
7996 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->length
);
7997 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7998 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->size
);
7999 ndr_print_netr_TrustFlags(ndr
, "flags", r
->flags
);
8000 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
8001 ndr_print_uint32(ndr
, "trust_type", r
->trust_type
);
8002 ndr_print_uint32(ndr
, "trust_attributes", r
->trust_attributes
);
8006 static enum ndr_err_code
ndr_push_netr_trust_extension_container(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_trust_extension_container
*r
)
8008 if (ndr_flags
& NDR_SCALARS
) {
8009 NDR_CHECK(ndr_push_align(ndr
, 4));
8010 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
8011 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
8012 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
8014 if (ndr_flags
& NDR_BUFFERS
) {
8016 NDR_CHECK(ndr_push_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
8019 return NDR_ERR_SUCCESS
;
8022 static enum ndr_err_code
ndr_pull_netr_trust_extension_container(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension_container
*r
)
8025 TALLOC_CTX
*_mem_save_info_0
;
8026 if (ndr_flags
& NDR_SCALARS
) {
8027 NDR_CHECK(ndr_pull_align(ndr
, 4));
8028 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
8029 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
8030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
8032 NDR_PULL_ALLOC(ndr
, r
->info
);
8037 if (ndr_flags
& NDR_BUFFERS
) {
8039 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8040 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
8041 NDR_CHECK(ndr_pull_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
8042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
8045 return NDR_ERR_SUCCESS
;
8048 _PUBLIC_
void ndr_print_netr_trust_extension_container(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension_container
*r
)
8050 ndr_print_struct(ndr
, name
, "netr_trust_extension_container");
8052 ndr_print_uint16(ndr
, "length", r
->length
);
8053 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
8054 ndr_print_ptr(ndr
, "info", r
->info
);
8057 ndr_print_netr_trust_extension(ndr
, "info", r
->info
);
8063 static enum ndr_err_code
ndr_push_netr_OneDomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OneDomainInfo
*r
)
8065 if (ndr_flags
& NDR_SCALARS
) {
8066 NDR_CHECK(ndr_push_align(ndr
, 4));
8067 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
8068 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8069 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8070 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8071 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
8072 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8073 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8074 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8075 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8076 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long1
));
8077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
8078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8081 if (ndr_flags
& NDR_BUFFERS
) {
8082 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
8083 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8084 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8085 if (r
->domain_sid
) {
8086 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8088 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8089 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8090 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8091 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8093 return NDR_ERR_SUCCESS
;
8096 static enum ndr_err_code
ndr_pull_netr_OneDomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OneDomainInfo
*r
)
8098 uint32_t _ptr_domain_sid
;
8099 TALLOC_CTX
*_mem_save_domain_sid_0
;
8100 if (ndr_flags
& NDR_SCALARS
) {
8101 NDR_CHECK(ndr_pull_align(ndr
, 4));
8102 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
8103 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8104 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8105 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
8107 if (_ptr_domain_sid
) {
8108 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
8110 r
->domain_sid
= NULL
;
8112 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8113 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8114 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8115 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long1
));
8117 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
8118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8119 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8121 if (ndr_flags
& NDR_BUFFERS
) {
8122 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
8123 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8124 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8125 if (r
->domain_sid
) {
8126 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8127 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
8128 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
8131 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8132 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8133 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8134 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8136 return NDR_ERR_SUCCESS
;
8139 _PUBLIC_
void ndr_print_netr_OneDomainInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_OneDomainInfo
*r
)
8141 ndr_print_struct(ndr
, name
, "netr_OneDomainInfo");
8143 ndr_print_lsa_String(ndr
, "domainname", &r
->domainname
);
8144 ndr_print_lsa_String(ndr
, "dns_domainname", &r
->dns_domainname
);
8145 ndr_print_lsa_String(ndr
, "dns_forestname", &r
->dns_forestname
);
8146 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
8147 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
8149 if (r
->domain_sid
) {
8150 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
8153 ndr_print_netr_trust_extension_container(ndr
, "trust_extension", &r
->trust_extension
);
8154 ndr_print_lsa_String(ndr
, "dummy_string2", &r
->dummy_string2
);
8155 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
8156 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
8157 ndr_print_uint32(ndr
, "dummy_long1", r
->dummy_long1
);
8158 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
8159 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8160 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8164 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SupportedEncTypes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8167 return NDR_ERR_SUCCESS
;
8170 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SupportedEncTypes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8173 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8175 return NDR_ERR_SUCCESS
;
8178 _PUBLIC_
void ndr_print_netr_SupportedEncTypes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8180 ndr_print_uint32(ndr
, name
, r
);
8182 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_CRC32", ENC_CRC32
, r
);
8183 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_RSA_MD5", ENC_RSA_MD5
, r
);
8184 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_RC4_HMAC_MD5", ENC_RC4_HMAC_MD5
, r
);
8185 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES128", ENC_HMAC_SHA1_96_AES128
, r
);
8186 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES256", ENC_HMAC_SHA1_96_AES256
, r
);
8190 static enum ndr_err_code
ndr_push_netr_DomainInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInformation
*r
)
8192 uint32_t cntr_trusted_domains_1
;
8193 if (ndr_flags
& NDR_SCALARS
) {
8194 NDR_CHECK(ndr_push_align(ndr
, 4));
8195 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8197 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domains
));
8198 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8199 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8200 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8201 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8202 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8203 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
8204 NDR_CHECK(ndr_push_netr_SupportedEncTypes(ndr
, NDR_SCALARS
, r
->supported_enc_types
));
8205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8208 if (ndr_flags
& NDR_BUFFERS
) {
8209 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8210 if (r
->trusted_domains
) {
8211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8212 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8213 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8215 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8216 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8219 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8220 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8221 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8222 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8223 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8225 return NDR_ERR_SUCCESS
;
8228 static enum ndr_err_code
ndr_pull_netr_DomainInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInformation
*r
)
8230 uint32_t _ptr_trusted_domains
;
8231 uint32_t cntr_trusted_domains_1
;
8232 TALLOC_CTX
*_mem_save_trusted_domains_0
;
8233 TALLOC_CTX
*_mem_save_trusted_domains_1
;
8234 if (ndr_flags
& NDR_SCALARS
) {
8235 NDR_CHECK(ndr_pull_align(ndr
, 4));
8236 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8237 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trusted_domain_count
));
8238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domains
));
8239 if (_ptr_trusted_domains
) {
8240 NDR_PULL_ALLOC(ndr
, r
->trusted_domains
);
8242 r
->trusted_domains
= NULL
;
8244 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8245 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8246 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8247 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8248 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8249 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
8250 NDR_CHECK(ndr_pull_netr_SupportedEncTypes(ndr
, NDR_SCALARS
, &r
->supported_enc_types
));
8251 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8252 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8254 if (ndr_flags
& NDR_BUFFERS
) {
8255 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8256 if (r
->trusted_domains
) {
8257 _mem_save_trusted_domains_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8258 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8259 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domains
));
8260 NDR_PULL_ALLOC_N(ndr
, r
->trusted_domains
, ndr_get_array_size(ndr
, &r
->trusted_domains
));
8261 _mem_save_trusted_domains_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8262 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8263 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8264 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8266 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8267 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_1
, 0);
8270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_0
, 0);
8272 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8273 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8274 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8275 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8276 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8277 if (r
->trusted_domains
) {
8278 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusted_domains
, r
->trusted_domain_count
));
8281 return NDR_ERR_SUCCESS
;
8284 _PUBLIC_
void ndr_print_netr_DomainInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInformation
*r
)
8286 uint32_t cntr_trusted_domains_1
;
8287 ndr_print_struct(ndr
, name
, "netr_DomainInformation");
8289 ndr_print_netr_OneDomainInfo(ndr
, "primary_domain", &r
->primary_domain
);
8290 ndr_print_uint32(ndr
, "trusted_domain_count", r
->trusted_domain_count
);
8291 ndr_print_ptr(ndr
, "trusted_domains", r
->trusted_domains
);
8293 if (r
->trusted_domains
) {
8294 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusted_domains", (int)r
->trusted_domain_count
);
8296 for (cntr_trusted_domains_1
=0;cntr_trusted_domains_1
<r
->trusted_domain_count
;cntr_trusted_domains_1
++) {
8298 if (asprintf(&idx_1
, "[%d]", cntr_trusted_domains_1
) != -1) {
8299 ndr_print_netr_OneDomainInfo(ndr
, "trusted_domains", &r
->trusted_domains
[cntr_trusted_domains_1
]);
8306 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
8307 ndr_print_lsa_String(ndr
, "dns_hostname", &r
->dns_hostname
);
8308 ndr_print_lsa_String(ndr
, "dummy_string2", &r
->dummy_string2
);
8309 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
8310 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
8311 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
8312 ndr_print_netr_SupportedEncTypes(ndr
, "supported_enc_types", r
->supported_enc_types
);
8313 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8314 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8318 static enum ndr_err_code
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
8320 if (ndr_flags
& NDR_SCALARS
) {
8321 int level
= ndr_push_get_switch_value(ndr
, r
);
8322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8325 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_info
));
8329 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
8333 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8336 if (ndr_flags
& NDR_BUFFERS
) {
8337 int level
= ndr_push_get_switch_value(ndr
, r
);
8340 if (r
->domain_info
) {
8341 NDR_CHECK(ndr_push_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8346 if (r
->lsa_policy_info
) {
8347 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8352 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8355 return NDR_ERR_SUCCESS
;
8358 static enum ndr_err_code
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
8362 TALLOC_CTX
*_mem_save_domain_info_0
;
8363 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
8364 level
= ndr_pull_get_switch_value(ndr
, r
);
8365 if (ndr_flags
& NDR_SCALARS
) {
8366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8367 if (_level
!= level
) {
8368 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8372 uint32_t _ptr_domain_info
;
8373 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_info
));
8374 if (_ptr_domain_info
) {
8375 NDR_PULL_ALLOC(ndr
, r
->domain_info
);
8377 r
->domain_info
= NULL
;
8382 uint32_t _ptr_lsa_policy_info
;
8383 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
8384 if (_ptr_lsa_policy_info
) {
8385 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
8387 r
->lsa_policy_info
= NULL
;
8392 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8395 if (ndr_flags
& NDR_BUFFERS
) {
8398 if (r
->domain_info
) {
8399 _mem_save_domain_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8400 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_info
, 0);
8401 NDR_CHECK(ndr_pull_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8402 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_info_0
, 0);
8407 if (r
->lsa_policy_info
) {
8408 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8409 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
8410 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
8416 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8419 return NDR_ERR_SUCCESS
;
8422 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
8425 level
= ndr_print_get_switch_value(ndr
, r
);
8426 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
8429 ndr_print_ptr(ndr
, "domain_info", r
->domain_info
);
8431 if (r
->domain_info
) {
8432 ndr_print_netr_DomainInformation(ndr
, "domain_info", r
->domain_info
);
8438 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8440 if (r
->lsa_policy_info
) {
8441 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8447 ndr_print_bad_level(ndr
, name
, level
);
8451 static enum ndr_err_code
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CryptPassword
*r
)
8454 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8455 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8456 if (ndr_flags
& NDR_SCALARS
) {
8457 NDR_CHECK(ndr_push_align(ndr
, 4));
8458 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
8461 if (ndr_flags
& NDR_BUFFERS
) {
8463 ndr
->flags
= _flags_save_STRUCT
;
8465 return NDR_ERR_SUCCESS
;
8468 static enum ndr_err_code
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
8471 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8472 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8473 if (ndr_flags
& NDR_SCALARS
) {
8474 NDR_CHECK(ndr_pull_align(ndr
, 4));
8475 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
8478 if (ndr_flags
& NDR_BUFFERS
) {
8480 ndr
->flags
= _flags_save_STRUCT
;
8482 return NDR_ERR_SUCCESS
;
8485 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
8487 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
8489 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8490 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8492 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
8493 ndr_print_uint32(ndr
, "length", r
->length
);
8495 ndr
->flags
= _flags_save_STRUCT
;
8499 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8501 uint32_t cntr_sitename_1
;
8502 if (ndr_flags
& NDR_SCALARS
) {
8503 NDR_CHECK(ndr_push_align(ndr
, 4));
8504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8505 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8507 if (ndr_flags
& NDR_BUFFERS
) {
8509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8510 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8511 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8513 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8514 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8518 return NDR_ERR_SUCCESS
;
8521 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesWCtr
*r
)
8523 uint32_t _ptr_sitename
;
8524 uint32_t cntr_sitename_1
;
8525 TALLOC_CTX
*_mem_save_sitename_0
;
8526 TALLOC_CTX
*_mem_save_sitename_1
;
8527 if (ndr_flags
& NDR_SCALARS
) {
8528 NDR_CHECK(ndr_pull_align(ndr
, 4));
8529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8530 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8531 if (_ptr_sitename
) {
8532 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8537 if (ndr_flags
& NDR_BUFFERS
) {
8539 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8540 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8541 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8542 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8543 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8544 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8545 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8546 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8548 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8549 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8555 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8558 return NDR_ERR_SUCCESS
;
8561 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8563 uint32_t cntr_sitename_1
;
8564 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesWCtr");
8566 ndr_print_uint32(ndr
, "count", r
->count
);
8567 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8570 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8572 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8574 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8575 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8585 static enum ndr_err_code
ndr_push_netr_DsRAddress(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddress
*r
)
8587 if (ndr_flags
& NDR_SCALARS
) {
8588 NDR_CHECK(ndr_push_align(ndr
, 4));
8589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
8590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8592 if (ndr_flags
& NDR_BUFFERS
) {
8594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8595 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->size
));
8598 return NDR_ERR_SUCCESS
;
8601 static enum ndr_err_code
ndr_pull_netr_DsRAddress(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddress
*r
)
8603 uint32_t _ptr_buffer
;
8604 TALLOC_CTX
*_mem_save_buffer_0
;
8605 if (ndr_flags
& NDR_SCALARS
) {
8606 NDR_CHECK(ndr_pull_align(ndr
, 4));
8607 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
8609 NDR_PULL_ALLOC(ndr
, r
->buffer
);
8613 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
8615 if (ndr_flags
& NDR_BUFFERS
) {
8617 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8618 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
8619 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
8620 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
));
8621 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
)));
8622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
8625 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->size
));
8628 return NDR_ERR_SUCCESS
;
8631 _PUBLIC_
void ndr_print_netr_DsRAddress(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddress
*r
)
8633 ndr_print_struct(ndr
, name
, "netr_DsRAddress");
8635 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
8638 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->size
);
8641 ndr_print_uint32(ndr
, "size", r
->size
);
8645 static enum ndr_err_code
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
8647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8648 return NDR_ERR_SUCCESS
;
8651 static enum ndr_err_code
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
8654 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8656 return NDR_ERR_SUCCESS
;
8659 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
8661 const char *val
= NULL
;
8664 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8665 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
8666 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
8667 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
8669 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8672 static enum ndr_err_code
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8675 return NDR_ERR_SUCCESS
;
8678 static enum ndr_err_code
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8681 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8683 return NDR_ERR_SUCCESS
;
8686 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8688 ndr_print_uint32(ndr
, name
, r
);
8690 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
8691 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
8692 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
8693 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
8694 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
8695 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
8696 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
8700 static enum ndr_err_code
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
8702 if (ndr_flags
& NDR_SCALARS
) {
8703 NDR_CHECK(ndr_push_align(ndr
, 4));
8704 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
8705 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
8706 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
8707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
8708 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
8709 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
8710 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
8711 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8713 if (ndr_flags
& NDR_BUFFERS
) {
8714 if (r
->netbios_name
) {
8715 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8718 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8724 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8727 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8730 return NDR_ERR_SUCCESS
;
8733 static enum ndr_err_code
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
8735 uint32_t _ptr_netbios_name
;
8736 TALLOC_CTX
*_mem_save_netbios_name_0
;
8737 uint32_t _ptr_dns_name
;
8738 TALLOC_CTX
*_mem_save_dns_name_0
;
8740 TALLOC_CTX
*_mem_save_sid_0
;
8741 if (ndr_flags
& NDR_SCALARS
) {
8742 NDR_CHECK(ndr_pull_align(ndr
, 4));
8743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
8744 if (_ptr_netbios_name
) {
8745 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
8747 r
->netbios_name
= NULL
;
8749 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
8750 if (_ptr_dns_name
) {
8751 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
8755 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
8756 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
8757 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
8758 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
8759 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
8761 NDR_PULL_ALLOC(ndr
, r
->sid
);
8765 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8767 if (ndr_flags
& NDR_BUFFERS
) {
8768 if (r
->netbios_name
) {
8769 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8770 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
8771 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
8772 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
8773 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
8774 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
));
8776 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
8777 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
8778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
8781 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8782 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
8783 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
8784 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
8785 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
8786 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
));
8788 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
8789 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
8790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
8793 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8794 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
8795 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8796 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
8799 return NDR_ERR_SUCCESS
;
8802 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
8804 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
8806 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
8808 if (r
->netbios_name
) {
8809 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
8812 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
8815 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
8818 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
8819 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
8820 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
8821 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
8822 ndr_print_ptr(ndr
, "sid", r
->sid
);
8825 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
8828 ndr_print_GUID(ndr
, "guid", &r
->guid
);
8832 static enum ndr_err_code
ndr_push_netr_DomainTrustList(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustList
*r
)
8834 uint32_t cntr_array_1
;
8835 if (ndr_flags
& NDR_SCALARS
) {
8836 NDR_CHECK(ndr_push_align(ndr
, 4));
8837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8838 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
8840 if (ndr_flags
& NDR_BUFFERS
) {
8842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8843 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8844 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8846 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8847 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8851 return NDR_ERR_SUCCESS
;
8854 static enum ndr_err_code
ndr_pull_netr_DomainTrustList(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustList
*r
)
8856 uint32_t _ptr_array
;
8857 uint32_t cntr_array_1
;
8858 TALLOC_CTX
*_mem_save_array_0
;
8859 TALLOC_CTX
*_mem_save_array_1
;
8860 if (ndr_flags
& NDR_SCALARS
) {
8861 NDR_CHECK(ndr_pull_align(ndr
, 4));
8862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
8865 NDR_PULL_ALLOC(ndr
, r
->array
);
8870 if (ndr_flags
& NDR_BUFFERS
) {
8872 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8873 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8874 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
8875 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
8876 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8877 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8878 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8879 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8881 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8882 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
8885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
8888 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
8891 return NDR_ERR_SUCCESS
;
8894 _PUBLIC_
void ndr_print_netr_DomainTrustList(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustList
*r
)
8896 uint32_t cntr_array_1
;
8897 ndr_print_struct(ndr
, name
, "netr_DomainTrustList");
8899 ndr_print_uint32(ndr
, "count", r
->count
);
8900 ndr_print_ptr(ndr
, "array", r
->array
);
8903 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
8905 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
8907 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
8908 ndr_print_netr_DomainTrust(ndr
, "array", &r
->array
[cntr_array_1
]);
8918 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8920 uint32_t cntr_sitename_1
;
8921 uint32_t cntr_subnetname_1
;
8922 if (ndr_flags
& NDR_SCALARS
) {
8923 NDR_CHECK(ndr_push_align(ndr
, 4));
8924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8925 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8926 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->subnetname
));
8928 if (ndr_flags
& NDR_BUFFERS
) {
8930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8931 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8932 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8934 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8935 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8938 if (r
->subnetname
) {
8939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8940 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8941 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8943 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8944 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8948 return NDR_ERR_SUCCESS
;
8951 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesExWCtr
*r
)
8953 uint32_t _ptr_sitename
;
8954 uint32_t cntr_sitename_1
;
8955 TALLOC_CTX
*_mem_save_sitename_0
;
8956 TALLOC_CTX
*_mem_save_sitename_1
;
8957 uint32_t _ptr_subnetname
;
8958 uint32_t cntr_subnetname_1
;
8959 TALLOC_CTX
*_mem_save_subnetname_0
;
8960 TALLOC_CTX
*_mem_save_subnetname_1
;
8961 if (ndr_flags
& NDR_SCALARS
) {
8962 NDR_CHECK(ndr_pull_align(ndr
, 4));
8963 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8964 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8965 if (_ptr_sitename
) {
8966 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8970 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_subnetname
));
8971 if (_ptr_subnetname
) {
8972 NDR_PULL_ALLOC(ndr
, r
->subnetname
);
8974 r
->subnetname
= NULL
;
8977 if (ndr_flags
& NDR_BUFFERS
) {
8979 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8980 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8981 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8982 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8983 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8984 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8985 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8986 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8988 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8989 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8994 if (r
->subnetname
) {
8995 _mem_save_subnetname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8996 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8997 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->subnetname
));
8998 NDR_PULL_ALLOC_N(ndr
, r
->subnetname
, ndr_get_array_size(ndr
, &r
->subnetname
));
8999 _mem_save_subnetname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9000 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
9001 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
9002 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
9004 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
9005 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
9007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_1
, 0);
9008 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_0
, 0);
9011 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
9013 if (r
->subnetname
) {
9014 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->subnetname
, r
->count
));
9017 return NDR_ERR_SUCCESS
;
9020 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
9022 uint32_t cntr_sitename_1
;
9023 uint32_t cntr_subnetname_1
;
9024 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExWCtr");
9026 ndr_print_uint32(ndr
, "count", r
->count
);
9027 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
9030 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
9032 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
9034 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
9035 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
9042 ndr_print_ptr(ndr
, "subnetname", r
->subnetname
);
9044 if (r
->subnetname
) {
9045 ndr
->print(ndr
, "%s: ARRAY(%d)", "subnetname", (int)r
->count
);
9047 for (cntr_subnetname_1
=0;cntr_subnetname_1
<r
->count
;cntr_subnetname_1
++) {
9049 if (asprintf(&idx_1
, "[%d]", cntr_subnetname_1
) != -1) {
9050 ndr_print_lsa_String(ndr
, "subnetname", &r
->subnetname
[cntr_subnetname_1
]);
9060 static enum ndr_err_code
ndr_push_DcSitesCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct DcSitesCtr
*r
)
9062 uint32_t cntr_sites_1
;
9063 if (ndr_flags
& NDR_SCALARS
) {
9064 NDR_CHECK(ndr_push_align(ndr
, 4));
9065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
9066 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sites
));
9068 if (ndr_flags
& NDR_BUFFERS
) {
9070 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
9071 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9072 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9074 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9075 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9079 return NDR_ERR_SUCCESS
;
9082 static enum ndr_err_code
ndr_pull_DcSitesCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct DcSitesCtr
*r
)
9084 uint32_t _ptr_sites
;
9085 uint32_t cntr_sites_1
;
9086 TALLOC_CTX
*_mem_save_sites_0
;
9087 TALLOC_CTX
*_mem_save_sites_1
;
9088 if (ndr_flags
& NDR_SCALARS
) {
9089 NDR_CHECK(ndr_pull_align(ndr
, 4));
9090 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sites
));
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sites
));
9093 NDR_PULL_ALLOC(ndr
, r
->sites
);
9098 if (ndr_flags
& NDR_BUFFERS
) {
9100 _mem_save_sites_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9101 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9102 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sites
));
9103 NDR_PULL_ALLOC_N(ndr
, r
->sites
, ndr_get_array_size(ndr
, &r
->sites
));
9104 _mem_save_sites_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9105 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9106 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9107 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9109 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9110 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9112 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_1
, 0);
9113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_0
, 0);
9116 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sites
, r
->num_sites
));
9119 return NDR_ERR_SUCCESS
;
9122 _PUBLIC_
void ndr_print_DcSitesCtr(struct ndr_print
*ndr
, const char *name
, const struct DcSitesCtr
*r
)
9124 uint32_t cntr_sites_1
;
9125 ndr_print_struct(ndr
, name
, "DcSitesCtr");
9127 ndr_print_uint32(ndr
, "num_sites", r
->num_sites
);
9128 ndr_print_ptr(ndr
, "sites", r
->sites
);
9131 ndr
->print(ndr
, "%s: ARRAY(%d)", "sites", (int)r
->num_sites
);
9133 for (cntr_sites_1
=0;cntr_sites_1
<r
->num_sites
;cntr_sites_1
++) {
9135 if (asprintf(&idx_1
, "[%d]", cntr_sites_1
) != -1) {
9136 ndr_print_lsa_String(ndr
, "sites", &r
->sites
[cntr_sites_1
]);
9146 static enum ndr_err_code
ndr_push_netr_TrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_TrustInfo
*r
)
9148 uint32_t cntr_data_1
;
9149 uint32_t cntr_entries_1
;
9150 if (ndr_flags
& NDR_SCALARS
) {
9151 NDR_CHECK(ndr_push_align(ndr
, 4));
9152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9153 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
9154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->entry_count
));
9155 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
9157 if (ndr_flags
& NDR_BUFFERS
) {
9159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9160 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
9165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9166 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9167 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9169 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9170 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9174 return NDR_ERR_SUCCESS
;
9177 static enum ndr_err_code
ndr_pull_netr_TrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_TrustInfo
*r
)
9180 uint32_t cntr_data_1
;
9181 TALLOC_CTX
*_mem_save_data_0
;
9182 TALLOC_CTX
*_mem_save_data_1
;
9183 uint32_t _ptr_entries
;
9184 uint32_t cntr_entries_1
;
9185 TALLOC_CTX
*_mem_save_entries_0
;
9186 TALLOC_CTX
*_mem_save_entries_1
;
9187 if (ndr_flags
& NDR_SCALARS
) {
9188 NDR_CHECK(ndr_pull_align(ndr
, 4));
9189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
9192 NDR_PULL_ALLOC(ndr
, r
->data
);
9196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->entry_count
));
9197 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
9199 NDR_PULL_ALLOC(ndr
, r
->entries
);
9204 if (ndr_flags
& NDR_BUFFERS
) {
9206 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9207 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9208 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
9209 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
9210 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9211 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9212 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9213 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
9215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
9216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
9219 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9220 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9221 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
9222 NDR_PULL_ALLOC_N(ndr
, r
->entries
, ndr_get_array_size(ndr
, &r
->entries
));
9223 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9224 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9225 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9226 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9228 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9229 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
9232 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
9235 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->count
));
9238 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
9241 return NDR_ERR_SUCCESS
;
9244 _PUBLIC_
void ndr_print_netr_TrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_TrustInfo
*r
)
9246 uint32_t cntr_data_1
;
9247 uint32_t cntr_entries_1
;
9248 ndr_print_struct(ndr
, name
, "netr_TrustInfo");
9250 ndr_print_uint32(ndr
, "count", r
->count
);
9251 ndr_print_ptr(ndr
, "data", r
->data
);
9254 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", (int)r
->count
);
9256 for (cntr_data_1
=0;cntr_data_1
<r
->count
;cntr_data_1
++) {
9258 if (asprintf(&idx_1
, "[%d]", cntr_data_1
) != -1) {
9259 ndr_print_uint32(ndr
, "data", r
->data
[cntr_data_1
]);
9266 ndr_print_uint32(ndr
, "entry_count", r
->entry_count
);
9267 ndr_print_ptr(ndr
, "entries", r
->entries
);
9270 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
9272 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
9274 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
9275 ndr_print_lsa_String(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
9285 static enum ndr_err_code
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
9287 if (flags
& NDR_IN
) {
9288 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9289 if (r
->in
.server_name
) {
9290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9293 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
));
9295 if (r
->in
.account_name
== NULL
) {
9296 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9300 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9301 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
));
9302 if (r
->in
.workstation
== NULL
) {
9303 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9305 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9308 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9310 if (flags
& NDR_OUT
) {
9311 if (r
->out
.info
== NULL
) {
9312 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9314 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
9316 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9318 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9320 return NDR_ERR_SUCCESS
;
9323 static enum ndr_err_code
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
9325 uint32_t _ptr_server_name
;
9327 TALLOC_CTX
*_mem_save_server_name_0
;
9328 TALLOC_CTX
*_mem_save_info_0
;
9329 TALLOC_CTX
*_mem_save_info_1
;
9330 if (flags
& NDR_IN
) {
9331 ZERO_STRUCT(r
->out
);
9333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9334 if (_ptr_server_name
) {
9335 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9337 r
->in
.server_name
= NULL
;
9339 if (r
->in
.server_name
) {
9340 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9341 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9342 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9343 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9344 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9345 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
));
9347 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9348 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
));
9349 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9351 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9352 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9353 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9354 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
));
9356 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9357 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
));
9358 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9359 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9360 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9361 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
));
9363 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9364 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9365 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9366 ZERO_STRUCTP(r
->out
.info
);
9368 if (flags
& NDR_OUT
) {
9369 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9370 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9372 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9373 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9374 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
9376 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
9378 *r
->out
.info
= NULL
;
9381 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9382 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
9383 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
9386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9387 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9389 return NDR_ERR_SUCCESS
;
9392 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
9394 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
9396 if (flags
& NDR_SET_VALUES
) {
9397 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9399 if (flags
& NDR_IN
) {
9400 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
9402 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9404 if (r
->in
.server_name
) {
9405 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9408 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9410 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9412 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9414 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9418 if (flags
& NDR_OUT
) {
9419 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
9421 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9423 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
9426 ndr_print_netr_UasInfo(ndr
, "info", *r
->out
.info
);
9430 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9436 static enum ndr_err_code
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
9438 if (flags
& NDR_IN
) {
9439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9440 if (r
->in
.server_name
) {
9441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9444 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
));
9446 if (r
->in
.account_name
== NULL
) {
9447 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9452 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
));
9453 if (r
->in
.workstation
== NULL
) {
9454 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9459 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9461 if (flags
& NDR_OUT
) {
9462 if (r
->out
.info
== NULL
) {
9463 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9465 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9466 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9468 return NDR_ERR_SUCCESS
;
9471 static enum ndr_err_code
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
9473 uint32_t _ptr_server_name
;
9474 TALLOC_CTX
*_mem_save_server_name_0
;
9475 TALLOC_CTX
*_mem_save_info_0
;
9476 if (flags
& NDR_IN
) {
9477 ZERO_STRUCT(r
->out
);
9479 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9480 if (_ptr_server_name
) {
9481 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9483 r
->in
.server_name
= NULL
;
9485 if (r
->in
.server_name
) {
9486 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9487 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9488 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9489 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9490 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9491 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
));
9493 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9494 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
));
9495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9497 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9498 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9499 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9500 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
));
9502 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9503 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
));
9504 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9505 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9506 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9507 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
));
9509 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9510 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9511 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9512 ZERO_STRUCTP(r
->out
.info
);
9514 if (flags
& NDR_OUT
) {
9515 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9516 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9518 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9519 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9520 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9522 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9524 return NDR_ERR_SUCCESS
;
9527 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
9529 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
9531 if (flags
& NDR_SET_VALUES
) {
9532 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9534 if (flags
& NDR_IN
) {
9535 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
9537 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9539 if (r
->in
.server_name
) {
9540 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9543 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9545 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9547 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9549 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9553 if (flags
& NDR_OUT
) {
9554 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
9556 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9558 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
9560 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9566 static enum ndr_err_code
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
9568 if (flags
& NDR_IN
) {
9569 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9570 if (r
->in
.server_name
) {
9571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9574 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
));
9576 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9577 if (r
->in
.computer_name
) {
9578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9581 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
));
9583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9584 if (r
->in
.credential
) {
9585 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9587 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9588 if (r
->in
.return_authenticator
) {
9589 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9591 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9592 if (r
->in
.logon
== NULL
) {
9593 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9595 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9596 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9597 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
9599 if (flags
& NDR_OUT
) {
9600 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9601 if (r
->out
.return_authenticator
) {
9602 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9604 if (r
->out
.validation
== NULL
) {
9605 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9607 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9608 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9609 if (r
->out
.authoritative
== NULL
) {
9610 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9612 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
9613 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9615 return NDR_ERR_SUCCESS
;
9618 static enum ndr_err_code
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
9620 uint32_t _ptr_server_name
;
9621 uint32_t _ptr_computer_name
;
9622 uint32_t _ptr_credential
;
9623 uint32_t _ptr_return_authenticator
;
9624 TALLOC_CTX
*_mem_save_server_name_0
;
9625 TALLOC_CTX
*_mem_save_computer_name_0
;
9626 TALLOC_CTX
*_mem_save_credential_0
;
9627 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9628 TALLOC_CTX
*_mem_save_logon_0
;
9629 TALLOC_CTX
*_mem_save_validation_0
;
9630 TALLOC_CTX
*_mem_save_authoritative_0
;
9631 if (flags
& NDR_IN
) {
9632 ZERO_STRUCT(r
->out
);
9634 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9635 if (_ptr_server_name
) {
9636 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9638 r
->in
.server_name
= NULL
;
9640 if (r
->in
.server_name
) {
9641 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9642 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9643 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9644 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9645 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9646 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
));
9648 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9649 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
));
9650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9653 if (_ptr_computer_name
) {
9654 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9656 r
->in
.computer_name
= NULL
;
9658 if (r
->in
.computer_name
) {
9659 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9660 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9661 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9662 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9663 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9664 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
));
9666 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9667 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
));
9668 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9671 if (_ptr_credential
) {
9672 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9674 r
->in
.credential
= NULL
;
9676 if (r
->in
.credential
) {
9677 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9678 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9679 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9680 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9682 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9683 if (_ptr_return_authenticator
) {
9684 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9686 r
->in
.return_authenticator
= NULL
;
9688 if (r
->in
.return_authenticator
) {
9689 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9690 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9691 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9692 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9694 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9695 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9696 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
9698 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9699 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
9700 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9701 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
9703 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
9704 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9705 ZERO_STRUCTP(r
->out
.validation
);
9706 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9707 ZERO_STRUCTP(r
->out
.authoritative
);
9709 if (flags
& NDR_OUT
) {
9710 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9711 if (_ptr_return_authenticator
) {
9712 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9714 r
->out
.return_authenticator
= NULL
;
9716 if (r
->out
.return_authenticator
) {
9717 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9718 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9719 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9722 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9723 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9725 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9726 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
9727 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9728 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
9730 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9731 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9733 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9734 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
9735 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
9736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
9737 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9739 return NDR_ERR_SUCCESS
;
9742 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
9744 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
9746 if (flags
& NDR_SET_VALUES
) {
9747 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9749 if (flags
& NDR_IN
) {
9750 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
9752 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9754 if (r
->in
.server_name
) {
9755 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9758 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9760 if (r
->in
.computer_name
) {
9761 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9764 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9766 if (r
->in
.credential
) {
9767 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9770 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9772 if (r
->in
.return_authenticator
) {
9773 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9776 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9777 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
9779 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
9780 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
9782 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
9785 if (flags
& NDR_OUT
) {
9786 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
9788 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9790 if (r
->out
.return_authenticator
) {
9791 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9794 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
9796 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
9797 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
9799 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
9801 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
9803 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9809 static enum ndr_err_code
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
9811 if (flags
& NDR_IN
) {
9812 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9813 if (r
->in
.server_name
) {
9814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9817 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
));
9819 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9820 if (r
->in
.computer_name
) {
9821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9824 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
));
9826 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9827 if (r
->in
.credential
) {
9828 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9830 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9831 if (r
->in
.return_authenticator
) {
9832 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9834 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9835 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9836 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9838 if (flags
& NDR_OUT
) {
9839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9840 if (r
->out
.return_authenticator
) {
9841 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9843 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9845 return NDR_ERR_SUCCESS
;
9848 static enum ndr_err_code
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
9850 uint32_t _ptr_server_name
;
9851 uint32_t _ptr_computer_name
;
9852 uint32_t _ptr_credential
;
9853 uint32_t _ptr_return_authenticator
;
9854 TALLOC_CTX
*_mem_save_server_name_0
;
9855 TALLOC_CTX
*_mem_save_computer_name_0
;
9856 TALLOC_CTX
*_mem_save_credential_0
;
9857 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9858 if (flags
& NDR_IN
) {
9859 ZERO_STRUCT(r
->out
);
9861 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9862 if (_ptr_server_name
) {
9863 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9865 r
->in
.server_name
= NULL
;
9867 if (r
->in
.server_name
) {
9868 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9869 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9870 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9871 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9872 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9873 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
));
9875 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9876 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
));
9877 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9879 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9880 if (_ptr_computer_name
) {
9881 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9883 r
->in
.computer_name
= NULL
;
9885 if (r
->in
.computer_name
) {
9886 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9887 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9888 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9889 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9890 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9891 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
));
9893 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9894 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
));
9895 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9897 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9898 if (_ptr_credential
) {
9899 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9901 r
->in
.credential
= NULL
;
9903 if (r
->in
.credential
) {
9904 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9905 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9906 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9909 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9910 if (_ptr_return_authenticator
) {
9911 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9913 r
->in
.return_authenticator
= NULL
;
9915 if (r
->in
.return_authenticator
) {
9916 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9917 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9918 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9921 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9922 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9923 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9925 if (flags
& NDR_OUT
) {
9926 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9927 if (_ptr_return_authenticator
) {
9928 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9930 r
->out
.return_authenticator
= NULL
;
9932 if (r
->out
.return_authenticator
) {
9933 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9934 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9935 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9938 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9940 return NDR_ERR_SUCCESS
;
9943 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
9945 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
9947 if (flags
& NDR_SET_VALUES
) {
9948 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9950 if (flags
& NDR_IN
) {
9951 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
9953 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9955 if (r
->in
.server_name
) {
9956 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9959 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9961 if (r
->in
.computer_name
) {
9962 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9965 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9967 if (r
->in
.credential
) {
9968 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9971 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9973 if (r
->in
.return_authenticator
) {
9974 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9977 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9978 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
9979 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
9982 if (flags
& NDR_OUT
) {
9983 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
9985 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9987 if (r
->out
.return_authenticator
) {
9988 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9991 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9997 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
9999 if (flags
& NDR_IN
) {
10000 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10001 if (r
->in
.server_name
) {
10002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10005 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
));
10007 if (r
->in
.computer_name
== NULL
) {
10008 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10013 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
));
10014 if (r
->in
.credentials
== NULL
) {
10015 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10017 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10019 if (flags
& NDR_OUT
) {
10020 if (r
->out
.return_credentials
== NULL
) {
10021 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10023 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10024 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10026 return NDR_ERR_SUCCESS
;
10029 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
10031 uint32_t _ptr_server_name
;
10032 TALLOC_CTX
*_mem_save_server_name_0
;
10033 TALLOC_CTX
*_mem_save_credentials_0
;
10034 TALLOC_CTX
*_mem_save_return_credentials_0
;
10035 if (flags
& NDR_IN
) {
10036 ZERO_STRUCT(r
->out
);
10038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10039 if (_ptr_server_name
) {
10040 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10042 r
->in
.server_name
= NULL
;
10044 if (r
->in
.server_name
) {
10045 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10046 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10047 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10048 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10049 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10050 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
));
10052 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10053 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
));
10054 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10056 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10057 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10058 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10059 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
));
10061 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10062 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
));
10063 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10064 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10066 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10067 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10068 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10069 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10070 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10071 ZERO_STRUCTP(r
->out
.return_credentials
);
10073 if (flags
& NDR_OUT
) {
10074 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10075 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10077 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10078 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10079 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10081 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10083 return NDR_ERR_SUCCESS
;
10086 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
10088 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
10090 if (flags
& NDR_SET_VALUES
) {
10091 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10093 if (flags
& NDR_IN
) {
10094 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
10096 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10098 if (r
->in
.server_name
) {
10099 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10102 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10104 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10106 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10108 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10112 if (flags
& NDR_OUT
) {
10113 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
10115 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10117 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10119 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10125 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
10127 if (flags
& NDR_IN
) {
10128 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10129 if (r
->in
.server_name
) {
10130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10133 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
));
10135 if (r
->in
.account_name
== NULL
) {
10136 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10141 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
));
10142 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10143 if (r
->in
.computer_name
== NULL
) {
10144 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10149 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
));
10150 if (r
->in
.credentials
== NULL
) {
10151 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10153 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10155 if (flags
& NDR_OUT
) {
10156 if (r
->out
.return_credentials
== NULL
) {
10157 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10159 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10160 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10162 return NDR_ERR_SUCCESS
;
10165 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
10167 uint32_t _ptr_server_name
;
10168 TALLOC_CTX
*_mem_save_server_name_0
;
10169 TALLOC_CTX
*_mem_save_credentials_0
;
10170 TALLOC_CTX
*_mem_save_return_credentials_0
;
10171 if (flags
& NDR_IN
) {
10172 ZERO_STRUCT(r
->out
);
10174 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10175 if (_ptr_server_name
) {
10176 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10178 r
->in
.server_name
= NULL
;
10180 if (r
->in
.server_name
) {
10181 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10182 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10183 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10184 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10185 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10186 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
));
10188 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10189 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
));
10190 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10192 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10193 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10194 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10195 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
));
10197 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10198 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
));
10199 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10200 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10201 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10202 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10203 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
));
10205 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10206 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
));
10207 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10208 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10210 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10211 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10212 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10213 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10214 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10215 ZERO_STRUCTP(r
->out
.return_credentials
);
10217 if (flags
& NDR_OUT
) {
10218 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10219 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10221 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10222 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10223 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10225 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10227 return NDR_ERR_SUCCESS
;
10230 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
10232 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
10234 if (flags
& NDR_SET_VALUES
) {
10235 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10237 if (flags
& NDR_IN
) {
10238 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
10240 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10242 if (r
->in
.server_name
) {
10243 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10246 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10248 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10250 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10251 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10253 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10255 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10257 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10261 if (flags
& NDR_OUT
) {
10262 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
10264 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10266 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10268 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10274 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
10276 if (flags
& NDR_IN
) {
10277 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10278 if (r
->in
.server_name
) {
10279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10282 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
));
10284 if (r
->in
.account_name
== NULL
) {
10285 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10290 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
));
10291 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10292 if (r
->in
.computer_name
== NULL
) {
10293 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10298 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
));
10299 if (r
->in
.credential
== NULL
) {
10300 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10302 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10303 if (r
->in
.new_password
== NULL
) {
10304 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10306 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10308 if (flags
& NDR_OUT
) {
10309 if (r
->out
.return_authenticator
== NULL
) {
10310 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10312 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10313 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10315 return NDR_ERR_SUCCESS
;
10318 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
10320 uint32_t _ptr_server_name
;
10321 TALLOC_CTX
*_mem_save_server_name_0
;
10322 TALLOC_CTX
*_mem_save_credential_0
;
10323 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10324 TALLOC_CTX
*_mem_save_new_password_0
;
10325 if (flags
& NDR_IN
) {
10326 ZERO_STRUCT(r
->out
);
10328 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10329 if (_ptr_server_name
) {
10330 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10332 r
->in
.server_name
= NULL
;
10334 if (r
->in
.server_name
) {
10335 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10336 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10337 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10338 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10339 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10340 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
));
10342 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10343 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
));
10344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10346 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10347 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10348 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10349 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
));
10351 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10352 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
));
10353 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10354 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10355 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10356 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10357 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
));
10359 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10360 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
));
10361 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10362 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10364 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10365 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10366 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10368 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10369 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
10371 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10372 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
10373 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
10375 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10376 ZERO_STRUCTP(r
->out
.return_authenticator
);
10378 if (flags
& NDR_OUT
) {
10379 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10380 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10382 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10383 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10384 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10386 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10388 return NDR_ERR_SUCCESS
;
10391 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
10393 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
10395 if (flags
& NDR_SET_VALUES
) {
10396 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10398 if (flags
& NDR_IN
) {
10399 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
10401 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10403 if (r
->in
.server_name
) {
10404 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10407 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10409 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10411 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10412 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10414 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10416 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10418 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10420 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
10422 ndr_print_samr_Password(ndr
, "new_password", r
->in
.new_password
);
10426 if (flags
& NDR_OUT
) {
10427 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
10429 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10431 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10433 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10439 static enum ndr_err_code
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
10441 if (flags
& NDR_IN
) {
10442 if (r
->in
.logon_server
== NULL
) {
10443 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10448 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
));
10449 if (r
->in
.computername
== NULL
) {
10450 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10455 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10456 if (r
->in
.credential
== NULL
) {
10457 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10459 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10460 if (r
->in
.return_authenticator
== NULL
) {
10461 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10463 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10464 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10465 if (r
->in
.sequence_num
== NULL
) {
10466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10468 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
10469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10471 if (flags
& NDR_OUT
) {
10472 if (r
->out
.return_authenticator
== NULL
) {
10473 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10475 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10476 if (r
->out
.sequence_num
== NULL
) {
10477 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10479 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
10480 if (r
->out
.delta_enum_array
== NULL
) {
10481 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10483 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10484 if (*r
->out
.delta_enum_array
) {
10485 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10487 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10489 return NDR_ERR_SUCCESS
;
10492 static enum ndr_err_code
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
10494 uint32_t _ptr_delta_enum_array
;
10495 TALLOC_CTX
*_mem_save_credential_0
;
10496 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10497 TALLOC_CTX
*_mem_save_sequence_num_0
;
10498 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10499 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10500 if (flags
& NDR_IN
) {
10501 ZERO_STRUCT(r
->out
);
10503 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10504 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10505 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10506 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
));
10508 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10509 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
));
10510 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10511 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10512 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10513 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
));
10515 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10516 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10517 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10518 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10520 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10521 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10522 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10524 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10525 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10527 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10528 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10529 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10531 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10532 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10533 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
10535 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10536 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10537 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
10538 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10540 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10541 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10542 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10543 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
10544 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10545 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10547 if (flags
& NDR_OUT
) {
10548 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10549 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10551 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10552 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10553 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10555 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10556 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10558 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10559 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10560 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
10561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10562 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10563 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10565 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10566 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10567 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10568 if (_ptr_delta_enum_array
) {
10569 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10571 *r
->out
.delta_enum_array
= NULL
;
10573 if (*r
->out
.delta_enum_array
) {
10574 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10575 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10576 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10579 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10580 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10582 return NDR_ERR_SUCCESS
;
10585 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
10587 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
10589 if (flags
& NDR_SET_VALUES
) {
10590 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10592 if (flags
& NDR_IN
) {
10593 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
10595 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10597 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10599 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10601 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10603 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10605 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10607 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10609 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10611 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10612 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
10614 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
10616 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10619 if (flags
& NDR_OUT
) {
10620 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
10622 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10624 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10626 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
10628 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
10630 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10632 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10634 if (*r
->out
.delta_enum_array
) {
10635 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10639 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10645 static enum ndr_err_code
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
10647 if (flags
& NDR_IN
) {
10648 if (r
->in
.logon_server
== NULL
) {
10649 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10654 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
));
10655 if (r
->in
.computername
== NULL
) {
10656 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10661 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10662 if (r
->in
.credential
== NULL
) {
10663 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10665 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10666 if (r
->in
.return_authenticator
== NULL
) {
10667 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10669 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10670 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10671 if (r
->in
.sync_context
== NULL
) {
10672 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
10675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10677 if (flags
& NDR_OUT
) {
10678 if (r
->out
.return_authenticator
== NULL
) {
10679 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10681 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10682 if (r
->out
.sync_context
== NULL
) {
10683 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
10686 if (r
->out
.delta_enum_array
== NULL
) {
10687 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10689 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10690 if (*r
->out
.delta_enum_array
) {
10691 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10693 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10695 return NDR_ERR_SUCCESS
;
10698 static enum ndr_err_code
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
10700 uint32_t _ptr_delta_enum_array
;
10701 TALLOC_CTX
*_mem_save_credential_0
;
10702 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10703 TALLOC_CTX
*_mem_save_sync_context_0
;
10704 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10705 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10706 if (flags
& NDR_IN
) {
10707 ZERO_STRUCT(r
->out
);
10709 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10710 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10711 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10712 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
));
10714 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10715 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
));
10716 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10717 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10718 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10719 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
));
10721 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10722 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10723 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10724 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10726 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10727 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10728 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10730 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10731 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10733 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10734 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10735 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10737 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10738 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10739 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
10741 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10742 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10743 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
10744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10745 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10746 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10747 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10748 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10749 *r
->out
.sync_context
= *r
->in
.sync_context
;
10750 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10751 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10753 if (flags
& NDR_OUT
) {
10754 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10755 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10757 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10758 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10759 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10761 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10762 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10764 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10765 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10766 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
10767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10768 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10769 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10771 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10772 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10773 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10774 if (_ptr_delta_enum_array
) {
10775 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10777 *r
->out
.delta_enum_array
= NULL
;
10779 if (*r
->out
.delta_enum_array
) {
10780 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10781 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10782 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10783 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10786 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10788 return NDR_ERR_SUCCESS
;
10791 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
10793 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
10795 if (flags
& NDR_SET_VALUES
) {
10796 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10798 if (flags
& NDR_IN
) {
10799 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
10801 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10803 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10805 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10807 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10809 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10811 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10813 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10815 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10817 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10818 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
10820 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
10822 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10825 if (flags
& NDR_OUT
) {
10826 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
10828 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10830 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10832 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
10834 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
10836 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10838 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10840 if (*r
->out
.delta_enum_array
) {
10841 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10845 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10851 static enum ndr_err_code
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
10853 if (flags
& NDR_IN
) {
10854 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10855 if (r
->in
.logon_server
) {
10856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10859 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
));
10861 if (r
->in
.computername
== NULL
) {
10862 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10865 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10867 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10868 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10869 if (r
->in
.return_authenticator
== NULL
) {
10870 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10872 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10873 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
10875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
10878 if (flags
& NDR_OUT
) {
10879 if (r
->out
.return_authenticator
== NULL
) {
10880 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10882 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10883 if (r
->out
.buffer
== NULL
) {
10884 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10887 struct ndr_push
*_ndr_buffer
;
10888 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10889 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10890 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10892 if (r
->out
.count_returned
== NULL
) {
10893 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
10896 if (r
->out
.total_entries
== NULL
) {
10897 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
10900 if (r
->out
.recordid
== NULL
) {
10901 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10903 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10904 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10906 return NDR_ERR_SUCCESS
;
10909 static enum ndr_err_code
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
10911 uint32_t _ptr_logon_server
;
10912 TALLOC_CTX
*_mem_save_logon_server_0
;
10913 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10914 TALLOC_CTX
*_mem_save_buffer_0
;
10915 TALLOC_CTX
*_mem_save_count_returned_0
;
10916 TALLOC_CTX
*_mem_save_total_entries_0
;
10917 TALLOC_CTX
*_mem_save_recordid_0
;
10918 if (flags
& NDR_IN
) {
10919 ZERO_STRUCT(r
->out
);
10921 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10922 if (_ptr_logon_server
) {
10923 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10925 r
->in
.logon_server
= NULL
;
10927 if (r
->in
.logon_server
) {
10928 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10929 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10930 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10931 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10932 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10933 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
));
10935 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10936 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
));
10937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10939 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10940 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10941 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10942 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
));
10944 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10945 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10946 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10947 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10948 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10950 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10951 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10952 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10954 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
10956 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10957 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
10958 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10959 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10960 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10961 ZERO_STRUCTP(r
->out
.buffer
);
10962 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10963 ZERO_STRUCTP(r
->out
.count_returned
);
10964 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10965 ZERO_STRUCTP(r
->out
.total_entries
);
10966 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10967 ZERO_STRUCTP(r
->out
.recordid
);
10969 if (flags
& NDR_OUT
) {
10970 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10971 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10973 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10974 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10975 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10976 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10977 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10978 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10980 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10981 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
10983 struct ndr_pull
*_ndr_buffer
;
10984 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10985 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10986 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10988 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
10989 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10990 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10992 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10993 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
10994 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
10995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
10996 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10997 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10999 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11000 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
11001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
11002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
11003 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11004 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11006 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11007 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11008 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11010 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11012 return NDR_ERR_SUCCESS
;
11015 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
11017 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
11019 if (flags
& NDR_SET_VALUES
) {
11020 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11022 if (flags
& NDR_IN
) {
11023 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
11025 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11027 if (r
->in
.logon_server
) {
11028 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11031 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
11033 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11035 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11036 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11038 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11040 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
11041 ndr_print_uint32(ndr
, "count", r
->in
.count
);
11042 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11043 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11046 if (flags
& NDR_OUT
) {
11047 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
11049 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11051 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11053 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11055 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11057 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11059 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11061 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11063 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11065 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11067 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11069 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11075 static enum ndr_err_code
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
11077 if (flags
& NDR_IN
) {
11078 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11079 if (r
->in
.logon_server
) {
11080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11082 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11083 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
));
11085 if (r
->in
.computername
== NULL
) {
11086 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11091 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11092 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11093 if (r
->in
.return_authenticator
== NULL
) {
11094 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11096 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11097 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
11098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
11100 if (r
->in
.recordid
== NULL
) {
11101 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11103 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11105 if (flags
& NDR_OUT
) {
11106 if (r
->out
.return_authenticator
== NULL
) {
11107 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11109 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11110 if (r
->out
.buffer
== NULL
) {
11111 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11114 struct ndr_push
*_ndr_buffer
;
11115 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11116 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11117 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11119 if (r
->out
.count_returned
== NULL
) {
11120 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
11123 if (r
->out
.total_entries
== NULL
) {
11124 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
11127 if (r
->out
.next_reference
== NULL
) {
11128 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
11131 if (r
->out
.recordid
== NULL
) {
11132 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11134 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11135 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11137 return NDR_ERR_SUCCESS
;
11140 static enum ndr_err_code
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
11142 uint32_t _ptr_logon_server
;
11143 TALLOC_CTX
*_mem_save_logon_server_0
;
11144 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11145 TALLOC_CTX
*_mem_save_buffer_0
;
11146 TALLOC_CTX
*_mem_save_count_returned_0
;
11147 TALLOC_CTX
*_mem_save_total_entries_0
;
11148 TALLOC_CTX
*_mem_save_next_reference_0
;
11149 TALLOC_CTX
*_mem_save_recordid_0
;
11150 if (flags
& NDR_IN
) {
11151 ZERO_STRUCT(r
->out
);
11153 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11154 if (_ptr_logon_server
) {
11155 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11157 r
->in
.logon_server
= NULL
;
11159 if (r
->in
.logon_server
) {
11160 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11161 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11162 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11163 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11164 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11165 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
));
11167 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11168 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
));
11169 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11171 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
11172 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
11173 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
11174 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
));
11176 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
11177 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
11178 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11179 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11180 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11182 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11183 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11184 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
11187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
11189 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11190 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
11192 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11193 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11194 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11196 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11197 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11198 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11199 ZERO_STRUCTP(r
->out
.buffer
);
11200 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11201 ZERO_STRUCTP(r
->out
.count_returned
);
11202 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11203 ZERO_STRUCTP(r
->out
.total_entries
);
11204 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11205 ZERO_STRUCTP(r
->out
.next_reference
);
11206 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11207 *r
->out
.recordid
= *r
->in
.recordid
;
11209 if (flags
& NDR_OUT
) {
11210 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11211 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11213 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11214 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11215 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11217 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11218 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11220 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11221 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
11223 struct ndr_pull
*_ndr_buffer
;
11224 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11225 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11226 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11228 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
11229 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11230 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11232 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11233 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
11234 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
11235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
11236 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11237 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11239 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11240 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
11241 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
11242 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
11243 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11244 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11246 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11247 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
11248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
11249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
11250 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11251 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11253 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11254 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11255 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11256 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11257 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11259 return NDR_ERR_SUCCESS
;
11262 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
11264 ndr_print_struct(ndr
, name
, "netr_AccountSync");
11266 if (flags
& NDR_SET_VALUES
) {
11267 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11269 if (flags
& NDR_IN
) {
11270 ndr_print_struct(ndr
, "in", "netr_AccountSync");
11272 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11274 if (r
->in
.logon_server
) {
11275 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11278 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
11280 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11282 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11283 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11285 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11287 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
11288 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11289 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11290 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
11292 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
11296 if (flags
& NDR_OUT
) {
11297 ndr_print_struct(ndr
, "out", "netr_AccountSync");
11299 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11301 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11303 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11305 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11307 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11309 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11311 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11313 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11315 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
11317 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
11319 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11321 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11323 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11329 static enum ndr_err_code
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
11331 if (flags
& NDR_IN
) {
11332 if (r
->in
.logon_server
== NULL
) {
11333 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11338 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
));
11339 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11340 if (r
->in
.domainname
) {
11341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11344 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11347 if (flags
& NDR_OUT
) {
11348 if (r
->out
.dcname
== NULL
) {
11349 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11351 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11352 if (*r
->out
.dcname
) {
11353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11356 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11358 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11360 return NDR_ERR_SUCCESS
;
11363 static enum ndr_err_code
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
11365 uint32_t _ptr_domainname
;
11366 uint32_t _ptr_dcname
;
11367 TALLOC_CTX
*_mem_save_domainname_0
;
11368 TALLOC_CTX
*_mem_save_dcname_0
;
11369 TALLOC_CTX
*_mem_save_dcname_1
;
11370 if (flags
& NDR_IN
) {
11371 ZERO_STRUCT(r
->out
);
11373 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11374 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11375 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11376 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
));
11378 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11379 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
));
11380 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11381 if (_ptr_domainname
) {
11382 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11384 r
->in
.domainname
= NULL
;
11386 if (r
->in
.domainname
) {
11387 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11388 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11389 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11390 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11391 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11392 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
));
11394 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11395 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11398 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11399 ZERO_STRUCTP(r
->out
.dcname
);
11401 if (flags
& NDR_OUT
) {
11402 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11403 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11405 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11406 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11407 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11409 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11411 *r
->out
.dcname
= NULL
;
11413 if (*r
->out
.dcname
) {
11414 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11415 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11416 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11417 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11418 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11419 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
));
11421 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11422 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11423 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11426 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11428 return NDR_ERR_SUCCESS
;
11431 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
11433 ndr_print_struct(ndr
, name
, "netr_GetDcName");
11435 if (flags
& NDR_SET_VALUES
) {
11436 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11438 if (flags
& NDR_IN
) {
11439 ndr_print_struct(ndr
, "in", "netr_GetDcName");
11441 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11443 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11445 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11447 if (r
->in
.domainname
) {
11448 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11453 if (flags
& NDR_OUT
) {
11454 ndr_print_struct(ndr
, "out", "netr_GetDcName");
11456 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11458 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11460 if (*r
->out
.dcname
) {
11461 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11465 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11471 static enum ndr_err_code
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
11473 if (flags
& NDR_IN
) {
11474 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11475 if (r
->in
.logon_server
) {
11476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11479 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
));
11481 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11484 if (flags
& NDR_OUT
) {
11485 if (r
->out
.query
== NULL
) {
11486 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11488 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11489 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11490 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11492 return NDR_ERR_SUCCESS
;
11495 static enum ndr_err_code
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
11497 uint32_t _ptr_logon_server
;
11498 TALLOC_CTX
*_mem_save_logon_server_0
;
11499 TALLOC_CTX
*_mem_save_query_0
;
11500 if (flags
& NDR_IN
) {
11501 ZERO_STRUCT(r
->out
);
11503 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11504 if (_ptr_logon_server
) {
11505 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11507 r
->in
.logon_server
= NULL
;
11509 if (r
->in
.logon_server
) {
11510 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11511 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11512 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11513 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11514 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11515 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
));
11517 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11518 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
));
11519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11521 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11523 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11524 ZERO_STRUCTP(r
->out
.query
);
11526 if (flags
& NDR_OUT
) {
11527 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11528 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11530 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11531 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11532 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11533 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11535 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11537 return NDR_ERR_SUCCESS
;
11540 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
11542 ndr_print_struct(ndr
, name
, "netr_LogonControl");
11544 if (flags
& NDR_SET_VALUES
) {
11545 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11547 if (flags
& NDR_IN
) {
11548 ndr_print_struct(ndr
, "in", "netr_LogonControl");
11550 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11552 if (r
->in
.logon_server
) {
11553 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11556 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11557 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11560 if (flags
& NDR_OUT
) {
11561 ndr_print_struct(ndr
, "out", "netr_LogonControl");
11563 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11565 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11566 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11568 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11574 static enum ndr_err_code
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
11576 if (flags
& NDR_IN
) {
11577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11578 if (r
->in
.logon_server
) {
11579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11581 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11582 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
));
11584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11585 if (r
->in
.domainname
) {
11586 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11589 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11592 if (flags
& NDR_OUT
) {
11593 if (r
->out
.dcname
== NULL
) {
11594 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11596 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11597 if (*r
->out
.dcname
) {
11598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11601 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11603 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11605 return NDR_ERR_SUCCESS
;
11608 static enum ndr_err_code
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
11610 uint32_t _ptr_logon_server
;
11611 uint32_t _ptr_domainname
;
11612 uint32_t _ptr_dcname
;
11613 TALLOC_CTX
*_mem_save_logon_server_0
;
11614 TALLOC_CTX
*_mem_save_domainname_0
;
11615 TALLOC_CTX
*_mem_save_dcname_0
;
11616 TALLOC_CTX
*_mem_save_dcname_1
;
11617 if (flags
& NDR_IN
) {
11618 ZERO_STRUCT(r
->out
);
11620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11621 if (_ptr_logon_server
) {
11622 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11624 r
->in
.logon_server
= NULL
;
11626 if (r
->in
.logon_server
) {
11627 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11628 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11629 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11630 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11631 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11632 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
));
11634 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11635 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
));
11636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11639 if (_ptr_domainname
) {
11640 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11642 r
->in
.domainname
= NULL
;
11644 if (r
->in
.domainname
) {
11645 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11646 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11647 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11648 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11649 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11650 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
));
11652 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11653 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11656 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11657 ZERO_STRUCTP(r
->out
.dcname
);
11659 if (flags
& NDR_OUT
) {
11660 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11661 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11663 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11664 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11667 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11669 *r
->out
.dcname
= NULL
;
11671 if (*r
->out
.dcname
) {
11672 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11673 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11674 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11675 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11676 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11677 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
));
11679 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11680 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11684 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11686 return NDR_ERR_SUCCESS
;
11689 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
11691 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
11693 if (flags
& NDR_SET_VALUES
) {
11694 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11696 if (flags
& NDR_IN
) {
11697 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
11699 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11701 if (r
->in
.logon_server
) {
11702 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11705 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11707 if (r
->in
.domainname
) {
11708 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11713 if (flags
& NDR_OUT
) {
11714 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
11716 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11718 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11720 if (*r
->out
.dcname
) {
11721 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11725 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11731 static enum ndr_err_code
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
11733 if (flags
& NDR_IN
) {
11734 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11735 if (r
->in
.logon_server
) {
11736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11739 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
));
11741 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11743 if (r
->in
.data
== NULL
) {
11744 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11746 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11747 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11749 if (flags
& NDR_OUT
) {
11750 if (r
->out
.query
== NULL
) {
11751 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11753 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11754 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11755 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11757 return NDR_ERR_SUCCESS
;
11760 static enum ndr_err_code
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
11762 uint32_t _ptr_logon_server
;
11763 TALLOC_CTX
*_mem_save_logon_server_0
;
11764 TALLOC_CTX
*_mem_save_data_0
;
11765 TALLOC_CTX
*_mem_save_query_0
;
11766 if (flags
& NDR_IN
) {
11767 ZERO_STRUCT(r
->out
);
11769 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11770 if (_ptr_logon_server
) {
11771 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11773 r
->in
.logon_server
= NULL
;
11775 if (r
->in
.logon_server
) {
11776 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11777 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11778 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11779 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11780 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11781 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
));
11783 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11784 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
));
11785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11787 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11788 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11789 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11790 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
11792 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11793 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
11794 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11795 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11796 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
11797 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11798 ZERO_STRUCTP(r
->out
.query
);
11800 if (flags
& NDR_OUT
) {
11801 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11802 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11804 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11805 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11806 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11807 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11808 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11809 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11811 return NDR_ERR_SUCCESS
;
11814 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
11816 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
11818 if (flags
& NDR_SET_VALUES
) {
11819 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11821 if (flags
& NDR_IN
) {
11822 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
11824 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11826 if (r
->in
.logon_server
) {
11827 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11830 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11831 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11832 ndr_print_ptr(ndr
, "data", r
->in
.data
);
11834 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
11835 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
11839 if (flags
& NDR_OUT
) {
11840 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
11842 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11844 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11845 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11847 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11853 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11855 if (flags
& NDR_IN
) {
11856 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11857 if (r
->in
.server_name
) {
11858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11860 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11861 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
));
11863 if (r
->in
.account_name
== NULL
) {
11864 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11868 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11869 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
));
11870 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11871 if (r
->in
.computer_name
== NULL
) {
11872 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11877 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
));
11878 if (r
->in
.credentials
== NULL
) {
11879 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11881 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11882 if (r
->in
.negotiate_flags
== NULL
) {
11883 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11885 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
11887 if (flags
& NDR_OUT
) {
11888 if (r
->out
.return_credentials
== NULL
) {
11889 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11891 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11892 if (r
->out
.negotiate_flags
== NULL
) {
11893 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11895 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
11896 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11898 return NDR_ERR_SUCCESS
;
11901 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
11903 uint32_t _ptr_server_name
;
11904 TALLOC_CTX
*_mem_save_server_name_0
;
11905 TALLOC_CTX
*_mem_save_credentials_0
;
11906 TALLOC_CTX
*_mem_save_return_credentials_0
;
11907 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
11908 if (flags
& NDR_IN
) {
11909 ZERO_STRUCT(r
->out
);
11911 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11912 if (_ptr_server_name
) {
11913 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11915 r
->in
.server_name
= NULL
;
11917 if (r
->in
.server_name
) {
11918 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11919 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11920 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11921 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11922 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11923 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
));
11925 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11926 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
));
11927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11929 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
11930 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
11931 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
11932 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
));
11934 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
11935 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
));
11936 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
11937 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11938 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11939 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11940 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
));
11942 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11943 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
));
11944 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11945 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
11947 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11948 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
11949 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11951 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11952 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
11954 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11955 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11956 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
11957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11958 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11959 ZERO_STRUCTP(r
->out
.return_credentials
);
11960 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11961 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
11963 if (flags
& NDR_OUT
) {
11964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11965 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11967 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11968 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
11969 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11971 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11972 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11974 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11975 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11976 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
11977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11978 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11980 return NDR_ERR_SUCCESS
;
11983 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11985 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
11987 if (flags
& NDR_SET_VALUES
) {
11988 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11990 if (flags
& NDR_IN
) {
11991 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
11993 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11995 if (r
->in
.server_name
) {
11996 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11999 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
12001 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
12003 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
12004 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12006 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12008 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
12010 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
12012 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
12014 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
12018 if (flags
& NDR_OUT
) {
12019 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
12021 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
12023 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
12025 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
12027 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
12029 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12035 static enum ndr_err_code
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
12037 if (flags
& NDR_IN
) {
12038 if (r
->in
.logon_server
== NULL
) {
12039 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12041 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12044 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
));
12045 if (r
->in
.computername
== NULL
) {
12046 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12051 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12052 if (r
->in
.credential
== NULL
) {
12053 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12055 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12056 if (r
->in
.return_authenticator
== NULL
) {
12057 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12059 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12060 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
12061 NDR_CHECK(ndr_push_SyncStateEnum(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
12062 if (r
->in
.sync_context
== NULL
) {
12063 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
12066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
12068 if (flags
& NDR_OUT
) {
12069 if (r
->out
.return_authenticator
== NULL
) {
12070 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12072 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12073 if (r
->out
.sync_context
== NULL
) {
12074 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12076 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
12077 if (r
->out
.delta_enum_array
== NULL
) {
12078 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12080 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12081 if (*r
->out
.delta_enum_array
) {
12082 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12084 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12086 return NDR_ERR_SUCCESS
;
12089 static enum ndr_err_code
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
12091 uint32_t _ptr_delta_enum_array
;
12092 TALLOC_CTX
*_mem_save_credential_0
;
12093 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12094 TALLOC_CTX
*_mem_save_sync_context_0
;
12095 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12096 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12097 if (flags
& NDR_IN
) {
12098 ZERO_STRUCT(r
->out
);
12100 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12101 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12102 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12103 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
));
12105 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12106 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
));
12107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12109 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12110 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
));
12112 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12113 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12114 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12115 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12117 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12118 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12119 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12121 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12122 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12124 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12125 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12126 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12128 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
12129 NDR_CHECK(ndr_pull_SyncStateEnum(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
12130 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12131 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
12133 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12134 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
12136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
12138 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12139 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12140 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12141 *r
->out
.sync_context
= *r
->in
.sync_context
;
12142 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12143 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12145 if (flags
& NDR_OUT
) {
12146 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12147 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12149 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12150 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12151 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12153 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12154 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12156 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12157 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12158 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
12159 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12160 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12161 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12163 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12164 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12165 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12166 if (_ptr_delta_enum_array
) {
12167 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12169 *r
->out
.delta_enum_array
= NULL
;
12171 if (*r
->out
.delta_enum_array
) {
12172 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12173 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12174 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12177 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12178 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12180 return NDR_ERR_SUCCESS
;
12183 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
12185 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
12187 if (flags
& NDR_SET_VALUES
) {
12188 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12190 if (flags
& NDR_IN
) {
12191 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
12193 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12195 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12197 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12199 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12201 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12203 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12205 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12207 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12209 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
12210 ndr_print_SyncStateEnum(ndr
, "restart_state", r
->in
.restart_state
);
12211 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
12213 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
12215 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
12218 if (flags
& NDR_OUT
) {
12219 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
12221 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12223 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12225 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
12227 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
12229 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12231 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12233 if (*r
->out
.delta_enum_array
) {
12234 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12238 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12244 static enum ndr_err_code
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
12246 if (flags
& NDR_IN
) {
12247 if (r
->in
.logon_server
== NULL
) {
12248 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12253 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
));
12254 if (r
->in
.computername
== NULL
) {
12255 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12260 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12261 if (r
->in
.credential
== NULL
) {
12262 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12264 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12265 if (r
->in
.return_authenticator
== NULL
) {
12266 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12268 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12270 struct ndr_push
*_ndr_change_log_entry
;
12271 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12272 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12273 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_change_log_entry
, 4, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12277 if (flags
& NDR_OUT
) {
12278 if (r
->out
.return_authenticator
== NULL
) {
12279 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12281 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12282 if (r
->out
.delta_enum_array
== NULL
) {
12283 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12285 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12286 if (*r
->out
.delta_enum_array
) {
12287 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12289 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12291 return NDR_ERR_SUCCESS
;
12294 static enum ndr_err_code
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
12296 uint32_t _ptr_delta_enum_array
;
12297 TALLOC_CTX
*_mem_save_credential_0
;
12298 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12299 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12300 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12301 if (flags
& NDR_IN
) {
12302 ZERO_STRUCT(r
->out
);
12304 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12305 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12306 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12307 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
));
12309 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12310 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
));
12311 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12312 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12313 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12314 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
));
12316 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12317 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12318 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12319 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12321 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12322 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12323 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12325 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12326 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12328 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12329 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12330 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12333 struct ndr_pull
*_ndr_change_log_entry
;
12334 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12335 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12336 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
12339 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12340 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12341 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12342 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12344 if (flags
& NDR_OUT
) {
12345 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12346 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12348 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12349 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12352 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12353 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12355 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12356 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12357 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12358 if (_ptr_delta_enum_array
) {
12359 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12361 *r
->out
.delta_enum_array
= NULL
;
12363 if (*r
->out
.delta_enum_array
) {
12364 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12365 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12366 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12370 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12372 return NDR_ERR_SUCCESS
;
12375 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
12377 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
12379 if (flags
& NDR_SET_VALUES
) {
12380 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12382 if (flags
& NDR_IN
) {
12383 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
12385 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12387 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12389 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12391 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12393 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12395 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12397 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12399 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12401 ndr_print_netr_ChangeLogEntry(ndr
, "change_log_entry", &r
->in
.change_log_entry
);
12402 ndr_print_uint32(ndr
, "change_log_entry_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
):r
->in
.change_log_entry_size
);
12405 if (flags
& NDR_OUT
) {
12406 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
12408 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12410 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12412 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12414 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12416 if (*r
->out
.delta_enum_array
) {
12417 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12421 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12427 static enum ndr_err_code
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
12429 if (flags
& NDR_IN
) {
12430 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
12431 if (r
->in
.logon_server
) {
12432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12435 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
));
12437 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
12438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
12439 if (r
->in
.data
== NULL
) {
12440 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12442 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12443 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12445 if (flags
& NDR_OUT
) {
12446 if (r
->out
.query
== NULL
) {
12447 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12449 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12450 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12451 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12453 return NDR_ERR_SUCCESS
;
12456 static enum ndr_err_code
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
12458 uint32_t _ptr_logon_server
;
12459 TALLOC_CTX
*_mem_save_logon_server_0
;
12460 TALLOC_CTX
*_mem_save_data_0
;
12461 TALLOC_CTX
*_mem_save_query_0
;
12462 if (flags
& NDR_IN
) {
12463 ZERO_STRUCT(r
->out
);
12465 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
12466 if (_ptr_logon_server
) {
12467 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
12469 r
->in
.logon_server
= NULL
;
12471 if (r
->in
.logon_server
) {
12472 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12473 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
12474 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12475 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12476 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12477 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
));
12479 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12480 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
));
12481 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
12483 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
12484 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
12485 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12486 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
12488 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12489 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
12490 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12491 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
12493 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12494 ZERO_STRUCTP(r
->out
.query
);
12496 if (flags
& NDR_OUT
) {
12497 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12498 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12500 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12501 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
12502 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12503 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
12505 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12507 return NDR_ERR_SUCCESS
;
12510 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
12512 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
12514 if (flags
& NDR_SET_VALUES
) {
12515 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12517 if (flags
& NDR_IN
) {
12518 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
12520 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12522 if (r
->in
.logon_server
) {
12523 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12526 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
12527 ndr_print_uint32(ndr
, "level", r
->in
.level
);
12528 ndr_print_ptr(ndr
, "data", r
->in
.data
);
12530 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
12531 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
12535 if (flags
& NDR_OUT
) {
12536 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
12538 ndr_print_ptr(ndr
, "query", r
->out
.query
);
12540 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
12541 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
12543 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12549 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12551 if (flags
& NDR_IN
) {
12552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12553 if (r
->in
.server_name
) {
12554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12557 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
));
12560 if (flags
& NDR_OUT
) {
12561 if (r
->out
.trusted_domains_blob
== NULL
) {
12562 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12564 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12565 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12567 return NDR_ERR_SUCCESS
;
12570 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomains
*r
)
12572 uint32_t _ptr_server_name
;
12573 TALLOC_CTX
*_mem_save_server_name_0
;
12574 TALLOC_CTX
*_mem_save_trusted_domains_blob_0
;
12575 if (flags
& NDR_IN
) {
12576 ZERO_STRUCT(r
->out
);
12578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12579 if (_ptr_server_name
) {
12580 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12582 r
->in
.server_name
= NULL
;
12584 if (r
->in
.server_name
) {
12585 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12586 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12587 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12588 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12589 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12590 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
));
12592 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12593 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
));
12594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12596 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12597 ZERO_STRUCTP(r
->out
.trusted_domains_blob
);
12599 if (flags
& NDR_OUT
) {
12600 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12601 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12603 _mem_save_trusted_domains_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12604 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusted_domains_blob
, LIBNDR_FLAG_REF_ALLOC
);
12605 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_blob_0
, LIBNDR_FLAG_REF_ALLOC
);
12607 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12609 return NDR_ERR_SUCCESS
;
12612 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12614 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomains");
12616 if (flags
& NDR_SET_VALUES
) {
12617 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12619 if (flags
& NDR_IN
) {
12620 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomains");
12622 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12624 if (r
->in
.server_name
) {
12625 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12630 if (flags
& NDR_OUT
) {
12631 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomains");
12633 ndr_print_ptr(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12635 ndr_print_netr_Blob(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12637 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12643 static enum ndr_err_code
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
12645 if (flags
& NDR_IN
) {
12646 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
12647 if (r
->in
.server_unc
) {
12648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12651 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
));
12653 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
12654 if (r
->in
.domain_name
) {
12655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_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
.domain_name
, CH_UTF16
)));
12658 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
));
12660 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
12661 if (r
->in
.domain_guid
) {
12662 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12664 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
12665 if (r
->in
.site_guid
) {
12666 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12668 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
12670 if (flags
& NDR_OUT
) {
12671 if (r
->out
.info
== NULL
) {
12672 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12674 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
12675 if (*r
->out
.info
) {
12676 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12678 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12680 return NDR_ERR_SUCCESS
;
12683 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
12685 uint32_t _ptr_server_unc
;
12686 uint32_t _ptr_domain_name
;
12687 uint32_t _ptr_domain_guid
;
12688 uint32_t _ptr_site_guid
;
12689 uint32_t _ptr_info
;
12690 TALLOC_CTX
*_mem_save_server_unc_0
;
12691 TALLOC_CTX
*_mem_save_domain_name_0
;
12692 TALLOC_CTX
*_mem_save_domain_guid_0
;
12693 TALLOC_CTX
*_mem_save_site_guid_0
;
12694 TALLOC_CTX
*_mem_save_info_0
;
12695 TALLOC_CTX
*_mem_save_info_1
;
12696 if (flags
& NDR_IN
) {
12697 ZERO_STRUCT(r
->out
);
12699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
12700 if (_ptr_server_unc
) {
12701 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
12703 r
->in
.server_unc
= NULL
;
12705 if (r
->in
.server_unc
) {
12706 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12707 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
12708 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
12709 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
12710 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
12711 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
));
12713 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
12714 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
));
12715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
12717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
12718 if (_ptr_domain_name
) {
12719 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
12721 r
->in
.domain_name
= NULL
;
12723 if (r
->in
.domain_name
) {
12724 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12725 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
12726 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
12727 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
12728 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
12729 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
));
12731 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
12732 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
));
12733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
12735 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
12736 if (_ptr_domain_guid
) {
12737 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
12739 r
->in
.domain_guid
= NULL
;
12741 if (r
->in
.domain_guid
) {
12742 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12743 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
12744 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12745 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
12747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
12748 if (_ptr_site_guid
) {
12749 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
12751 r
->in
.site_guid
= NULL
;
12753 if (r
->in
.site_guid
) {
12754 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12755 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
12756 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12757 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
12759 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
12760 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12761 ZERO_STRUCTP(r
->out
.info
);
12763 if (flags
& NDR_OUT
) {
12764 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12765 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12767 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12768 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12769 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12771 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
12773 *r
->out
.info
= NULL
;
12775 if (*r
->out
.info
) {
12776 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12777 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
12778 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12781 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12782 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12784 return NDR_ERR_SUCCESS
;
12787 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
12789 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
12791 if (flags
& NDR_SET_VALUES
) {
12792 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12794 if (flags
& NDR_IN
) {
12795 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
12797 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
12799 if (r
->in
.server_unc
) {
12800 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
12803 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
12805 if (r
->in
.domain_name
) {
12806 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
12809 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
12811 if (r
->in
.domain_guid
) {
12812 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
12815 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
12817 if (r
->in
.site_guid
) {
12818 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
12821 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
12824 if (flags
& NDR_OUT
) {
12825 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
12827 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12829 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
12831 if (*r
->out
.info
) {
12832 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
12836 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12842 static enum ndr_err_code
ndr_push_netr_LogonGetCapabilities(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12844 if (flags
& NDR_IN
) {
12845 if (r
->in
.server_name
== NULL
) {
12846 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12851 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
));
12852 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12853 if (r
->in
.computer_name
) {
12854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12857 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
));
12859 if (r
->in
.credential
== NULL
) {
12860 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12862 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12863 if (r
->in
.return_authenticator
== NULL
) {
12864 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12866 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.query_level
));
12869 if (flags
& NDR_OUT
) {
12870 if (r
->out
.return_authenticator
== NULL
) {
12871 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12873 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12874 if (r
->out
.capabilities
== NULL
) {
12875 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12877 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12878 NDR_CHECK(ndr_push_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12879 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12881 return NDR_ERR_SUCCESS
;
12884 static enum ndr_err_code
ndr_pull_netr_LogonGetCapabilities(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetCapabilities
*r
)
12886 uint32_t _ptr_computer_name
;
12887 TALLOC_CTX
*_mem_save_computer_name_0
;
12888 TALLOC_CTX
*_mem_save_credential_0
;
12889 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12890 TALLOC_CTX
*_mem_save_capabilities_0
;
12891 if (flags
& NDR_IN
) {
12892 ZERO_STRUCT(r
->out
);
12894 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12895 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12896 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12897 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
));
12899 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12900 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
));
12901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12902 if (_ptr_computer_name
) {
12903 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12905 r
->in
.computer_name
= NULL
;
12907 if (r
->in
.computer_name
) {
12908 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12909 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12910 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12911 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12912 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12913 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
));
12915 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12916 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
));
12917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12919 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12920 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12922 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12923 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12924 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12927 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12929 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12930 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12931 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.query_level
));
12934 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12935 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12936 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12937 ZERO_STRUCTP(r
->out
.capabilities
);
12939 if (flags
& NDR_OUT
) {
12940 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12941 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12943 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12944 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12945 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12947 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12948 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12950 _mem_save_capabilities_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12951 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.capabilities
, LIBNDR_FLAG_REF_ALLOC
);
12952 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12953 NDR_CHECK(ndr_pull_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_capabilities_0
, LIBNDR_FLAG_REF_ALLOC
);
12955 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12957 return NDR_ERR_SUCCESS
;
12960 _PUBLIC_
void ndr_print_netr_LogonGetCapabilities(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12962 ndr_print_struct(ndr
, name
, "netr_LogonGetCapabilities");
12964 if (flags
& NDR_SET_VALUES
) {
12965 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12967 if (flags
& NDR_IN
) {
12968 ndr_print_struct(ndr
, "in", "netr_LogonGetCapabilities");
12970 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12972 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12974 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12976 if (r
->in
.computer_name
) {
12977 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12980 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12982 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12984 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12986 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12988 ndr_print_uint32(ndr
, "query_level", r
->in
.query_level
);
12991 if (flags
& NDR_OUT
) {
12992 ndr_print_struct(ndr
, "out", "netr_LogonGetCapabilities");
12994 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12996 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12998 ndr_print_ptr(ndr
, "capabilities", r
->out
.capabilities
);
13000 ndr_print_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
);
13001 ndr_print_netr_Capabilities(ndr
, "capabilities", r
->out
.capabilities
);
13003 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13009 static enum ndr_err_code
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
13011 if (flags
& NDR_IN
) {
13013 if (flags
& NDR_OUT
) {
13014 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13016 return NDR_ERR_SUCCESS
;
13019 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
13021 if (flags
& NDR_IN
) {
13023 if (flags
& NDR_OUT
) {
13024 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13026 return NDR_ERR_SUCCESS
;
13029 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
13031 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
13033 if (flags
& NDR_SET_VALUES
) {
13034 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13036 if (flags
& NDR_IN
) {
13037 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
13041 if (flags
& NDR_OUT
) {
13042 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
13044 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13050 static enum ndr_err_code
ndr_push_netr_LogonGetTrustRid(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13052 if (flags
& NDR_IN
) {
13053 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13054 if (r
->in
.server_name
) {
13055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13058 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
));
13060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13061 if (r
->in
.domain_name
) {
13062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13065 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
));
13068 if (flags
& NDR_OUT
) {
13069 if (r
->out
.rid
== NULL
) {
13070 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13073 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13075 return NDR_ERR_SUCCESS
;
13078 static enum ndr_err_code
ndr_pull_netr_LogonGetTrustRid(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetTrustRid
*r
)
13080 uint32_t _ptr_server_name
;
13081 uint32_t _ptr_domain_name
;
13082 TALLOC_CTX
*_mem_save_server_name_0
;
13083 TALLOC_CTX
*_mem_save_domain_name_0
;
13084 TALLOC_CTX
*_mem_save_rid_0
;
13085 if (flags
& NDR_IN
) {
13086 ZERO_STRUCT(r
->out
);
13088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13089 if (_ptr_server_name
) {
13090 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13092 r
->in
.server_name
= NULL
;
13094 if (r
->in
.server_name
) {
13095 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13096 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13097 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13098 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13099 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13100 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
));
13102 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13103 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
));
13104 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
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_PULL_ALLOC(ndr
, r
->out
.rid
);
13125 ZERO_STRUCTP(r
->out
.rid
);
13127 if (flags
& NDR_OUT
) {
13128 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13129 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13131 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13132 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13134 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13135 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13137 return NDR_ERR_SUCCESS
;
13140 _PUBLIC_
void ndr_print_netr_LogonGetTrustRid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13142 ndr_print_struct(ndr
, name
, "netr_LogonGetTrustRid");
13144 if (flags
& NDR_SET_VALUES
) {
13145 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13147 if (flags
& NDR_IN
) {
13148 ndr_print_struct(ndr
, "in", "netr_LogonGetTrustRid");
13150 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13152 if (r
->in
.server_name
) {
13153 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13156 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13158 if (r
->in
.domain_name
) {
13159 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13164 if (flags
& NDR_OUT
) {
13165 ndr_print_struct(ndr
, "out", "netr_LogonGetTrustRid");
13167 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13169 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13171 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13177 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13179 if (flags
& NDR_IN
) {
13181 if (flags
& NDR_OUT
) {
13182 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13184 return NDR_ERR_SUCCESS
;
13187 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13189 if (flags
& NDR_IN
) {
13191 if (flags
& NDR_OUT
) {
13192 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13194 return NDR_ERR_SUCCESS
;
13197 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13199 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
13201 if (flags
& NDR_SET_VALUES
) {
13202 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13204 if (flags
& NDR_IN
) {
13205 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13209 if (flags
& NDR_OUT
) {
13210 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13212 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13218 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13220 if (flags
& NDR_IN
) {
13222 if (flags
& NDR_OUT
) {
13223 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13225 return NDR_ERR_SUCCESS
;
13228 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13230 if (flags
& NDR_IN
) {
13232 if (flags
& NDR_OUT
) {
13233 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13235 return NDR_ERR_SUCCESS
;
13238 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13240 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13242 if (flags
& NDR_SET_VALUES
) {
13243 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13245 if (flags
& NDR_IN
) {
13246 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13250 if (flags
& NDR_OUT
) {
13251 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13253 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13259 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13261 if (flags
& NDR_IN
) {
13262 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13263 if (r
->in
.server_name
) {
13264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13267 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
));
13269 if (r
->in
.account_name
== NULL
) {
13270 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13272 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13275 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
));
13276 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13277 if (r
->in
.computer_name
== NULL
) {
13278 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13283 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
));
13284 if (r
->in
.credentials
== NULL
) {
13285 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13287 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13288 if (r
->in
.negotiate_flags
== NULL
) {
13289 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13291 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
13293 if (flags
& NDR_OUT
) {
13294 if (r
->out
.return_credentials
== NULL
) {
13295 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13297 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13298 if (r
->out
.negotiate_flags
== NULL
) {
13299 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13301 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
13302 if (r
->out
.rid
== NULL
) {
13303 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13305 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13306 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13308 return NDR_ERR_SUCCESS
;
13311 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
13313 uint32_t _ptr_server_name
;
13314 TALLOC_CTX
*_mem_save_server_name_0
;
13315 TALLOC_CTX
*_mem_save_credentials_0
;
13316 TALLOC_CTX
*_mem_save_return_credentials_0
;
13317 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
13318 TALLOC_CTX
*_mem_save_rid_0
;
13319 if (flags
& NDR_IN
) {
13320 ZERO_STRUCT(r
->out
);
13322 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13323 if (_ptr_server_name
) {
13324 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13326 r
->in
.server_name
= NULL
;
13328 if (r
->in
.server_name
) {
13329 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13330 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13331 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13332 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13333 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13334 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
));
13336 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13337 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
));
13338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13340 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
13341 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
13342 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
13343 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
));
13345 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
13346 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
));
13347 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
13348 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13349 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13350 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13351 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
));
13353 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13354 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
));
13355 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13356 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
13358 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13359 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
13360 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13362 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13363 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
13365 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13366 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13367 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
13368 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13369 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13370 ZERO_STRUCTP(r
->out
.return_credentials
);
13371 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13372 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
13373 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13374 ZERO_STRUCTP(r
->out
.rid
);
13376 if (flags
& NDR_OUT
) {
13377 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13378 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13380 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13381 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
13382 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13384 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13385 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13387 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13388 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13389 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
13390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13391 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13392 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13394 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13395 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13398 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13400 return NDR_ERR_SUCCESS
;
13403 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13405 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
13407 if (flags
& NDR_SET_VALUES
) {
13408 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13410 if (flags
& NDR_IN
) {
13411 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
13413 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13415 if (r
->in
.server_name
) {
13416 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13419 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
13421 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
13423 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
13424 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13426 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13428 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
13430 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
13432 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
13434 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
13438 if (flags
& NDR_OUT
) {
13439 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
13441 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
13443 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
13445 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
13447 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
13449 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13451 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13453 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13459 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13461 if (flags
& NDR_IN
) {
13462 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
13463 if (r
->in
.server_unc
) {
13464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13467 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
));
13469 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13470 if (r
->in
.domain_name
) {
13471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13474 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
));
13476 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13477 if (r
->in
.domain_guid
) {
13478 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13480 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
13481 if (r
->in
.site_name
) {
13482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13485 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
));
13487 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
13489 if (flags
& NDR_OUT
) {
13490 if (r
->out
.info
== NULL
) {
13491 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13493 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
13494 if (*r
->out
.info
) {
13495 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13497 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13499 return NDR_ERR_SUCCESS
;
13502 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
13504 uint32_t _ptr_server_unc
;
13505 uint32_t _ptr_domain_name
;
13506 uint32_t _ptr_domain_guid
;
13507 uint32_t _ptr_site_name
;
13508 uint32_t _ptr_info
;
13509 TALLOC_CTX
*_mem_save_server_unc_0
;
13510 TALLOC_CTX
*_mem_save_domain_name_0
;
13511 TALLOC_CTX
*_mem_save_domain_guid_0
;
13512 TALLOC_CTX
*_mem_save_site_name_0
;
13513 TALLOC_CTX
*_mem_save_info_0
;
13514 TALLOC_CTX
*_mem_save_info_1
;
13515 if (flags
& NDR_IN
) {
13516 ZERO_STRUCT(r
->out
);
13518 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
13519 if (_ptr_server_unc
) {
13520 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
13522 r
->in
.server_unc
= NULL
;
13524 if (r
->in
.server_unc
) {
13525 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13526 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
13527 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
13528 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
13529 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
13530 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
));
13532 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
13533 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
));
13534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
13536 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13537 if (_ptr_domain_name
) {
13538 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13540 r
->in
.domain_name
= NULL
;
13542 if (r
->in
.domain_name
) {
13543 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13544 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13547 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13548 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
));
13550 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13551 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
));
13552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13554 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
13555 if (_ptr_domain_guid
) {
13556 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
13558 r
->in
.domain_guid
= NULL
;
13560 if (r
->in
.domain_guid
) {
13561 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13562 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
13563 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
13566 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
13567 if (_ptr_site_name
) {
13568 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
13570 r
->in
.site_name
= NULL
;
13572 if (r
->in
.site_name
) {
13573 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13574 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
13575 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
13576 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
13577 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
13578 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
));
13580 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
13581 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
));
13582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
13584 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
13585 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13586 ZERO_STRUCTP(r
->out
.info
);
13588 if (flags
& NDR_OUT
) {
13589 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13590 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13592 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13593 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13594 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
13596 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
13598 *r
->out
.info
= NULL
;
13600 if (*r
->out
.info
) {
13601 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13602 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
13603 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
13606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13607 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13609 return NDR_ERR_SUCCESS
;
13612 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13614 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
13616 if (flags
& NDR_SET_VALUES
) {
13617 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13619 if (flags
& NDR_IN
) {
13620 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
13622 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
13624 if (r
->in
.server_unc
) {
13625 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
13628 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13630 if (r
->in
.domain_name
) {
13631 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13634 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
13636 if (r
->in
.domain_guid
) {
13637 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
13640 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
13642 if (r
->in
.site_name
) {
13643 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
13646 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
13649 if (flags
& NDR_OUT
) {
13650 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
13652 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13654 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
13656 if (*r
->out
.info
) {
13657 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
13661 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13667 static enum ndr_err_code
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
13669 if (flags
& NDR_IN
) {
13670 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13671 if (r
->in
.computer_name
) {
13672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13675 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
));
13678 if (flags
& NDR_OUT
) {
13679 if (r
->out
.site
== NULL
) {
13680 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13682 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.site
));
13683 if (*r
->out
.site
) {
13684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13687 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13689 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13691 return NDR_ERR_SUCCESS
;
13694 static enum ndr_err_code
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
13696 uint32_t _ptr_computer_name
;
13697 uint32_t _ptr_site
;
13698 TALLOC_CTX
*_mem_save_computer_name_0
;
13699 TALLOC_CTX
*_mem_save_site_0
;
13700 TALLOC_CTX
*_mem_save_site_1
;
13701 if (flags
& NDR_IN
) {
13702 ZERO_STRUCT(r
->out
);
13704 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13705 if (_ptr_computer_name
) {
13706 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13708 r
->in
.computer_name
= NULL
;
13710 if (r
->in
.computer_name
) {
13711 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13712 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13713 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13714 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13715 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13716 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
));
13718 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13719 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
));
13720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13722 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13723 ZERO_STRUCTP(r
->out
.site
);
13725 if (flags
& NDR_OUT
) {
13726 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13727 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13729 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13730 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
13731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site
));
13733 NDR_PULL_ALLOC(ndr
, *r
->out
.site
);
13735 *r
->out
.site
= NULL
;
13737 if (*r
->out
.site
) {
13738 _mem_save_site_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13739 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.site
, 0);
13740 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
13741 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
13742 if (ndr_get_array_length(ndr
, r
->out
.site
) > ndr_get_array_size(ndr
, r
->out
.site
)) {
13743 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
));
13745 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t)));
13746 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t), CH_UTF16
));
13747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_1
, 0);
13749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
13750 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13752 return NDR_ERR_SUCCESS
;
13755 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
13757 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
13759 if (flags
& NDR_SET_VALUES
) {
13760 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13762 if (flags
& NDR_IN
) {
13763 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
13765 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13767 if (r
->in
.computer_name
) {
13768 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13773 if (flags
& NDR_OUT
) {
13774 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
13776 ndr_print_ptr(ndr
, "site", r
->out
.site
);
13778 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
13780 if (*r
->out
.site
) {
13781 ndr_print_string(ndr
, "site", *r
->out
.site
);
13785 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13791 static enum ndr_err_code
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13793 if (flags
& NDR_IN
) {
13794 if (r
->in
.server_name
== NULL
) {
13795 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13800 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
));
13801 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13802 if (r
->in
.computer_name
) {
13803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13806 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
));
13808 if (r
->in
.credential
== NULL
) {
13809 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13811 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13812 if (r
->in
.return_authenticator
== NULL
) {
13813 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13815 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
13817 if (r
->in
.query
== NULL
) {
13818 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13820 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13821 NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13823 if (flags
& NDR_OUT
) {
13824 if (r
->out
.return_authenticator
== NULL
) {
13825 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13827 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13828 if (r
->out
.info
== NULL
) {
13829 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13831 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13832 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13833 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13835 return NDR_ERR_SUCCESS
;
13838 static enum ndr_err_code
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
13840 uint32_t _ptr_computer_name
;
13841 TALLOC_CTX
*_mem_save_computer_name_0
;
13842 TALLOC_CTX
*_mem_save_credential_0
;
13843 TALLOC_CTX
*_mem_save_return_authenticator_0
;
13844 TALLOC_CTX
*_mem_save_query_0
;
13845 TALLOC_CTX
*_mem_save_info_0
;
13846 if (flags
& NDR_IN
) {
13847 ZERO_STRUCT(r
->out
);
13849 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13850 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13851 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13852 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
));
13854 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13855 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
));
13856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13857 if (_ptr_computer_name
) {
13858 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13860 r
->in
.computer_name
= NULL
;
13862 if (r
->in
.computer_name
) {
13863 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13864 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13867 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13868 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
));
13870 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13871 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
));
13872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13874 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13875 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
13877 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13878 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
13879 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13880 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
13881 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13882 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
13884 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13885 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13886 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13888 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13889 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13890 NDR_PULL_ALLOC(ndr
, r
->in
.query
);
13892 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13893 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.query
, LIBNDR_FLAG_REF_ALLOC
);
13894 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13895 NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
13897 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13898 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
13899 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13900 ZERO_STRUCTP(r
->out
.info
);
13902 if (flags
& NDR_OUT
) {
13903 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13904 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13906 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13907 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13908 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13910 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13911 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13913 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13914 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13915 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13916 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13918 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13920 return NDR_ERR_SUCCESS
;
13923 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13925 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
13927 if (flags
& NDR_SET_VALUES
) {
13928 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13930 if (flags
& NDR_IN
) {
13931 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
13933 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13935 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13937 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13939 if (r
->in
.computer_name
) {
13940 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13943 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
13945 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
13947 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13949 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13951 ndr_print_uint32(ndr
, "level", r
->in
.level
);
13952 ndr_print_ptr(ndr
, "query", r
->in
.query
);
13954 ndr_print_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
);
13955 ndr_print_netr_WorkstationInfo(ndr
, "query", r
->in
.query
);
13959 if (flags
& NDR_OUT
) {
13960 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
13962 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13964 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13966 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13968 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
13969 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
13971 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13977 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
13979 if (flags
& NDR_IN
) {
13980 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13981 if (r
->in
.server_name
) {
13982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13985 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
));
13987 if (r
->in
.account_name
== NULL
) {
13988 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13993 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
));
13994 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13995 if (r
->in
.computer_name
== NULL
) {
13996 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14001 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
));
14002 if (r
->in
.credential
== NULL
) {
14003 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14005 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14006 if (r
->in
.new_password
== NULL
) {
14007 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14009 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
14011 if (flags
& NDR_OUT
) {
14012 if (r
->out
.return_authenticator
== NULL
) {
14013 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14015 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14016 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
14018 return NDR_ERR_SUCCESS
;
14021 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
14023 uint32_t _ptr_server_name
;
14024 TALLOC_CTX
*_mem_save_server_name_0
;
14025 TALLOC_CTX
*_mem_save_credential_0
;
14026 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14027 TALLOC_CTX
*_mem_save_new_password_0
;
14028 if (flags
& NDR_IN
) {
14029 ZERO_STRUCT(r
->out
);
14031 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14032 if (_ptr_server_name
) {
14033 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14035 r
->in
.server_name
= NULL
;
14037 if (r
->in
.server_name
) {
14038 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14039 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14040 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14041 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14042 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14043 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
));
14045 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14046 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
));
14047 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14049 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14050 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14051 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14052 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
));
14054 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14055 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
));
14056 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14057 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14058 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14059 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14060 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
));
14062 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14063 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
));
14064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14065 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14067 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14069 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14071 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14072 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
14074 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14075 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
14076 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
14077 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14078 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14079 ZERO_STRUCTP(r
->out
.return_authenticator
);
14081 if (flags
& NDR_OUT
) {
14082 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14083 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14085 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14086 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14087 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14089 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14091 return NDR_ERR_SUCCESS
;
14094 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
14096 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
14098 if (flags
& NDR_SET_VALUES
) {
14099 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14101 if (flags
& NDR_IN
) {
14102 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
14104 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14106 if (r
->in
.server_name
) {
14107 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14110 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14112 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14114 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14115 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14117 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14119 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14121 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14123 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
14125 ndr_print_netr_CryptPassword(ndr
, "new_password", r
->in
.new_password
);
14129 if (flags
& NDR_OUT
) {
14130 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
14132 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14134 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14136 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14142 static enum ndr_err_code
ndr_push_netr_ServerPasswordGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordGet
*r
)
14144 if (flags
& NDR_IN
) {
14145 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14146 if (r
->in
.server_name
) {
14147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14150 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
));
14152 if (r
->in
.account_name
== NULL
) {
14153 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14155 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14156 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14157 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14158 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
));
14159 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14160 if (r
->in
.computer_name
== NULL
) {
14161 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14166 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
));
14167 if (r
->in
.credential
== NULL
) {
14168 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14170 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14172 if (flags
& NDR_OUT
) {
14173 if (r
->out
.return_authenticator
== NULL
) {
14174 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14176 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14177 if (r
->out
.password
== NULL
) {
14178 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14180 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14181 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14183 return NDR_ERR_SUCCESS
;
14186 static enum ndr_err_code
ndr_pull_netr_ServerPasswordGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordGet
*r
)
14188 uint32_t _ptr_server_name
;
14189 TALLOC_CTX
*_mem_save_server_name_0
;
14190 TALLOC_CTX
*_mem_save_credential_0
;
14191 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14192 TALLOC_CTX
*_mem_save_password_0
;
14193 if (flags
& NDR_IN
) {
14194 ZERO_STRUCT(r
->out
);
14196 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14197 if (_ptr_server_name
) {
14198 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14200 r
->in
.server_name
= NULL
;
14202 if (r
->in
.server_name
) {
14203 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14204 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14205 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14206 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14207 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14208 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
));
14210 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14211 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
));
14212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14214 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14215 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14216 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14217 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
));
14219 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14220 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
));
14221 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14222 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14223 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14224 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14225 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
));
14227 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14228 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
));
14229 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14230 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14232 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14233 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14234 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14236 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14237 ZERO_STRUCTP(r
->out
.return_authenticator
);
14238 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14239 ZERO_STRUCTP(r
->out
.password
);
14241 if (flags
& NDR_OUT
) {
14242 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14243 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14245 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14246 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14247 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14249 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14250 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14252 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14253 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
14254 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14256 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14258 return NDR_ERR_SUCCESS
;
14261 _PUBLIC_
void ndr_print_netr_ServerPasswordGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordGet
*r
)
14263 ndr_print_struct(ndr
, name
, "netr_ServerPasswordGet");
14265 if (flags
& NDR_SET_VALUES
) {
14266 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14268 if (flags
& NDR_IN
) {
14269 ndr_print_struct(ndr
, "in", "netr_ServerPasswordGet");
14271 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14273 if (r
->in
.server_name
) {
14274 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14277 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14279 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14281 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14282 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14284 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14286 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14288 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14292 if (flags
& NDR_OUT
) {
14293 ndr_print_struct(ndr
, "out", "netr_ServerPasswordGet");
14295 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14297 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14299 ndr_print_ptr(ndr
, "password", r
->out
.password
);
14301 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
14303 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14309 static enum ndr_err_code
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14311 if (flags
& NDR_IN
) {
14313 if (flags
& NDR_OUT
) {
14314 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14316 return NDR_ERR_SUCCESS
;
14319 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
14321 if (flags
& NDR_IN
) {
14323 if (flags
& NDR_OUT
) {
14324 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14326 return NDR_ERR_SUCCESS
;
14329 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14331 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
14333 if (flags
& NDR_SET_VALUES
) {
14334 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14336 if (flags
& NDR_IN
) {
14337 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
14341 if (flags
& NDR_OUT
) {
14342 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
14344 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14350 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14352 uint32_t cntr_addresses_1
;
14353 if (flags
& NDR_IN
) {
14354 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14355 if (r
->in
.server_name
) {
14356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14359 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
));
14361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14362 if (r
->in
.addresses
== NULL
) {
14363 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14366 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14367 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14369 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14370 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14373 if (flags
& NDR_OUT
) {
14374 if (r
->out
.ctr
== NULL
) {
14375 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14377 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14379 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14381 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14383 return NDR_ERR_SUCCESS
;
14386 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesW
*r
)
14388 uint32_t _ptr_server_name
;
14389 uint32_t cntr_addresses_1
;
14391 TALLOC_CTX
*_mem_save_server_name_0
;
14392 TALLOC_CTX
*_mem_save_addresses_1
;
14393 TALLOC_CTX
*_mem_save_ctr_0
;
14394 TALLOC_CTX
*_mem_save_ctr_1
;
14395 if (flags
& NDR_IN
) {
14396 ZERO_STRUCT(r
->out
);
14398 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14399 if (_ptr_server_name
) {
14400 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14402 r
->in
.server_name
= NULL
;
14404 if (r
->in
.server_name
) {
14405 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14406 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14407 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14408 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14409 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14410 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
));
14412 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14413 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
));
14414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14417 if (r
->in
.count
> 32000) {
14418 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14420 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14421 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14422 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14424 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14425 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14426 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14427 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14429 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14430 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14433 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14434 ZERO_STRUCTP(r
->out
.ctr
);
14435 if (r
->in
.addresses
) {
14436 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14439 if (flags
& NDR_OUT
) {
14440 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14441 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14443 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14444 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14445 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14447 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14449 *r
->out
.ctr
= NULL
;
14452 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14453 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14454 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
14457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14458 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14460 return NDR_ERR_SUCCESS
;
14463 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14465 uint32_t cntr_addresses_1
;
14466 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesW");
14468 if (flags
& NDR_SET_VALUES
) {
14469 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14471 if (flags
& NDR_IN
) {
14472 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesW");
14474 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14476 if (r
->in
.server_name
) {
14477 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14480 ndr_print_uint32(ndr
, "count", r
->in
.count
);
14481 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
14483 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
14485 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
14487 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
14488 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
14496 if (flags
& NDR_OUT
) {
14497 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesW");
14499 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14501 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
14504 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr
, "ctr", *r
->out
.ctr
);
14508 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14514 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14516 if (flags
& NDR_IN
) {
14517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
14518 if (r
->in
.server_unc
) {
14519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14522 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
));
14524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
14525 if (r
->in
.client_account
) {
14526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14529 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
));
14531 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.mask
));
14532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
14533 if (r
->in
.domain_name
) {
14534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14537 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
));
14539 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
14540 if (r
->in
.domain_guid
) {
14541 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
14544 if (r
->in
.site_name
) {
14545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14548 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
));
14550 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
14552 if (flags
& NDR_OUT
) {
14553 if (r
->out
.info
== NULL
) {
14554 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14556 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
14557 if (*r
->out
.info
) {
14558 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14560 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14562 return NDR_ERR_SUCCESS
;
14565 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
14567 uint32_t _ptr_server_unc
;
14568 uint32_t _ptr_client_account
;
14569 uint32_t _ptr_domain_name
;
14570 uint32_t _ptr_domain_guid
;
14571 uint32_t _ptr_site_name
;
14572 uint32_t _ptr_info
;
14573 TALLOC_CTX
*_mem_save_server_unc_0
;
14574 TALLOC_CTX
*_mem_save_client_account_0
;
14575 TALLOC_CTX
*_mem_save_domain_name_0
;
14576 TALLOC_CTX
*_mem_save_domain_guid_0
;
14577 TALLOC_CTX
*_mem_save_site_name_0
;
14578 TALLOC_CTX
*_mem_save_info_0
;
14579 TALLOC_CTX
*_mem_save_info_1
;
14580 if (flags
& NDR_IN
) {
14581 ZERO_STRUCT(r
->out
);
14583 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
14584 if (_ptr_server_unc
) {
14585 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
14587 r
->in
.server_unc
= NULL
;
14589 if (r
->in
.server_unc
) {
14590 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14591 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
14592 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
14593 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
14594 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
14595 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
));
14597 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
14598 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
));
14599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
14601 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
14602 if (_ptr_client_account
) {
14603 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
14605 r
->in
.client_account
= NULL
;
14607 if (r
->in
.client_account
) {
14608 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14609 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
14610 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
14611 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
14612 if (ndr_get_array_length(ndr
, &r
->in
.client_account
) > ndr_get_array_size(ndr
, &r
->in
.client_account
)) {
14613 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
));
14615 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t)));
14616 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
));
14617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
14619 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.mask
));
14620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
14621 if (_ptr_domain_name
) {
14622 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
14624 r
->in
.domain_name
= NULL
;
14626 if (r
->in
.domain_name
) {
14627 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14628 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
14629 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
14630 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
14631 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
14632 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
));
14634 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
14635 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
));
14636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
14638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
14639 if (_ptr_domain_guid
) {
14640 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
14642 r
->in
.domain_guid
= NULL
;
14644 if (r
->in
.domain_guid
) {
14645 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14646 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
14647 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14648 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
14650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
14651 if (_ptr_site_name
) {
14652 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
14654 r
->in
.site_name
= NULL
;
14656 if (r
->in
.site_name
) {
14657 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14658 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
14659 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
14660 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
14661 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
14662 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
));
14664 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
14665 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
));
14666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
14668 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14669 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14670 ZERO_STRUCTP(r
->out
.info
);
14672 if (flags
& NDR_OUT
) {
14673 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14674 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14676 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14677 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
14678 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
14680 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
14682 *r
->out
.info
= NULL
;
14684 if (*r
->out
.info
) {
14685 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14686 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
14687 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
14690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14691 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14693 return NDR_ERR_SUCCESS
;
14696 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14698 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
14700 if (flags
& NDR_SET_VALUES
) {
14701 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14703 if (flags
& NDR_IN
) {
14704 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
14706 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
14708 if (r
->in
.server_unc
) {
14709 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
14712 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
14714 if (r
->in
.client_account
) {
14715 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
14718 ndr_print_samr_AcctFlags(ndr
, "mask", r
->in
.mask
);
14719 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
14721 if (r
->in
.domain_name
) {
14722 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
14725 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
14727 if (r
->in
.domain_guid
) {
14728 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
14731 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
14733 if (r
->in
.site_name
) {
14734 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
14737 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
14740 if (flags
& NDR_OUT
) {
14741 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
14743 ndr_print_ptr(ndr
, "info", r
->out
.info
);
14745 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
14747 if (*r
->out
.info
) {
14748 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
14752 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14758 static enum ndr_err_code
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14760 if (flags
& NDR_IN
) {
14762 if (flags
& NDR_OUT
) {
14763 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14765 return NDR_ERR_SUCCESS
;
14768 static enum ndr_err_code
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14770 if (flags
& NDR_IN
) {
14772 if (flags
& NDR_OUT
) {
14773 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14775 return NDR_ERR_SUCCESS
;
14778 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14780 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14782 if (flags
& NDR_SET_VALUES
) {
14783 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14785 if (flags
& NDR_IN
) {
14786 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14790 if (flags
& NDR_OUT
) {
14791 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14793 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14799 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14801 if (flags
& NDR_IN
) {
14802 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14803 if (r
->in
.server_name
) {
14804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14807 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
));
14810 if (flags
& NDR_OUT
) {
14811 if (r
->out
.dom_trust_list
== NULL
) {
14812 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14814 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14815 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14817 return NDR_ERR_SUCCESS
;
14820 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14822 uint32_t _ptr_server_name
;
14823 TALLOC_CTX
*_mem_save_server_name_0
;
14824 TALLOC_CTX
*_mem_save_dom_trust_list_0
;
14825 if (flags
& NDR_IN
) {
14826 ZERO_STRUCT(r
->out
);
14828 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14829 if (_ptr_server_name
) {
14830 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14832 r
->in
.server_name
= NULL
;
14834 if (r
->in
.server_name
) {
14835 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14836 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14837 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14838 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14839 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14840 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
));
14842 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14843 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
));
14844 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14846 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14847 ZERO_STRUCTP(r
->out
.dom_trust_list
);
14849 if (flags
& NDR_OUT
) {
14850 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14851 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14853 _mem_save_dom_trust_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14854 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dom_trust_list
, LIBNDR_FLAG_REF_ALLOC
);
14855 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dom_trust_list_0
, LIBNDR_FLAG_REF_ALLOC
);
14857 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14859 return NDR_ERR_SUCCESS
;
14862 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14864 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomainsEx");
14866 if (flags
& NDR_SET_VALUES
) {
14867 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14869 if (flags
& NDR_IN
) {
14870 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomainsEx");
14872 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14874 if (r
->in
.server_name
) {
14875 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14880 if (flags
& NDR_OUT
) {
14881 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomainsEx");
14883 ndr_print_ptr(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14885 ndr_print_netr_DomainTrustList(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14887 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14893 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
14895 uint32_t cntr_addresses_1
;
14896 if (flags
& NDR_IN
) {
14897 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14898 if (r
->in
.server_name
) {
14899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14902 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
));
14904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14905 if (r
->in
.addresses
== NULL
) {
14906 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14909 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14910 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14912 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14913 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14916 if (flags
& NDR_OUT
) {
14917 if (r
->out
.ctr
== NULL
) {
14918 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14920 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14922 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14924 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14926 return NDR_ERR_SUCCESS
;
14929 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesExW
*r
)
14931 uint32_t _ptr_server_name
;
14932 uint32_t cntr_addresses_1
;
14934 TALLOC_CTX
*_mem_save_server_name_0
;
14935 TALLOC_CTX
*_mem_save_addresses_1
;
14936 TALLOC_CTX
*_mem_save_ctr_0
;
14937 TALLOC_CTX
*_mem_save_ctr_1
;
14938 if (flags
& NDR_IN
) {
14939 ZERO_STRUCT(r
->out
);
14941 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14942 if (_ptr_server_name
) {
14943 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14945 r
->in
.server_name
= NULL
;
14947 if (r
->in
.server_name
) {
14948 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14949 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14950 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14951 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14952 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14953 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
));
14955 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14956 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
));
14957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14960 if (r
->in
.count
> 32000) {
14961 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14963 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14965 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14967 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14968 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14969 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14970 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14972 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14973 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14976 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14977 ZERO_STRUCTP(r
->out
.ctr
);
14978 if (r
->in
.addresses
) {
14979 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14982 if (flags
& NDR_OUT
) {
14983 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14984 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14986 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14987 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14988 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14990 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14992 *r
->out
.ctr
= NULL
;
14995 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14996 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14997 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14998 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15000 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15001 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15003 return NDR_ERR_SUCCESS
;
15006 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
15008 uint32_t cntr_addresses_1
;
15009 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExW");
15011 if (flags
& NDR_SET_VALUES
) {
15012 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15014 if (flags
& NDR_IN
) {
15015 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesExW");
15017 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15019 if (r
->in
.server_name
) {
15020 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15023 ndr_print_uint32(ndr
, "count", r
->in
.count
);
15024 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
15026 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
15028 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
15030 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
15031 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
15039 if (flags
& NDR_OUT
) {
15040 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesExW");
15042 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15044 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15047 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr
, "ctr", *r
->out
.ctr
);
15051 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15057 static enum ndr_err_code
ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push
*ndr
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15059 if (flags
& NDR_IN
) {
15060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15061 if (r
->in
.server_name
) {
15062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15065 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
));
15068 if (flags
& NDR_OUT
) {
15069 if (r
->out
.ctr
== NULL
) {
15070 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15072 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
15074 NDR_CHECK(ndr_push_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15076 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15078 return NDR_ERR_SUCCESS
;
15081 static enum ndr_err_code
ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull
*ndr
, int flags
, struct netr_DsrGetDcSiteCoverageW
*r
)
15083 uint32_t _ptr_server_name
;
15085 TALLOC_CTX
*_mem_save_server_name_0
;
15086 TALLOC_CTX
*_mem_save_ctr_0
;
15087 TALLOC_CTX
*_mem_save_ctr_1
;
15088 if (flags
& NDR_IN
) {
15089 ZERO_STRUCT(r
->out
);
15091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15092 if (_ptr_server_name
) {
15093 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15095 r
->in
.server_name
= NULL
;
15097 if (r
->in
.server_name
) {
15098 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15099 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15100 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15101 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15102 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15103 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
));
15105 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15106 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
));
15107 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15109 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15110 ZERO_STRUCTP(r
->out
.ctr
);
15112 if (flags
& NDR_OUT
) {
15113 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15114 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15116 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15117 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
15118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
15120 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
15122 *r
->out
.ctr
= NULL
;
15125 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15126 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
15127 NDR_CHECK(ndr_pull_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15131 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15133 return NDR_ERR_SUCCESS
;
15136 _PUBLIC_
void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15138 ndr_print_struct(ndr
, name
, "netr_DsrGetDcSiteCoverageW");
15140 if (flags
& NDR_SET_VALUES
) {
15141 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15143 if (flags
& NDR_IN
) {
15144 ndr_print_struct(ndr
, "in", "netr_DsrGetDcSiteCoverageW");
15146 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15148 if (r
->in
.server_name
) {
15149 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15154 if (flags
& NDR_OUT
) {
15155 ndr_print_struct(ndr
, "out", "netr_DsrGetDcSiteCoverageW");
15157 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15159 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15162 ndr_print_DcSitesCtr(ndr
, "ctr", *r
->out
.ctr
);
15166 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15172 static enum ndr_err_code
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15174 if (flags
& NDR_IN
) {
15175 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15176 if (r
->in
.server_name
) {
15177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15180 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
));
15182 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
15183 if (r
->in
.computer_name
) {
15184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15186 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15187 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
));
15189 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
15190 if (r
->in
.logon
== NULL
) {
15191 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15193 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15194 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15195 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
15196 if (r
->in
.flags
== NULL
) {
15197 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
15201 if (flags
& NDR_OUT
) {
15202 if (r
->out
.validation
== NULL
) {
15203 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15205 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15206 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15207 if (r
->out
.authoritative
== NULL
) {
15208 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15210 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
15211 if (r
->out
.flags
== NULL
) {
15212 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
15215 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15217 return NDR_ERR_SUCCESS
;
15220 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
15222 uint32_t _ptr_server_name
;
15223 uint32_t _ptr_computer_name
;
15224 TALLOC_CTX
*_mem_save_server_name_0
;
15225 TALLOC_CTX
*_mem_save_computer_name_0
;
15226 TALLOC_CTX
*_mem_save_logon_0
;
15227 TALLOC_CTX
*_mem_save_validation_0
;
15228 TALLOC_CTX
*_mem_save_authoritative_0
;
15229 TALLOC_CTX
*_mem_save_flags_0
;
15230 if (flags
& NDR_IN
) {
15231 ZERO_STRUCT(r
->out
);
15233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15234 if (_ptr_server_name
) {
15235 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15237 r
->in
.server_name
= NULL
;
15239 if (r
->in
.server_name
) {
15240 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15241 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15242 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15243 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15244 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15245 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
));
15247 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15248 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
));
15249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15251 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
15252 if (_ptr_computer_name
) {
15253 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
15255 r
->in
.computer_name
= NULL
;
15257 if (r
->in
.computer_name
) {
15258 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15259 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
15260 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15261 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15262 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15263 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
));
15265 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15266 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
));
15267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
15269 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
15270 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15271 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
15273 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15274 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
15275 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15276 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
15278 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
15279 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15280 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
15282 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15283 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15284 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15285 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15286 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15287 ZERO_STRUCTP(r
->out
.validation
);
15288 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15289 ZERO_STRUCTP(r
->out
.authoritative
);
15290 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15291 *r
->out
.flags
= *r
->in
.flags
;
15293 if (flags
& NDR_OUT
) {
15294 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15295 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15297 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15298 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
15299 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15300 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
15302 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15303 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15305 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15306 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
15307 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
15308 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
15309 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15310 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15312 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15313 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
15315 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15316 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15318 return NDR_ERR_SUCCESS
;
15321 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15323 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
15325 if (flags
& NDR_SET_VALUES
) {
15326 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15328 if (flags
& NDR_IN
) {
15329 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
15331 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15333 if (r
->in
.server_name
) {
15334 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15337 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15339 if (r
->in
.computer_name
) {
15340 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15343 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
15344 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
15346 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
15347 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
15349 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
15350 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
15352 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
15356 if (flags
& NDR_OUT
) {
15357 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
15359 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
15361 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
15362 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
15364 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
15366 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
15368 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
15370 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
15372 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15378 static enum ndr_err_code
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15380 if (flags
& NDR_IN
) {
15381 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15382 if (r
->in
.server_name
) {
15383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15386 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
));
15388 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
15390 if (flags
& NDR_OUT
) {
15391 if (r
->out
.trusts
== NULL
) {
15392 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15394 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15395 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15397 return NDR_ERR_SUCCESS
;
15400 static enum ndr_err_code
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
15402 uint32_t _ptr_server_name
;
15403 TALLOC_CTX
*_mem_save_server_name_0
;
15404 TALLOC_CTX
*_mem_save_trusts_0
;
15405 if (flags
& NDR_IN
) {
15406 ZERO_STRUCT(r
->out
);
15408 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15409 if (_ptr_server_name
) {
15410 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15412 r
->in
.server_name
= NULL
;
15414 if (r
->in
.server_name
) {
15415 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15416 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15417 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15418 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15419 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15420 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
));
15422 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15423 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
));
15424 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15426 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
15427 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15428 ZERO_STRUCTP(r
->out
.trusts
);
15430 if (flags
& NDR_OUT
) {
15431 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15432 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15434 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15435 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, LIBNDR_FLAG_REF_ALLOC
);
15436 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15437 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, LIBNDR_FLAG_REF_ALLOC
);
15438 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15440 return NDR_ERR_SUCCESS
;
15443 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15445 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
15447 if (flags
& NDR_SET_VALUES
) {
15448 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15450 if (flags
& NDR_IN
) {
15451 ndr_print_struct(ndr
, "in", "netr_DsrEnumerateDomainTrusts");
15453 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15455 if (r
->in
.server_name
) {
15456 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15459 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
15462 if (flags
& NDR_OUT
) {
15463 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
15465 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
15467 ndr_print_netr_DomainTrustList(ndr
, "trusts", r
->out
.trusts
);
15469 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15475 static enum ndr_err_code
ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push
*ndr
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15477 if (flags
& NDR_IN
) {
15478 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15479 if (r
->in
.server_name
) {
15480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15481 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15483 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
));
15485 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain
));
15486 if (r
->in
.domain
) {
15487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15490 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain
, ndr_charset_length(r
->in
.domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15492 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
15493 if (r
->in
.domain_guid
) {
15494 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15496 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.dsa_guid
));
15497 if (r
->in
.dsa_guid
) {
15498 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15500 if (r
->in
.dns_host
== NULL
) {
15501 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15506 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
));
15508 if (flags
& NDR_OUT
) {
15509 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15511 return NDR_ERR_SUCCESS
;
15514 static enum ndr_err_code
ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull
*ndr
, int flags
, struct netr_DsrDeregisterDNSHostRecords
*r
)
15516 uint32_t _ptr_server_name
;
15517 uint32_t _ptr_domain
;
15518 uint32_t _ptr_domain_guid
;
15519 uint32_t _ptr_dsa_guid
;
15520 TALLOC_CTX
*_mem_save_server_name_0
;
15521 TALLOC_CTX
*_mem_save_domain_0
;
15522 TALLOC_CTX
*_mem_save_domain_guid_0
;
15523 TALLOC_CTX
*_mem_save_dsa_guid_0
;
15524 if (flags
& NDR_IN
) {
15525 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15526 if (_ptr_server_name
) {
15527 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15529 r
->in
.server_name
= NULL
;
15531 if (r
->in
.server_name
) {
15532 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15533 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15534 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15535 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15536 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15537 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
));
15539 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15540 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
));
15541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15543 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
15545 NDR_PULL_ALLOC(ndr
, r
->in
.domain
);
15547 r
->in
.domain
= NULL
;
15549 if (r
->in
.domain
) {
15550 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15551 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain
, 0);
15552 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain
));
15553 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain
));
15554 if (ndr_get_array_length(ndr
, &r
->in
.domain
) > ndr_get_array_size(ndr
, &r
->in
.domain
)) {
15555 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
));
15557 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t)));
15558 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t), CH_UTF16
));
15559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
15561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
15562 if (_ptr_domain_guid
) {
15563 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
15565 r
->in
.domain_guid
= NULL
;
15567 if (r
->in
.domain_guid
) {
15568 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15569 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
15570 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
15573 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_guid
));
15574 if (_ptr_dsa_guid
) {
15575 NDR_PULL_ALLOC(ndr
, r
->in
.dsa_guid
);
15577 r
->in
.dsa_guid
= NULL
;
15579 if (r
->in
.dsa_guid
) {
15580 _mem_save_dsa_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15581 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.dsa_guid
, 0);
15582 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_guid_0
, 0);
15585 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.dns_host
));
15586 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.dns_host
));
15587 if (ndr_get_array_length(ndr
, &r
->in
.dns_host
) > ndr_get_array_size(ndr
, &r
->in
.dns_host
)) {
15588 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
));
15590 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t)));
15591 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
));
15593 if (flags
& NDR_OUT
) {
15594 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15596 return NDR_ERR_SUCCESS
;
15599 _PUBLIC_
void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15601 ndr_print_struct(ndr
, name
, "netr_DsrDeregisterDNSHostRecords");
15603 if (flags
& NDR_SET_VALUES
) {
15604 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15606 if (flags
& NDR_IN
) {
15607 ndr_print_struct(ndr
, "in", "netr_DsrDeregisterDNSHostRecords");
15609 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15611 if (r
->in
.server_name
) {
15612 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15615 ndr_print_ptr(ndr
, "domain", r
->in
.domain
);
15617 if (r
->in
.domain
) {
15618 ndr_print_string(ndr
, "domain", r
->in
.domain
);
15621 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
15623 if (r
->in
.domain_guid
) {
15624 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
15627 ndr_print_ptr(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15629 if (r
->in
.dsa_guid
) {
15630 ndr_print_GUID(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15633 ndr_print_ptr(ndr
, "dns_host", r
->in
.dns_host
);
15635 ndr_print_string(ndr
, "dns_host", r
->in
.dns_host
);
15639 if (flags
& NDR_OUT
) {
15640 ndr_print_struct(ndr
, "out", "netr_DsrDeregisterDNSHostRecords");
15642 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15648 static enum ndr_err_code
ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15650 if (flags
& NDR_IN
) {
15651 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15652 if (r
->in
.server_name
) {
15653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15656 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
));
15658 if (r
->in
.account_name
== NULL
) {
15659 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15664 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
));
15665 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
15666 if (r
->in
.computer_name
== NULL
) {
15667 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15670 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15672 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
));
15673 if (r
->in
.credential
== NULL
) {
15674 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15676 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15678 if (flags
& NDR_OUT
) {
15679 if (r
->out
.return_authenticator
== NULL
) {
15680 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15682 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15683 if (r
->out
.password
== NULL
) {
15684 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15686 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15687 if (r
->out
.password2
== NULL
) {
15688 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15690 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15691 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15693 return NDR_ERR_SUCCESS
;
15696 static enum ndr_err_code
ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerTrustPasswordsGet
*r
)
15698 uint32_t _ptr_server_name
;
15699 TALLOC_CTX
*_mem_save_server_name_0
;
15700 TALLOC_CTX
*_mem_save_credential_0
;
15701 TALLOC_CTX
*_mem_save_return_authenticator_0
;
15702 TALLOC_CTX
*_mem_save_password_0
;
15703 TALLOC_CTX
*_mem_save_password2_0
;
15704 if (flags
& NDR_IN
) {
15705 ZERO_STRUCT(r
->out
);
15707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15708 if (_ptr_server_name
) {
15709 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15711 r
->in
.server_name
= NULL
;
15713 if (r
->in
.server_name
) {
15714 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15715 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15716 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15717 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15718 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15719 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
));
15721 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15722 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
));
15723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15725 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
15726 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
15727 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
15728 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
));
15730 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
15731 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
));
15732 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
15733 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15734 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15735 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15736 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
));
15738 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15739 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
));
15740 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15741 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
15743 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15744 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
15745 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
15747 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15748 ZERO_STRUCTP(r
->out
.return_authenticator
);
15749 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15750 ZERO_STRUCTP(r
->out
.password
);
15751 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15752 ZERO_STRUCTP(r
->out
.password2
);
15754 if (flags
& NDR_OUT
) {
15755 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15756 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15758 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15759 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
15760 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15761 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
15762 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15763 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15765 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15766 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
15767 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
15769 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15770 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15772 _mem_save_password2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15773 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password2
, LIBNDR_FLAG_REF_ALLOC
);
15774 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password2_0
, LIBNDR_FLAG_REF_ALLOC
);
15776 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15778 return NDR_ERR_SUCCESS
;
15781 _PUBLIC_
void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15783 ndr_print_struct(ndr
, name
, "netr_ServerTrustPasswordsGet");
15785 if (flags
& NDR_SET_VALUES
) {
15786 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15788 if (flags
& NDR_IN
) {
15789 ndr_print_struct(ndr
, "in", "netr_ServerTrustPasswordsGet");
15791 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15793 if (r
->in
.server_name
) {
15794 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15797 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
15799 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
15801 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
15802 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15804 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15806 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
15808 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
15812 if (flags
& NDR_OUT
) {
15813 ndr_print_struct(ndr
, "out", "netr_ServerTrustPasswordsGet");
15815 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15817 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15819 ndr_print_ptr(ndr
, "password", r
->out
.password
);
15821 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
15823 ndr_print_ptr(ndr
, "password2", r
->out
.password2
);
15825 ndr_print_samr_Password(ndr
, "password2", r
->out
.password2
);
15827 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15833 static enum ndr_err_code
ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15835 if (flags
& NDR_IN
) {
15836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15837 if (r
->in
.server_name
) {
15838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15841 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
));
15843 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.trusted_domain_name
));
15844 if (r
->in
.trusted_domain_name
) {
15845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15848 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
));
15850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15852 if (flags
& NDR_OUT
) {
15853 if (r
->out
.forest_trust_info
== NULL
) {
15854 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15856 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
15857 if (*r
->out
.forest_trust_info
) {
15858 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15860 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15862 return NDR_ERR_SUCCESS
;
15865 static enum ndr_err_code
ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetForestTrustInformation
*r
)
15867 uint32_t _ptr_server_name
;
15868 uint32_t _ptr_trusted_domain_name
;
15869 uint32_t _ptr_forest_trust_info
;
15870 TALLOC_CTX
*_mem_save_server_name_0
;
15871 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
15872 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
15873 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
15874 if (flags
& NDR_IN
) {
15875 ZERO_STRUCT(r
->out
);
15877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15878 if (_ptr_server_name
) {
15879 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15881 r
->in
.server_name
= NULL
;
15883 if (r
->in
.server_name
) {
15884 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15885 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15886 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15887 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15888 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15889 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
));
15891 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15892 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
));
15893 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15895 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
15896 if (_ptr_trusted_domain_name
) {
15897 NDR_PULL_ALLOC(ndr
, r
->in
.trusted_domain_name
);
15899 r
->in
.trusted_domain_name
= NULL
;
15901 if (r
->in
.trusted_domain_name
) {
15902 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15903 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.trusted_domain_name
, 0);
15904 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
15905 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
15906 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
15907 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
));
15909 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
15910 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
));
15911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
15913 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
15914 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15915 ZERO_STRUCTP(r
->out
.forest_trust_info
);
15917 if (flags
& NDR_OUT
) {
15918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15919 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15921 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15922 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
15923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
15924 if (_ptr_forest_trust_info
) {
15925 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
15927 *r
->out
.forest_trust_info
= NULL
;
15929 if (*r
->out
.forest_trust_info
) {
15930 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15931 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
15932 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
15935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
15936 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15938 return NDR_ERR_SUCCESS
;
15941 _PUBLIC_
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15943 ndr_print_struct(ndr
, name
, "netr_DsRGetForestTrustInformation");
15945 if (flags
& NDR_SET_VALUES
) {
15946 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15948 if (flags
& NDR_IN
) {
15949 ndr_print_struct(ndr
, "in", "netr_DsRGetForestTrustInformation");
15951 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15953 if (r
->in
.server_name
) {
15954 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15957 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15959 if (r
->in
.trusted_domain_name
) {
15960 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15963 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
15966 if (flags
& NDR_OUT
) {
15967 ndr_print_struct(ndr
, "out", "netr_DsRGetForestTrustInformation");
15969 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
15971 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15973 if (*r
->out
.forest_trust_info
) {
15974 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15978 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15984 static enum ndr_err_code
ndr_push_netr_GetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_GetForestTrustInformation
*r
)
15986 if (flags
& NDR_IN
) {
15987 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15988 if (r
->in
.server_name
) {
15989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15992 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
));
15994 if (r
->in
.trusted_domain_name
== NULL
) {
15995 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
16000 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
));
16001 if (r
->in
.credential
== NULL
) {
16002 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16004 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16007 if (flags
& NDR_OUT
) {
16008 if (r
->out
.return_authenticator
== NULL
) {
16009 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16011 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16012 if (r
->out
.forest_trust_info
== NULL
) {
16013 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16015 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
16016 if (*r
->out
.forest_trust_info
) {
16017 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16019 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
16021 return NDR_ERR_SUCCESS
;
16024 static enum ndr_err_code
ndr_pull_netr_GetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_GetForestTrustInformation
*r
)
16026 uint32_t _ptr_server_name
;
16027 uint32_t _ptr_forest_trust_info
;
16028 TALLOC_CTX
*_mem_save_server_name_0
;
16029 TALLOC_CTX
*_mem_save_credential_0
;
16030 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16031 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
16032 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
16033 if (flags
& NDR_IN
) {
16034 ZERO_STRUCT(r
->out
);
16036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16037 if (_ptr_server_name
) {
16038 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16040 r
->in
.server_name
= NULL
;
16042 if (r
->in
.server_name
) {
16043 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16044 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16045 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16046 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16047 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16048 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
));
16050 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16051 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
));
16052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16054 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
16055 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
16056 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
16057 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
));
16059 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
16060 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
));
16061 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16062 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16064 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16065 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16066 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16068 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
16069 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16070 ZERO_STRUCTP(r
->out
.return_authenticator
);
16071 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16072 ZERO_STRUCTP(r
->out
.forest_trust_info
);
16074 if (flags
& NDR_OUT
) {
16075 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16076 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16078 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16079 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16080 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16082 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16083 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16085 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16086 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
16088 if (_ptr_forest_trust_info
) {
16089 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
16091 *r
->out
.forest_trust_info
= NULL
;
16093 if (*r
->out
.forest_trust_info
) {
16094 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16095 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
16096 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
16099 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16100 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
16102 return NDR_ERR_SUCCESS
;
16105 _PUBLIC_
void ndr_print_netr_GetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetForestTrustInformation
*r
)
16107 ndr_print_struct(ndr
, name
, "netr_GetForestTrustInformation");
16109 if (flags
& NDR_SET_VALUES
) {
16110 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16112 if (flags
& NDR_IN
) {
16113 ndr_print_struct(ndr
, "in", "netr_GetForestTrustInformation");
16115 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16117 if (r
->in
.server_name
) {
16118 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16121 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16123 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16125 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16127 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16129 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
16132 if (flags
& NDR_OUT
) {
16133 ndr_print_struct(ndr
, "out", "netr_GetForestTrustInformation");
16135 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16137 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16139 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
16141 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16143 if (*r
->out
.forest_trust_info
) {
16144 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16148 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16154 static enum ndr_err_code
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16156 if (flags
& NDR_IN
) {
16157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16158 if (r
->in
.server_name
) {
16159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16162 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
));
16164 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
16165 if (r
->in
.computer_name
) {
16166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16169 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
));
16171 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
16172 if (r
->in
.credential
) {
16173 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16175 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
16176 if (r
->in
.return_authenticator
) {
16177 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16179 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
16180 if (r
->in
.logon
== NULL
) {
16181 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16183 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16184 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16185 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
16186 if (r
->in
.flags
== NULL
) {
16187 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
16191 if (flags
& NDR_OUT
) {
16192 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
16193 if (r
->out
.return_authenticator
) {
16194 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16196 if (r
->out
.validation
== NULL
) {
16197 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16199 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16200 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16201 if (r
->out
.authoritative
== NULL
) {
16202 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16204 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
16205 if (r
->out
.flags
== NULL
) {
16206 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
16209 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16211 return NDR_ERR_SUCCESS
;
16214 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
16216 uint32_t _ptr_server_name
;
16217 uint32_t _ptr_computer_name
;
16218 uint32_t _ptr_credential
;
16219 uint32_t _ptr_return_authenticator
;
16220 TALLOC_CTX
*_mem_save_server_name_0
;
16221 TALLOC_CTX
*_mem_save_computer_name_0
;
16222 TALLOC_CTX
*_mem_save_credential_0
;
16223 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16224 TALLOC_CTX
*_mem_save_logon_0
;
16225 TALLOC_CTX
*_mem_save_validation_0
;
16226 TALLOC_CTX
*_mem_save_authoritative_0
;
16227 TALLOC_CTX
*_mem_save_flags_0
;
16228 if (flags
& NDR_IN
) {
16229 ZERO_STRUCT(r
->out
);
16231 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16232 if (_ptr_server_name
) {
16233 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16235 r
->in
.server_name
= NULL
;
16237 if (r
->in
.server_name
) {
16238 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16239 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16240 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16241 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16242 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16243 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
));
16245 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16246 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
));
16247 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16249 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
16250 if (_ptr_computer_name
) {
16251 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
16253 r
->in
.computer_name
= NULL
;
16255 if (r
->in
.computer_name
) {
16256 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16257 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
16258 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16259 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16260 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16261 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
));
16263 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16264 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
));
16265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
16267 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
16268 if (_ptr_credential
) {
16269 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16271 r
->in
.credential
= NULL
;
16273 if (r
->in
.credential
) {
16274 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16275 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
16276 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
16279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16280 if (_ptr_return_authenticator
) {
16281 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
16283 r
->in
.return_authenticator
= NULL
;
16285 if (r
->in
.return_authenticator
) {
16286 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16287 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
16288 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16291 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
16292 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16293 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
16295 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16296 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
16297 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16298 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
16300 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
16301 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16302 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
16304 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16305 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16307 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16308 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16309 ZERO_STRUCTP(r
->out
.validation
);
16310 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16311 ZERO_STRUCTP(r
->out
.authoritative
);
16312 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16313 *r
->out
.flags
= *r
->in
.flags
;
16315 if (flags
& NDR_OUT
) {
16316 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16317 if (_ptr_return_authenticator
) {
16318 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16320 r
->out
.return_authenticator
= NULL
;
16322 if (r
->out
.return_authenticator
) {
16323 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16324 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
16325 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16326 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16328 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16329 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16331 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16332 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
16333 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16334 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
16336 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16337 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16339 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16340 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
16341 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
16342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
16343 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16344 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16346 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16347 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
16349 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16350 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16352 return NDR_ERR_SUCCESS
;
16355 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16357 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
16359 if (flags
& NDR_SET_VALUES
) {
16360 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16362 if (flags
& NDR_IN
) {
16363 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
16365 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16367 if (r
->in
.server_name
) {
16368 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16371 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16373 if (r
->in
.computer_name
) {
16374 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16377 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16379 if (r
->in
.credential
) {
16380 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16383 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16385 if (r
->in
.return_authenticator
) {
16386 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16389 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
16390 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
16392 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
16393 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
16395 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
16396 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
16398 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
16402 if (flags
& NDR_OUT
) {
16403 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
16405 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16407 if (r
->out
.return_authenticator
) {
16408 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16411 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
16413 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
16414 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
16416 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
16418 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
16420 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
16422 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
16424 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16430 static enum ndr_err_code
ndr_push_netr_ServerGetTrustInfo(struct ndr_push
*ndr
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16432 if (flags
& NDR_IN
) {
16433 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16434 if (r
->in
.server_name
) {
16435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16438 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
));
16440 if (r
->in
.account_name
== NULL
) {
16441 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16446 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
));
16447 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
16448 if (r
->in
.computer_name
== NULL
) {
16449 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16454 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
));
16455 if (r
->in
.credential
== NULL
) {
16456 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16458 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16460 if (flags
& NDR_OUT
) {
16461 if (r
->out
.return_authenticator
== NULL
) {
16462 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16464 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16465 if (r
->out
.new_owf_password
== NULL
) {
16466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16468 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16469 if (r
->out
.old_owf_password
== NULL
) {
16470 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16472 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16473 if (r
->out
.trust_info
== NULL
) {
16474 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16476 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.trust_info
));
16477 if (*r
->out
.trust_info
) {
16478 NDR_CHECK(ndr_push_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16480 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16482 return NDR_ERR_SUCCESS
;
16485 static enum ndr_err_code
ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull
*ndr
, int flags
, struct netr_ServerGetTrustInfo
*r
)
16487 uint32_t _ptr_server_name
;
16488 uint32_t _ptr_trust_info
;
16489 TALLOC_CTX
*_mem_save_server_name_0
;
16490 TALLOC_CTX
*_mem_save_credential_0
;
16491 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16492 TALLOC_CTX
*_mem_save_new_owf_password_0
;
16493 TALLOC_CTX
*_mem_save_old_owf_password_0
;
16494 TALLOC_CTX
*_mem_save_trust_info_0
;
16495 TALLOC_CTX
*_mem_save_trust_info_1
;
16496 if (flags
& NDR_IN
) {
16497 ZERO_STRUCT(r
->out
);
16499 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16500 if (_ptr_server_name
) {
16501 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16503 r
->in
.server_name
= NULL
;
16505 if (r
->in
.server_name
) {
16506 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16507 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16508 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16509 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16510 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16511 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
));
16513 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16514 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
));
16515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16517 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
16518 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
16519 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
16520 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
));
16522 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
16523 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
));
16524 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
16525 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16526 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16527 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16528 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
));
16530 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16531 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
));
16532 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16533 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16535 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16536 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16537 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16538 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16539 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16540 ZERO_STRUCTP(r
->out
.return_authenticator
);
16541 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16542 ZERO_STRUCTP(r
->out
.new_owf_password
);
16543 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16544 ZERO_STRUCTP(r
->out
.old_owf_password
);
16545 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16546 ZERO_STRUCTP(r
->out
.trust_info
);
16548 if (flags
& NDR_OUT
) {
16549 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16550 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16552 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16553 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16554 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16556 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16557 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16559 _mem_save_new_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16560 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16561 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16563 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16564 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16566 _mem_save_old_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16567 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.old_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16568 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16570 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16571 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16573 _mem_save_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16574 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trust_info
));
16576 if (_ptr_trust_info
) {
16577 NDR_PULL_ALLOC(ndr
, *r
->out
.trust_info
);
16579 *r
->out
.trust_info
= NULL
;
16581 if (*r
->out
.trust_info
) {
16582 _mem_save_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16583 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.trust_info
, 0);
16584 NDR_CHECK(ndr_pull_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_1
, 0);
16587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16588 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16590 return NDR_ERR_SUCCESS
;
16593 _PUBLIC_
void ndr_print_netr_ServerGetTrustInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16595 ndr_print_struct(ndr
, name
, "netr_ServerGetTrustInfo");
16597 if (flags
& NDR_SET_VALUES
) {
16598 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16600 if (flags
& NDR_IN
) {
16601 ndr_print_struct(ndr
, "in", "netr_ServerGetTrustInfo");
16603 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16605 if (r
->in
.server_name
) {
16606 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16609 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
16611 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
16613 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
16614 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16616 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16618 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16620 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16624 if (flags
& NDR_OUT
) {
16625 ndr_print_struct(ndr
, "out", "netr_ServerGetTrustInfo");
16627 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16629 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16631 ndr_print_ptr(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16633 ndr_print_samr_Password(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16635 ndr_print_ptr(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16637 ndr_print_samr_Password(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16639 ndr_print_ptr(ndr
, "trust_info", r
->out
.trust_info
);
16641 ndr_print_ptr(ndr
, "trust_info", *r
->out
.trust_info
);
16643 if (*r
->out
.trust_info
) {
16644 ndr_print_netr_TrustInfo(ndr
, "trust_info", *r
->out
.trust_info
);
16648 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16654 static const struct ndr_interface_call netlogon_calls
[] = {
16656 "netr_LogonUasLogon",
16657 sizeof(struct netr_LogonUasLogon
),
16658 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
16659 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
16660 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
16664 "netr_LogonUasLogoff",
16665 sizeof(struct netr_LogonUasLogoff
),
16666 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
16667 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
16668 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
16672 "netr_LogonSamLogon",
16673 sizeof(struct netr_LogonSamLogon
),
16674 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
16675 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
16676 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
16680 "netr_LogonSamLogoff",
16681 sizeof(struct netr_LogonSamLogoff
),
16682 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
16683 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
16684 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
16688 "netr_ServerReqChallenge",
16689 sizeof(struct netr_ServerReqChallenge
),
16690 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
16691 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
16692 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
16696 "netr_ServerAuthenticate",
16697 sizeof(struct netr_ServerAuthenticate
),
16698 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
16699 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
16700 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
16704 "netr_ServerPasswordSet",
16705 sizeof(struct netr_ServerPasswordSet
),
16706 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
16707 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
16708 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
16712 "netr_DatabaseDeltas",
16713 sizeof(struct netr_DatabaseDeltas
),
16714 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
16715 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
16716 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
16720 "netr_DatabaseSync",
16721 sizeof(struct netr_DatabaseSync
),
16722 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
16723 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
16724 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
16728 "netr_AccountDeltas",
16729 sizeof(struct netr_AccountDeltas
),
16730 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
16731 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
16732 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
16736 "netr_AccountSync",
16737 sizeof(struct netr_AccountSync
),
16738 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
16739 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
16740 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
16745 sizeof(struct netr_GetDcName
),
16746 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
16747 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
16748 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
16752 "netr_LogonControl",
16753 sizeof(struct netr_LogonControl
),
16754 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
16755 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
16756 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
16760 "netr_GetAnyDCName",
16761 sizeof(struct netr_GetAnyDCName
),
16762 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
16763 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
16764 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
16768 "netr_LogonControl2",
16769 sizeof(struct netr_LogonControl2
),
16770 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
16771 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
16772 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
16776 "netr_ServerAuthenticate2",
16777 sizeof(struct netr_ServerAuthenticate2
),
16778 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
16779 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
16780 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
16784 "netr_DatabaseSync2",
16785 sizeof(struct netr_DatabaseSync2
),
16786 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
16787 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
16788 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
16792 "netr_DatabaseRedo",
16793 sizeof(struct netr_DatabaseRedo
),
16794 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
16795 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
16796 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
16800 "netr_LogonControl2Ex",
16801 sizeof(struct netr_LogonControl2Ex
),
16802 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
16803 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
16804 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
16808 "netr_NetrEnumerateTrustedDomains",
16809 sizeof(struct netr_NetrEnumerateTrustedDomains
),
16810 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomains
,
16811 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomains
,
16812 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomains
,
16816 "netr_DsRGetDCName",
16817 sizeof(struct netr_DsRGetDCName
),
16818 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
16819 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
16820 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
16824 "netr_LogonGetCapabilities",
16825 sizeof(struct netr_LogonGetCapabilities
),
16826 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetCapabilities
,
16827 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetCapabilities
,
16828 (ndr_print_function_t
) ndr_print_netr_LogonGetCapabilities
,
16832 "netr_NETRLOGONSETSERVICEBITS",
16833 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
16834 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
16835 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
16836 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
16840 "netr_LogonGetTrustRid",
16841 sizeof(struct netr_LogonGetTrustRid
),
16842 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetTrustRid
,
16843 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetTrustRid
,
16844 (ndr_print_function_t
) ndr_print_netr_LogonGetTrustRid
,
16848 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16849 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
16850 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16851 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16852 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16856 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16857 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
16858 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16859 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16860 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16864 "netr_ServerAuthenticate3",
16865 sizeof(struct netr_ServerAuthenticate3
),
16866 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
16867 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
16868 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
16872 "netr_DsRGetDCNameEx",
16873 sizeof(struct netr_DsRGetDCNameEx
),
16874 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
16875 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
16876 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
16880 "netr_DsRGetSiteName",
16881 sizeof(struct netr_DsRGetSiteName
),
16882 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
16883 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
16884 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
16888 "netr_LogonGetDomainInfo",
16889 sizeof(struct netr_LogonGetDomainInfo
),
16890 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
16891 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
16892 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
16896 "netr_ServerPasswordSet2",
16897 sizeof(struct netr_ServerPasswordSet2
),
16898 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
16899 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
16900 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
16904 "netr_ServerPasswordGet",
16905 sizeof(struct netr_ServerPasswordGet
),
16906 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordGet
,
16907 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordGet
,
16908 (ndr_print_function_t
) ndr_print_netr_ServerPasswordGet
,
16912 "netr_NETRLOGONSENDTOSAM",
16913 sizeof(struct netr_NETRLOGONSENDTOSAM
),
16914 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
16915 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
16916 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
16920 "netr_DsRAddressToSitenamesW",
16921 sizeof(struct netr_DsRAddressToSitenamesW
),
16922 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesW
,
16923 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesW
,
16924 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesW
,
16928 "netr_DsRGetDCNameEx2",
16929 sizeof(struct netr_DsRGetDCNameEx2
),
16930 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
16931 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
16932 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
16936 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16937 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
16938 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16939 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16940 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16944 "netr_NetrEnumerateTrustedDomainsEx",
16945 sizeof(struct netr_NetrEnumerateTrustedDomainsEx
),
16946 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomainsEx
,
16947 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomainsEx
,
16948 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomainsEx
,
16952 "netr_DsRAddressToSitenamesExW",
16953 sizeof(struct netr_DsRAddressToSitenamesExW
),
16954 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesExW
,
16955 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesExW
,
16956 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesExW
,
16960 "netr_DsrGetDcSiteCoverageW",
16961 sizeof(struct netr_DsrGetDcSiteCoverageW
),
16962 (ndr_push_flags_fn_t
) ndr_push_netr_DsrGetDcSiteCoverageW
,
16963 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrGetDcSiteCoverageW
,
16964 (ndr_print_function_t
) ndr_print_netr_DsrGetDcSiteCoverageW
,
16968 "netr_LogonSamLogonEx",
16969 sizeof(struct netr_LogonSamLogonEx
),
16970 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
16971 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
16972 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
16976 "netr_DsrEnumerateDomainTrusts",
16977 sizeof(struct netr_DsrEnumerateDomainTrusts
),
16978 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
16979 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
16980 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
16984 "netr_DsrDeregisterDNSHostRecords",
16985 sizeof(struct netr_DsrDeregisterDNSHostRecords
),
16986 (ndr_push_flags_fn_t
) ndr_push_netr_DsrDeregisterDNSHostRecords
,
16987 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrDeregisterDNSHostRecords
,
16988 (ndr_print_function_t
) ndr_print_netr_DsrDeregisterDNSHostRecords
,
16992 "netr_ServerTrustPasswordsGet",
16993 sizeof(struct netr_ServerTrustPasswordsGet
),
16994 (ndr_push_flags_fn_t
) ndr_push_netr_ServerTrustPasswordsGet
,
16995 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerTrustPasswordsGet
,
16996 (ndr_print_function_t
) ndr_print_netr_ServerTrustPasswordsGet
,
17000 "netr_DsRGetForestTrustInformation",
17001 sizeof(struct netr_DsRGetForestTrustInformation
),
17002 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetForestTrustInformation
,
17003 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetForestTrustInformation
,
17004 (ndr_print_function_t
) ndr_print_netr_DsRGetForestTrustInformation
,
17008 "netr_GetForestTrustInformation",
17009 sizeof(struct netr_GetForestTrustInformation
),
17010 (ndr_push_flags_fn_t
) ndr_push_netr_GetForestTrustInformation
,
17011 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetForestTrustInformation
,
17012 (ndr_print_function_t
) ndr_print_netr_GetForestTrustInformation
,
17016 "netr_LogonSamLogonWithFlags",
17017 sizeof(struct netr_LogonSamLogonWithFlags
),
17018 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
17019 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
17020 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
17024 "netr_ServerGetTrustInfo",
17025 sizeof(struct netr_ServerGetTrustInfo
),
17026 (ndr_push_flags_fn_t
) ndr_push_netr_ServerGetTrustInfo
,
17027 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerGetTrustInfo
,
17028 (ndr_print_function_t
) ndr_print_netr_ServerGetTrustInfo
,
17031 { NULL
, 0, NULL
, NULL
, NULL
, false }
17034 static const char * const netlogon_endpoint_strings
[] = {
17035 "ncacn_np:[\\pipe\\netlogon]",
17040 static const struct ndr_interface_string_array netlogon_endpoints
= {
17042 .names
= netlogon_endpoint_strings
17045 static const char * const netlogon_authservice_strings
[] = {
17049 static const struct ndr_interface_string_array netlogon_authservices
= {
17051 .names
= netlogon_authservice_strings
17055 const struct ndr_interface_table ndr_table_netlogon
= {
17056 .name
= "netlogon",
17058 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
17059 NDR_NETLOGON_VERSION
17061 .helpstring
= NDR_NETLOGON_HELPSTRING
,
17063 .calls
= netlogon_calls
,
17064 .endpoints
= &netlogon_endpoints
,
17065 .authservices
= &netlogon_authservices