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_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED
, r
);
5615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS
, r
);
5616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC
, r
);
5620 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
)
5622 if (ndr_flags
& NDR_SCALARS
) {
5623 NDR_CHECK(ndr_push_align(ndr
, 4));
5624 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5625 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5627 if (ndr_flags
& NDR_BUFFERS
) {
5629 return NDR_ERR_SUCCESS
;
5632 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5634 if (ndr_flags
& NDR_SCALARS
) {
5635 NDR_CHECK(ndr_pull_align(ndr
, 4));
5636 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5637 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5639 if (ndr_flags
& NDR_BUFFERS
) {
5641 return NDR_ERR_SUCCESS
;
5644 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5646 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5648 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5649 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5653 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
)
5655 if (ndr_flags
& NDR_SCALARS
) {
5656 NDR_CHECK(ndr_push_align(ndr
, 4));
5657 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5659 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5662 if (ndr_flags
& NDR_BUFFERS
) {
5663 if (r
->trusted_dc_name
) {
5664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5665 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5666 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5667 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
));
5670 return NDR_ERR_SUCCESS
;
5673 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5675 uint32_t _ptr_trusted_dc_name
;
5676 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5677 if (ndr_flags
& NDR_SCALARS
) {
5678 NDR_CHECK(ndr_pull_align(ndr
, 4));
5679 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5682 if (_ptr_trusted_dc_name
) {
5683 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5685 r
->trusted_dc_name
= NULL
;
5687 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5689 if (ndr_flags
& NDR_BUFFERS
) {
5690 if (r
->trusted_dc_name
) {
5691 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5692 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5693 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5694 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5695 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5696 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
));
5698 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5699 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
));
5700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5703 return NDR_ERR_SUCCESS
;
5706 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5708 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5710 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5711 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5712 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5714 if (r
->trusted_dc_name
) {
5715 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5718 ndr_print_uint32(ndr
, "tc_connection_status", r
->tc_connection_status
);
5722 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
)
5724 if (ndr_flags
& NDR_SCALARS
) {
5725 NDR_CHECK(ndr_push_align(ndr
, 4));
5726 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5734 if (ndr_flags
& NDR_BUFFERS
) {
5736 return NDR_ERR_SUCCESS
;
5739 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5741 if (ndr_flags
& NDR_SCALARS
) {
5742 NDR_CHECK(ndr_pull_align(ndr
, 4));
5743 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5744 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5745 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5748 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5751 if (ndr_flags
& NDR_BUFFERS
) {
5753 return NDR_ERR_SUCCESS
;
5756 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5758 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5760 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5761 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5762 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5763 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5764 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5765 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5766 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5770 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
)
5772 if (ndr_flags
& NDR_SCALARS
) {
5773 NDR_CHECK(ndr_push_align(ndr
, 4));
5774 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5775 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain_name
));
5777 if (ndr_flags
& NDR_BUFFERS
) {
5778 if (r
->trusted_dc_name
) {
5779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5782 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
));
5784 if (r
->trusted_domain_name
) {
5785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5788 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
));
5791 return NDR_ERR_SUCCESS
;
5794 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_4
*r
)
5796 uint32_t _ptr_trusted_dc_name
;
5797 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5798 uint32_t _ptr_trusted_domain_name
;
5799 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
5800 if (ndr_flags
& NDR_SCALARS
) {
5801 NDR_CHECK(ndr_pull_align(ndr
, 4));
5802 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5803 if (_ptr_trusted_dc_name
) {
5804 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5806 r
->trusted_dc_name
= NULL
;
5808 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
5809 if (_ptr_trusted_domain_name
) {
5810 NDR_PULL_ALLOC(ndr
, r
->trusted_domain_name
);
5812 r
->trusted_domain_name
= NULL
;
5815 if (ndr_flags
& NDR_BUFFERS
) {
5816 if (r
->trusted_dc_name
) {
5817 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5818 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5819 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5820 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5821 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5822 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
));
5824 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5825 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
));
5826 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5828 if (r
->trusted_domain_name
) {
5829 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5830 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain_name
, 0);
5831 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domain_name
));
5832 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_domain_name
));
5833 if (ndr_get_array_length(ndr
, &r
->trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->trusted_domain_name
)) {
5834 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
));
5836 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_domain_name
), sizeof(uint16_t)));
5837 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
));
5838 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
5841 return NDR_ERR_SUCCESS
;
5844 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_4
*r
)
5846 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_4");
5848 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5850 if (r
->trusted_dc_name
) {
5851 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5854 ndr_print_ptr(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5856 if (r
->trusted_domain_name
) {
5857 ndr_print_string(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5863 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
)
5865 if (ndr_flags
& NDR_SCALARS
) {
5866 int level
= ndr_push_get_switch_value(ndr
, r
);
5867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5870 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5874 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5878 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5882 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5886 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5889 if (ndr_flags
& NDR_BUFFERS
) {
5890 int level
= ndr_push_get_switch_value(ndr
, r
);
5894 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5900 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5906 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5912 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5917 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5920 return NDR_ERR_SUCCESS
;
5923 static enum ndr_err_code
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5927 TALLOC_CTX
*_mem_save_info1_0
;
5928 TALLOC_CTX
*_mem_save_info2_0
;
5929 TALLOC_CTX
*_mem_save_info3_0
;
5930 TALLOC_CTX
*_mem_save_info4_0
;
5931 level
= ndr_pull_get_switch_value(ndr
, r
);
5932 if (ndr_flags
& NDR_SCALARS
) {
5933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5934 if (_level
!= level
) {
5935 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5939 uint32_t _ptr_info1
;
5940 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5942 NDR_PULL_ALLOC(ndr
, r
->info1
);
5949 uint32_t _ptr_info2
;
5950 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5952 NDR_PULL_ALLOC(ndr
, r
->info2
);
5959 uint32_t _ptr_info3
;
5960 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5962 NDR_PULL_ALLOC(ndr
, r
->info3
);
5969 uint32_t _ptr_info4
;
5970 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5972 NDR_PULL_ALLOC(ndr
, r
->info4
);
5979 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5982 if (ndr_flags
& NDR_BUFFERS
) {
5986 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5987 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5988 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5995 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5996 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5997 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5998 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6004 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6005 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6006 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
6007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6013 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6014 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6015 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6021 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6024 return NDR_ERR_SUCCESS
;
6027 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
6030 level
= ndr_print_get_switch_value(ndr
, r
);
6031 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
6034 ndr_print_ptr(ndr
, "info1", r
->info1
);
6037 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
6043 ndr_print_ptr(ndr
, "info2", r
->info2
);
6046 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
6052 ndr_print_ptr(ndr
, "info3", r
->info3
);
6055 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
6061 ndr_print_ptr(ndr
, "info4", r
->info4
);
6064 ndr_print_netr_NETLOGON_INFO_4(ndr
, "info4", r
->info4
);
6070 ndr_print_bad_level(ndr
, name
, level
);
6074 static enum ndr_err_code
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
6076 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6077 return NDR_ERR_SUCCESS
;
6080 static enum ndr_err_code
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
6083 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6085 return NDR_ERR_SUCCESS
;
6088 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
6090 const char *val
= NULL
;
6093 case NETLOGON_CONTROL_QUERY
: val
= "NETLOGON_CONTROL_QUERY"; break;
6094 case NETLOGON_CONTROL_REPLICATE
: val
= "NETLOGON_CONTROL_REPLICATE"; break;
6095 case NETLOGON_CONTROL_SYNCHRONIZE
: val
= "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6096 case NETLOGON_CONTROL_PDC_REPLICATE
: val
= "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6097 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
6098 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
6099 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6100 case NETLOGON_CONTROL_FIND_USER
: val
= "NETLOGON_CONTROL_FIND_USER"; break;
6101 case NETLOGON_CONTROL_CHANGE_PASSWORD
: val
= "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6102 case NETLOGON_CONTROL_TC_VERIFY
: val
= "NETLOGON_CONTROL_TC_VERIFY"; break;
6103 case NETLOGON_CONTROL_FORCE_DNS_REG
: val
= "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6104 case NETLOGON_CONTROL_QUERY_DNS_REG
: val
= "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6105 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG
: val
= "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6106 case NETLOGON_CONTROL_TRUNCATE_LOG
: val
= "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6107 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
6108 case NETLOGON_CONTROL_BREAKPOINT
: val
= "NETLOGON_CONTROL_BREAKPOINT"; break;
6110 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6113 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
)
6115 if (ndr_flags
& NDR_SCALARS
) {
6116 int level
= ndr_push_get_switch_value(ndr
, r
);
6117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6119 case NETLOGON_CONTROL_REDISCOVER
: {
6120 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6123 case NETLOGON_CONTROL_TC_QUERY
: {
6124 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6127 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6128 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6131 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6132 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6135 case NETLOGON_CONTROL_TC_VERIFY
: {
6136 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6139 case NETLOGON_CONTROL_FIND_USER
: {
6140 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
6143 case NETLOGON_CONTROL_SET_DBFLAG
: {
6144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
6148 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6151 if (ndr_flags
& NDR_BUFFERS
) {
6152 int level
= ndr_push_get_switch_value(ndr
, r
);
6154 case NETLOGON_CONTROL_REDISCOVER
:
6156 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6157 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6159 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6163 case NETLOGON_CONTROL_TC_QUERY
:
6165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6168 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6172 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6177 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6181 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6183 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6186 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6190 case NETLOGON_CONTROL_TC_VERIFY
:
6192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6195 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6199 case NETLOGON_CONTROL_FIND_USER
:
6201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6204 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6208 case NETLOGON_CONTROL_SET_DBFLAG
:
6212 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6215 return NDR_ERR_SUCCESS
;
6218 static enum ndr_err_code
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
6222 TALLOC_CTX
*_mem_save_domain_0
;
6223 TALLOC_CTX
*_mem_save_user_0
;
6224 level
= ndr_pull_get_switch_value(ndr
, r
);
6225 if (ndr_flags
& NDR_SCALARS
) {
6226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6227 if (_level
!= level
) {
6228 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6231 case NETLOGON_CONTROL_REDISCOVER
: {
6232 uint32_t _ptr_domain
;
6233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6235 NDR_PULL_ALLOC(ndr
, r
->domain
);
6241 case NETLOGON_CONTROL_TC_QUERY
: {
6242 uint32_t _ptr_domain
;
6243 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6245 NDR_PULL_ALLOC(ndr
, r
->domain
);
6251 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6252 uint32_t _ptr_domain
;
6253 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6255 NDR_PULL_ALLOC(ndr
, r
->domain
);
6261 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6262 uint32_t _ptr_domain
;
6263 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6265 NDR_PULL_ALLOC(ndr
, r
->domain
);
6271 case NETLOGON_CONTROL_TC_VERIFY
: {
6272 uint32_t _ptr_domain
;
6273 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6275 NDR_PULL_ALLOC(ndr
, r
->domain
);
6281 case NETLOGON_CONTROL_FIND_USER
: {
6283 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
6285 NDR_PULL_ALLOC(ndr
, r
->user
);
6291 case NETLOGON_CONTROL_SET_DBFLAG
: {
6292 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
6296 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6299 if (ndr_flags
& NDR_BUFFERS
) {
6301 case NETLOGON_CONTROL_REDISCOVER
:
6303 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6304 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6307 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6308 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
6310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6311 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6316 case NETLOGON_CONTROL_TC_QUERY
:
6318 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6319 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6320 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6321 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6322 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6323 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
));
6325 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6326 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6331 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6333 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6334 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6335 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6336 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6337 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6338 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
));
6340 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6341 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6346 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6348 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6349 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6350 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6351 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6352 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6353 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
));
6355 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6356 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6361 case NETLOGON_CONTROL_TC_VERIFY
:
6363 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6364 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6365 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6366 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6367 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6368 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
));
6370 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6371 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6376 case NETLOGON_CONTROL_FIND_USER
:
6378 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6379 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
6380 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
6381 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
6382 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
6383 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
));
6385 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
6386 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
6387 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
6391 case NETLOGON_CONTROL_SET_DBFLAG
:
6395 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6398 return NDR_ERR_SUCCESS
;
6401 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
6404 level
= ndr_print_get_switch_value(ndr
, r
);
6405 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
6407 case NETLOGON_CONTROL_REDISCOVER
:
6408 ndr_print_ptr(ndr
, "domain", r
->domain
);
6411 ndr_print_string(ndr
, "domain", r
->domain
);
6416 case NETLOGON_CONTROL_TC_QUERY
:
6417 ndr_print_ptr(ndr
, "domain", r
->domain
);
6420 ndr_print_string(ndr
, "domain", r
->domain
);
6425 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6426 ndr_print_ptr(ndr
, "domain", r
->domain
);
6429 ndr_print_string(ndr
, "domain", r
->domain
);
6434 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6435 ndr_print_ptr(ndr
, "domain", r
->domain
);
6438 ndr_print_string(ndr
, "domain", r
->domain
);
6443 case NETLOGON_CONTROL_TC_VERIFY
:
6444 ndr_print_ptr(ndr
, "domain", r
->domain
);
6447 ndr_print_string(ndr
, "domain", r
->domain
);
6452 case NETLOGON_CONTROL_FIND_USER
:
6453 ndr_print_ptr(ndr
, "user", r
->user
);
6456 ndr_print_string(ndr
, "user", r
->user
);
6461 case NETLOGON_CONTROL_SET_DBFLAG
:
6462 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
6466 ndr_print_bad_level(ndr
, name
, level
);
6470 static enum ndr_err_code
ndr_push_netr_NegotiateFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6473 return NDR_ERR_SUCCESS
;
6476 static enum ndr_err_code
ndr_pull_netr_NegotiateFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6479 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6481 return NDR_ERR_SUCCESS
;
6484 _PUBLIC_
void ndr_print_netr_NegotiateFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6486 ndr_print_uint32(ndr
, name
, r
);
6488 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT
, r
);
6489 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL
, r
);
6490 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR
, r
);
6491 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT
, r
);
6492 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC
, r
);
6493 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL
, r
);
6494 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS
, r
);
6495 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO
, r
);
6496 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL
, r
);
6497 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC
, r
);
6498 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH
, r
);
6499 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC
, r
);
6500 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL
, r
);
6501 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL
, r
);
6502 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS
, r
);
6503 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS
, r
);
6504 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS
, r
);
6505 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2
, r
);
6506 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO
, r
);
6507 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS
, r
);
6508 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION
, r
);
6509 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH
, r
);
6510 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2
, r
);
6511 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS
, r
);
6512 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC
, r
);
6516 static enum ndr_err_code
ndr_push_SyncStateEnum(struct ndr_push
*ndr
, int ndr_flags
, enum SyncStateEnum r
)
6518 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6519 return NDR_ERR_SUCCESS
;
6522 static enum ndr_err_code
ndr_pull_SyncStateEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum SyncStateEnum
*r
)
6525 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6527 return NDR_ERR_SUCCESS
;
6530 _PUBLIC_
void ndr_print_SyncStateEnum(struct ndr_print
*ndr
, const char *name
, enum SyncStateEnum r
)
6532 const char *val
= NULL
;
6535 case SYNCSTATE_NORMAL_STATE
: val
= "SYNCSTATE_NORMAL_STATE"; break;
6536 case SYNCSTATE_DOMAIN_STATE
: val
= "SYNCSTATE_DOMAIN_STATE"; break;
6537 case SYNCSTATE_GROUP_STATE
: val
= "SYNCSTATE_GROUP_STATE"; break;
6538 case SYNCSTATE_UAS_BUILT_IN_GROUP_STATE
: val
= "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE"; break;
6539 case SYNCSTATE_USER_STATE
: val
= "SYNCSTATE_USER_STATE"; break;
6540 case SYNCSTATE_GROUP_MEMBER_STATE
: val
= "SYNCSTATE_GROUP_MEMBER_STATE"; break;
6541 case SYNCSTATE_ALIAS_STATE
: val
= "SYNCSTATE_ALIAS_STATE"; break;
6542 case SYNCSTATE_ALIAS_MEMBER_STATE
: val
= "SYNCSTATE_ALIAS_MEMBER_STATE"; break;
6543 case SYNCSTATE_SAM_DONE_STATE
: val
= "SYNCSTATE_SAM_DONE_STATE"; break;
6545 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6548 static enum ndr_err_code
ndr_push_netr_ChangeLogFlags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
6550 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6551 return NDR_ERR_SUCCESS
;
6554 static enum ndr_err_code
ndr_pull_netr_ChangeLogFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
6557 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6559 return NDR_ERR_SUCCESS
;
6562 _PUBLIC_
void ndr_print_netr_ChangeLogFlags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
6564 ndr_print_uint16(ndr
, name
, r
);
6566 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED
, r
);
6567 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD
, r
);
6568 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED
, r
);
6569 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED
, r
);
6570 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ
, r
);
6574 static enum ndr_err_code
ndr_push_netr_ChangeLogObject(struct ndr_push
*ndr
, int ndr_flags
, const union netr_ChangeLogObject
*r
)
6576 if (ndr_flags
& NDR_SCALARS
) {
6577 int level
= ndr_push_get_switch_value(ndr
, r
);
6579 case NETR_CHANGELOG_SID_INCLUDED
: {
6580 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6583 case NETR_CHANGELOG_NAME_INCLUDED
: {
6585 uint32_t _flags_save_string
= ndr
->flags
;
6586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6587 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->object_name
));
6588 ndr
->flags
= _flags_save_string
;
6597 if (ndr_flags
& NDR_BUFFERS
) {
6598 int level
= ndr_push_get_switch_value(ndr
, r
);
6600 case NETR_CHANGELOG_SID_INCLUDED
:
6603 case NETR_CHANGELOG_NAME_INCLUDED
:
6611 return NDR_ERR_SUCCESS
;
6614 static enum ndr_err_code
ndr_pull_netr_ChangeLogObject(struct ndr_pull
*ndr
, int ndr_flags
, union netr_ChangeLogObject
*r
)
6617 level
= ndr_pull_get_switch_value(ndr
, r
);
6618 if (ndr_flags
& NDR_SCALARS
) {
6620 case NETR_CHANGELOG_SID_INCLUDED
: {
6621 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6624 case NETR_CHANGELOG_NAME_INCLUDED
: {
6626 uint32_t _flags_save_string
= ndr
->flags
;
6627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6628 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->object_name
));
6629 ndr
->flags
= _flags_save_string
;
6638 if (ndr_flags
& NDR_BUFFERS
) {
6640 case NETR_CHANGELOG_SID_INCLUDED
:
6643 case NETR_CHANGELOG_NAME_INCLUDED
:
6651 return NDR_ERR_SUCCESS
;
6654 _PUBLIC_
void ndr_print_netr_ChangeLogObject(struct ndr_print
*ndr
, const char *name
, const union netr_ChangeLogObject
*r
)
6657 level
= ndr_print_get_switch_value(ndr
, r
);
6658 ndr_print_union(ndr
, name
, level
, "netr_ChangeLogObject");
6660 case NETR_CHANGELOG_SID_INCLUDED
:
6661 ndr_print_dom_sid(ndr
, "object_sid", &r
->object_sid
);
6664 case NETR_CHANGELOG_NAME_INCLUDED
:
6665 ndr_print_string(ndr
, "object_name", r
->object_name
);
6674 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ChangeLogEntry(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChangeLogEntry
*r
)
6676 if (ndr_flags
& NDR_SCALARS
) {
6677 NDR_CHECK(ndr_push_align(ndr
, 4));
6678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number1
));
6679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number2
));
6680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_rid
));
6681 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, r
->flags
));
6682 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, r
->db_index
));
6683 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, r
->delta_type
));
6684 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6685 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6687 if (ndr_flags
& NDR_BUFFERS
) {
6688 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6690 return NDR_ERR_SUCCESS
;
6693 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ChangeLogEntry(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChangeLogEntry
*r
)
6695 if (ndr_flags
& NDR_SCALARS
) {
6696 NDR_CHECK(ndr_pull_align(ndr
, 4));
6697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number1
));
6698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number2
));
6699 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_rid
));
6700 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6701 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, &r
->db_index
));
6702 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, &r
->delta_type
));
6703 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6704 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6706 if (ndr_flags
& NDR_BUFFERS
) {
6707 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6709 return NDR_ERR_SUCCESS
;
6712 _PUBLIC_
void ndr_print_netr_ChangeLogEntry(struct ndr_print
*ndr
, const char *name
, const struct netr_ChangeLogEntry
*r
)
6714 ndr_print_struct(ndr
, name
, "netr_ChangeLogEntry");
6716 ndr_print_uint32(ndr
, "serial_number1", r
->serial_number1
);
6717 ndr_print_uint32(ndr
, "serial_number2", r
->serial_number2
);
6718 ndr_print_uint32(ndr
, "object_rid", r
->object_rid
);
6719 ndr_print_netr_ChangeLogFlags(ndr
, "flags", r
->flags
);
6720 ndr_print_netr_SamDatabaseID8Bit(ndr
, "db_index", r
->db_index
);
6721 ndr_print_netr_DeltaEnum8Bit(ndr
, "delta_type", r
->delta_type
);
6722 ndr_print_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
));
6723 ndr_print_netr_ChangeLogObject(ndr
, "object", &r
->object
);
6727 _PUBLIC_
size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry
*r
, struct smb_iconv_convenience
*ic
, int flags
)
6729 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_netr_ChangeLogEntry
, ic
);
6732 static enum ndr_err_code
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
6734 if (ndr_flags
& NDR_SCALARS
) {
6735 NDR_CHECK(ndr_push_align(ndr
, 4));
6736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6737 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6739 if (ndr_flags
& NDR_BUFFERS
) {
6741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6742 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6745 return NDR_ERR_SUCCESS
;
6748 static enum ndr_err_code
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6751 TALLOC_CTX
*_mem_save_data_0
;
6752 if (ndr_flags
& NDR_SCALARS
) {
6753 NDR_CHECK(ndr_pull_align(ndr
, 4));
6754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6757 NDR_PULL_ALLOC(ndr
, r
->data
);
6762 if (ndr_flags
& NDR_BUFFERS
) {
6764 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6765 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6766 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6767 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6768 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
6769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6772 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6775 return NDR_ERR_SUCCESS
;
6778 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6780 ndr_print_struct(ndr
, name
, "netr_Blob");
6782 ndr_print_uint32(ndr
, "length", r
->length
);
6783 ndr_print_ptr(ndr
, "data", r
->data
);
6786 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6792 static enum ndr_err_code
ndr_push_netr_DsRGetDCName_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6795 return NDR_ERR_SUCCESS
;
6798 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6801 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6803 return NDR_ERR_SUCCESS
;
6806 _PUBLIC_
void ndr_print_netr_DsRGetDCName_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6808 ndr_print_uint32(ndr
, name
, r
);
6810 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY
, r
);
6811 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED
, r
);
6812 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED
, r
);
6813 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED
, r
);
6814 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED
, r
);
6815 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY
, r
);
6816 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED
, r
);
6817 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED
, r
);
6818 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED
, r
);
6819 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED
, r
);
6820 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED
, r
);
6821 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF
, r
);
6822 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED
, r
);
6823 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME
, r
);
6824 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME
, r
);
6825 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE
, r
);
6826 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED
, r
);
6827 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME
, r
);
6828 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME
, r
);
6832 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType r
)
6834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6835 return NDR_ERR_SUCCESS
;
6838 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType
*r
)
6841 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6843 return NDR_ERR_SUCCESS
;
6846 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print
*ndr
, const char *name
, enum netr_DsRGetDCNameInfo_AddressType r
)
6848 const char *val
= NULL
;
6851 case DS_ADDRESS_TYPE_INET
: val
= "DS_ADDRESS_TYPE_INET"; break;
6852 case DS_ADDRESS_TYPE_NETBIOS
: val
= "DS_ADDRESS_TYPE_NETBIOS"; break;
6854 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6857 static enum ndr_err_code
ndr_push_netr_DsR_DcFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6860 return NDR_ERR_SUCCESS
;
6863 static enum ndr_err_code
ndr_pull_netr_DsR_DcFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6866 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6868 return NDR_ERR_SUCCESS
;
6871 _PUBLIC_
void ndr_print_netr_DsR_DcFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6873 ndr_print_uint32(ndr
, name
, r
);
6875 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC
, r
);
6876 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC
, r
);
6877 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP
, r
);
6878 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS
, r
);
6879 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC
, r
);
6880 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV
, r
);
6881 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST
, r
);
6882 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE
, r
);
6883 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV
, r
);
6884 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC
, r
);
6885 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
6886 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6
, r
);
6887 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER
, r
);
6888 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN
, r
);
6889 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST
, r
);
6893 _PUBLIC_
enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
6895 if (ndr_flags
& NDR_SCALARS
) {
6896 NDR_CHECK(ndr_push_align(ndr
, 4));
6897 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
6898 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
6899 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, r
->dc_address_type
));
6900 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6901 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6902 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
6903 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, r
->dc_flags
));
6904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
6905 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
6907 if (ndr_flags
& NDR_BUFFERS
) {
6909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6910 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6912 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6914 if (r
->dc_address
) {
6915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6918 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6920 if (r
->domain_name
) {
6921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6924 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6926 if (r
->forest_name
) {
6927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6930 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6932 if (r
->dc_site_name
) {
6933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6936 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
));
6938 if (r
->client_site_name
) {
6939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6942 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
));
6945 return NDR_ERR_SUCCESS
;
6948 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
6950 uint32_t _ptr_dc_unc
;
6951 TALLOC_CTX
*_mem_save_dc_unc_0
;
6952 uint32_t _ptr_dc_address
;
6953 TALLOC_CTX
*_mem_save_dc_address_0
;
6954 uint32_t _ptr_domain_name
;
6955 TALLOC_CTX
*_mem_save_domain_name_0
;
6956 uint32_t _ptr_forest_name
;
6957 TALLOC_CTX
*_mem_save_forest_name_0
;
6958 uint32_t _ptr_dc_site_name
;
6959 TALLOC_CTX
*_mem_save_dc_site_name_0
;
6960 uint32_t _ptr_client_site_name
;
6961 TALLOC_CTX
*_mem_save_client_site_name_0
;
6962 if (ndr_flags
& NDR_SCALARS
) {
6963 NDR_CHECK(ndr_pull_align(ndr
, 4));
6964 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
6966 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
6970 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
6971 if (_ptr_dc_address
) {
6972 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
6974 r
->dc_address
= NULL
;
6976 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
6977 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6978 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
6979 if (_ptr_domain_name
) {
6980 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
6982 r
->domain_name
= NULL
;
6984 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
6985 if (_ptr_forest_name
) {
6986 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
6988 r
->forest_name
= NULL
;
6990 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, &r
->dc_flags
));
6991 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
6992 if (_ptr_dc_site_name
) {
6993 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
6995 r
->dc_site_name
= NULL
;
6997 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
6998 if (_ptr_client_site_name
) {
6999 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
7001 r
->client_site_name
= NULL
;
7004 if (ndr_flags
& NDR_BUFFERS
) {
7006 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7007 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
7008 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
7009 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
7010 if (ndr_get_array_length(ndr
, &r
->dc_unc
) > ndr_get_array_size(ndr
, &r
->dc_unc
)) {
7011 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
));
7013 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t)));
7014 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t), CH_UTF16
));
7015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
7017 if (r
->dc_address
) {
7018 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7019 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
7020 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
7021 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
7022 if (ndr_get_array_length(ndr
, &r
->dc_address
) > ndr_get_array_size(ndr
, &r
->dc_address
)) {
7023 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
));
7025 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t)));
7026 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t), CH_UTF16
));
7027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
7029 if (r
->domain_name
) {
7030 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7031 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
7032 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
7033 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
7034 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
7035 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
));
7037 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
7038 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
7039 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
7041 if (r
->forest_name
) {
7042 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7043 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
7044 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
7045 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
7046 if (ndr_get_array_length(ndr
, &r
->forest_name
) > ndr_get_array_size(ndr
, &r
->forest_name
)) {
7047 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
));
7049 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t)));
7050 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t), CH_UTF16
));
7051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
7053 if (r
->dc_site_name
) {
7054 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7055 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
7056 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
7057 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
7058 if (ndr_get_array_length(ndr
, &r
->dc_site_name
) > ndr_get_array_size(ndr
, &r
->dc_site_name
)) {
7059 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
));
7061 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t)));
7062 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
));
7063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
7065 if (r
->client_site_name
) {
7066 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7067 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
7068 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
7069 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
7070 if (ndr_get_array_length(ndr
, &r
->client_site_name
) > ndr_get_array_size(ndr
, &r
->client_site_name
)) {
7071 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
));
7073 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t)));
7074 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
));
7075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
7078 return NDR_ERR_SUCCESS
;
7081 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
7083 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
7085 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
7088 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
7091 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
7093 if (r
->dc_address
) {
7094 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
7097 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr
, "dc_address_type", r
->dc_address_type
);
7098 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
7099 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
7101 if (r
->domain_name
) {
7102 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
7105 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
7107 if (r
->forest_name
) {
7108 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
7111 ndr_print_netr_DsR_DcFlags(ndr
, "dc_flags", r
->dc_flags
);
7112 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
7114 if (r
->dc_site_name
) {
7115 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
7118 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
7120 if (r
->client_site_name
) {
7121 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
7127 static enum ndr_err_code
ndr_push_netr_Capabilities(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Capabilities
*r
)
7129 if (ndr_flags
& NDR_SCALARS
) {
7130 int level
= ndr_push_get_switch_value(ndr
, r
);
7131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7134 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->server_capabilities
));
7138 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7141 if (ndr_flags
& NDR_BUFFERS
) {
7142 int level
= ndr_push_get_switch_value(ndr
, r
);
7148 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7151 return NDR_ERR_SUCCESS
;
7154 static enum ndr_err_code
ndr_pull_netr_Capabilities(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Capabilities
*r
)
7158 level
= ndr_pull_get_switch_value(ndr
, r
);
7159 if (ndr_flags
& NDR_SCALARS
) {
7160 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7161 if (_level
!= level
) {
7162 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7166 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->server_capabilities
));
7170 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7173 if (ndr_flags
& NDR_BUFFERS
) {
7179 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7182 return NDR_ERR_SUCCESS
;
7185 _PUBLIC_
void ndr_print_netr_Capabilities(struct ndr_print
*ndr
, const char *name
, const union netr_Capabilities
*r
)
7188 level
= ndr_print_get_switch_value(ndr
, r
);
7189 ndr_print_union(ndr
, name
, level
, "netr_Capabilities");
7192 ndr_print_netr_NegotiateFlags(ndr
, "server_capabilities", r
->server_capabilities
);
7196 ndr_print_bad_level(ndr
, name
, level
);
7200 static enum ndr_err_code
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7203 return NDR_ERR_SUCCESS
;
7206 static enum ndr_err_code
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7209 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7211 return NDR_ERR_SUCCESS
;
7214 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7216 ndr_print_uint32(ndr
, name
, r
);
7218 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7219 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7220 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7221 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7222 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7223 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7224 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5
, r
);
7225 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES
, r
);
7229 static enum ndr_err_code
ndr_push_netr_WorkstationFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7231 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7232 return NDR_ERR_SUCCESS
;
7235 static enum ndr_err_code
ndr_pull_netr_WorkstationFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7240 return NDR_ERR_SUCCESS
;
7243 _PUBLIC_
void ndr_print_netr_WorkstationFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7245 ndr_print_uint32(ndr
, name
, r
);
7247 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS
, r
);
7248 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE
, r
);
7252 static enum ndr_err_code
ndr_push_netr_SuiteMask(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
7254 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
7255 return NDR_ERR_SUCCESS
;
7258 static enum ndr_err_code
ndr_pull_netr_SuiteMask(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
7261 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
7263 return NDR_ERR_SUCCESS
;
7266 _PUBLIC_
void ndr_print_netr_SuiteMask(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
7268 ndr_print_uint16(ndr
, name
, r
);
7270 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE
, r
);
7271 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE
, r
);
7272 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER
, r
);
7273 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER
, r
);
7274 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE
, r
);
7275 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT
, r
);
7276 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL
, r
);
7277 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS
, r
);
7278 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS
, r
);
7279 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED
, r
);
7280 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER
, r
);
7281 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL
, r
);
7282 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER
, r
);
7286 static enum ndr_err_code
ndr_push_netr_ProductType(struct ndr_push
*ndr
, int ndr_flags
, uint8_t r
)
7288 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
7289 return NDR_ERR_SUCCESS
;
7292 static enum ndr_err_code
ndr_pull_netr_ProductType(struct ndr_pull
*ndr
, int ndr_flags
, uint8_t *r
)
7295 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
7297 return NDR_ERR_SUCCESS
;
7300 _PUBLIC_
void ndr_print_netr_ProductType(struct ndr_print
*ndr
, const char *name
, uint8_t r
)
7302 ndr_print_uint8(ndr
, name
, r
);
7304 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER
, r
);
7305 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER
, r
);
7306 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION
, r
);
7310 static enum ndr_err_code
ndr_push_netr_LsaPolicyInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LsaPolicyInformation
*r
)
7312 if (ndr_flags
& NDR_SCALARS
) {
7313 NDR_CHECK(ndr_push_align(ndr
, 4));
7314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7315 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
7317 if (ndr_flags
& NDR_BUFFERS
) {
7319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7320 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, r
->policy_size
));
7323 return NDR_ERR_SUCCESS
;
7326 static enum ndr_err_code
ndr_pull_netr_LsaPolicyInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LsaPolicyInformation
*r
)
7328 uint32_t _ptr_policy
;
7329 TALLOC_CTX
*_mem_save_policy_0
;
7330 if (ndr_flags
& NDR_SCALARS
) {
7331 NDR_CHECK(ndr_pull_align(ndr
, 4));
7332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->policy_size
));
7333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
7335 NDR_PULL_ALLOC(ndr
, r
->policy
);
7340 if (ndr_flags
& NDR_BUFFERS
) {
7342 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7343 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
7344 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->policy
));
7345 NDR_PULL_ALLOC_N(ndr
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
));
7346 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
)));
7347 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
7350 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->policy
, r
->policy_size
));
7353 return NDR_ERR_SUCCESS
;
7356 _PUBLIC_
void ndr_print_netr_LsaPolicyInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_LsaPolicyInformation
*r
)
7358 ndr_print_struct(ndr
, name
, "netr_LsaPolicyInformation");
7360 ndr_print_uint32(ndr
, "policy_size", r
->policy_size
);
7361 ndr_print_ptr(ndr
, "policy", r
->policy
);
7364 ndr_print_array_uint8(ndr
, "policy", r
->policy
, r
->policy_size
);
7370 static enum ndr_err_code
ndr_push_netr_OsVersionInfoEx(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionInfoEx
*r
)
7372 if (ndr_flags
& NDR_SCALARS
) {
7373 NDR_CHECK(ndr_push_align(ndr
, 4));
7374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 284));
7375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MajorVersion
));
7376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MinorVersion
));
7377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->BuildNumber
));
7378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->PlatformId
));
7379 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->CSDVersion
, 128, sizeof(uint16_t), CH_UTF16
));
7380 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMajor
));
7381 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMinor
));
7382 NDR_CHECK(ndr_push_netr_SuiteMask(ndr
, NDR_SCALARS
, r
->SuiteMask
));
7383 NDR_CHECK(ndr_push_netr_ProductType(ndr
, NDR_SCALARS
, r
->ProductType
));
7384 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Reserved
));
7386 if (ndr_flags
& NDR_BUFFERS
) {
7388 return NDR_ERR_SUCCESS
;
7391 static enum ndr_err_code
ndr_pull_netr_OsVersionInfoEx(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionInfoEx
*r
)
7393 if (ndr_flags
& NDR_SCALARS
) {
7394 NDR_CHECK(ndr_pull_align(ndr
, 4));
7395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->OSVersionInfoSize
));
7396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MajorVersion
));
7397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MinorVersion
));
7398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->BuildNumber
));
7399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->PlatformId
));
7400 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->CSDVersion
, 128, sizeof(uint16_t), CH_UTF16
));
7401 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMajor
));
7402 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMinor
));
7403 NDR_CHECK(ndr_pull_netr_SuiteMask(ndr
, NDR_SCALARS
, &r
->SuiteMask
));
7404 NDR_CHECK(ndr_pull_netr_ProductType(ndr
, NDR_SCALARS
, &r
->ProductType
));
7405 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Reserved
));
7407 if (ndr_flags
& NDR_BUFFERS
) {
7409 return NDR_ERR_SUCCESS
;
7412 _PUBLIC_
void ndr_print_netr_OsVersionInfoEx(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionInfoEx
*r
)
7414 ndr_print_struct(ndr
, name
, "netr_OsVersionInfoEx");
7416 ndr_print_uint32(ndr
, "OSVersionInfoSize", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?284:r
->OSVersionInfoSize
);
7417 ndr_print_uint32(ndr
, "MajorVersion", r
->MajorVersion
);
7418 ndr_print_uint32(ndr
, "MinorVersion", r
->MinorVersion
);
7419 ndr_print_uint32(ndr
, "BuildNumber", r
->BuildNumber
);
7420 ndr_print_uint32(ndr
, "PlatformId", r
->PlatformId
);
7421 ndr_print_string(ndr
, "CSDVersion", r
->CSDVersion
);
7422 ndr_print_uint16(ndr
, "ServicePackMajor", r
->ServicePackMajor
);
7423 ndr_print_uint16(ndr
, "ServicePackMinor", r
->ServicePackMinor
);
7424 ndr_print_netr_SuiteMask(ndr
, "SuiteMask", r
->SuiteMask
);
7425 ndr_print_netr_ProductType(ndr
, "ProductType", r
->ProductType
);
7426 ndr_print_uint8(ndr
, "Reserved", r
->Reserved
);
7430 static enum ndr_err_code
ndr_push_netr_OsVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersion
*r
)
7432 if (ndr_flags
& NDR_SCALARS
) {
7433 NDR_CHECK(ndr_push_align(ndr
, 4));
7434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7437 NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7439 if (ndr_flags
& NDR_BUFFERS
) {
7441 return NDR_ERR_SUCCESS
;
7444 static enum ndr_err_code
ndr_pull_netr_OsVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersion
*r
)
7446 if (ndr_flags
& NDR_SCALARS
) {
7447 NDR_CHECK(ndr_pull_align(ndr
, 4));
7448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7450 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7451 NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7453 if (ndr_flags
& NDR_BUFFERS
) {
7455 return NDR_ERR_SUCCESS
;
7458 _PUBLIC_
void ndr_print_netr_OsVersion(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersion
*r
)
7460 ndr_print_struct(ndr
, name
, "netr_OsVersion");
7462 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->length
);
7463 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7464 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->size
);
7465 ndr_print_netr_OsVersionInfoEx(ndr
, "os", &r
->os
);
7469 static enum ndr_err_code
ndr_push_netr_OsVersionContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionContainer
*r
)
7471 if (ndr_flags
& NDR_SCALARS
) {
7472 NDR_CHECK(ndr_push_align(ndr
, 4));
7473 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7474 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7475 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->os
));
7477 if (ndr_flags
& NDR_BUFFERS
) {
7479 NDR_CHECK(ndr_push_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7482 return NDR_ERR_SUCCESS
;
7485 static enum ndr_err_code
ndr_pull_netr_OsVersionContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionContainer
*r
)
7488 TALLOC_CTX
*_mem_save_os_0
;
7489 if (ndr_flags
& NDR_SCALARS
) {
7490 NDR_CHECK(ndr_pull_align(ndr
, 4));
7491 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
7492 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
7493 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_os
));
7495 NDR_PULL_ALLOC(ndr
, r
->os
);
7500 if (ndr_flags
& NDR_BUFFERS
) {
7502 _mem_save_os_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7503 NDR_PULL_SET_MEM_CTX(ndr
, r
->os
, 0);
7504 NDR_CHECK(ndr_pull_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_os_0
, 0);
7508 return NDR_ERR_SUCCESS
;
7511 _PUBLIC_
void ndr_print_netr_OsVersionContainer(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionContainer
*r
)
7513 ndr_print_struct(ndr
, name
, "netr_OsVersionContainer");
7515 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->length
);
7516 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->size
);
7517 ndr_print_ptr(ndr
, "os", r
->os
);
7520 ndr_print_netr_OsVersion(ndr
, "os", r
->os
);
7526 static enum ndr_err_code
ndr_push_netr_WorkstationInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_WorkstationInformation
*r
)
7528 if (ndr_flags
& NDR_SCALARS
) {
7529 NDR_CHECK(ndr_push_align(ndr
, 4));
7530 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7531 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_hostname
));
7532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7533 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy1
));
7534 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy2
));
7535 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy3
));
7536 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy4
));
7537 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7538 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7539 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7540 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7541 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
7542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
7543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
7544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
7546 if (ndr_flags
& NDR_BUFFERS
) {
7547 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7548 if (r
->dns_hostname
) {
7549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7552 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_hostname
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7558 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sitename
, ndr_charset_length(r
->sitename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7562 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7564 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy1
, ndr_charset_length(r
->dummy1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7568 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7570 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy2
, ndr_charset_length(r
->dummy2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7575 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7576 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy3
, ndr_charset_length(r
->dummy3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7581 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7582 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy4
, ndr_charset_length(r
->dummy4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7584 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7585 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7586 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7587 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7589 return NDR_ERR_SUCCESS
;
7592 static enum ndr_err_code
ndr_pull_netr_WorkstationInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_WorkstationInformation
*r
)
7594 uint32_t _ptr_dns_hostname
;
7595 TALLOC_CTX
*_mem_save_dns_hostname_0
;
7596 uint32_t _ptr_sitename
;
7597 TALLOC_CTX
*_mem_save_sitename_0
;
7598 uint32_t _ptr_dummy1
;
7599 TALLOC_CTX
*_mem_save_dummy1_0
;
7600 uint32_t _ptr_dummy2
;
7601 TALLOC_CTX
*_mem_save_dummy2_0
;
7602 uint32_t _ptr_dummy3
;
7603 TALLOC_CTX
*_mem_save_dummy3_0
;
7604 uint32_t _ptr_dummy4
;
7605 TALLOC_CTX
*_mem_save_dummy4_0
;
7606 if (ndr_flags
& NDR_SCALARS
) {
7607 NDR_CHECK(ndr_pull_align(ndr
, 4));
7608 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7609 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_hostname
));
7610 if (_ptr_dns_hostname
) {
7611 NDR_PULL_ALLOC(ndr
, r
->dns_hostname
);
7613 r
->dns_hostname
= NULL
;
7615 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
7616 if (_ptr_sitename
) {
7617 NDR_PULL_ALLOC(ndr
, r
->sitename
);
7621 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy1
));
7623 NDR_PULL_ALLOC(ndr
, r
->dummy1
);
7627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy2
));
7629 NDR_PULL_ALLOC(ndr
, r
->dummy2
);
7633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy3
));
7635 NDR_PULL_ALLOC(ndr
, r
->dummy3
);
7639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy4
));
7641 NDR_PULL_ALLOC(ndr
, r
->dummy4
);
7645 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7646 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7647 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7648 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7649 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
7650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
7651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
7652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
7654 if (ndr_flags
& NDR_BUFFERS
) {
7655 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7656 if (r
->dns_hostname
) {
7657 _mem_save_dns_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7658 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_hostname
, 0);
7659 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_hostname
));
7660 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_hostname
));
7661 if (ndr_get_array_length(ndr
, &r
->dns_hostname
) > ndr_get_array_size(ndr
, &r
->dns_hostname
)) {
7662 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
));
7664 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t)));
7665 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_hostname
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t), CH_UTF16
));
7666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_hostname_0
, 0);
7669 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7670 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7671 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
7672 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sitename
));
7673 if (ndr_get_array_length(ndr
, &r
->sitename
) > ndr_get_array_size(ndr
, &r
->sitename
)) {
7674 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
));
7676 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t)));
7677 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sitename
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t), CH_UTF16
));
7678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
7681 _mem_save_dummy1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7682 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy1
, 0);
7683 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy1
));
7684 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy1
));
7685 if (ndr_get_array_length(ndr
, &r
->dummy1
) > ndr_get_array_size(ndr
, &r
->dummy1
)) {
7686 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
));
7688 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t)));
7689 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy1
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t), CH_UTF16
));
7690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy1_0
, 0);
7693 _mem_save_dummy2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7694 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy2
, 0);
7695 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy2
));
7696 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy2
));
7697 if (ndr_get_array_length(ndr
, &r
->dummy2
) > ndr_get_array_size(ndr
, &r
->dummy2
)) {
7698 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
));
7700 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t)));
7701 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy2
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t), CH_UTF16
));
7702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy2_0
, 0);
7705 _mem_save_dummy3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7706 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy3
, 0);
7707 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy3
));
7708 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy3
));
7709 if (ndr_get_array_length(ndr
, &r
->dummy3
) > ndr_get_array_size(ndr
, &r
->dummy3
)) {
7710 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
));
7712 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t)));
7713 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy3
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t), CH_UTF16
));
7714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy3_0
, 0);
7717 _mem_save_dummy4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7718 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy4
, 0);
7719 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy4
));
7720 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy4
));
7721 if (ndr_get_array_length(ndr
, &r
->dummy4
) > ndr_get_array_size(ndr
, &r
->dummy4
)) {
7722 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
));
7724 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t)));
7725 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy4
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t), CH_UTF16
));
7726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy4_0
, 0);
7728 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7729 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7730 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7731 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7733 return NDR_ERR_SUCCESS
;
7736 _PUBLIC_
void ndr_print_netr_WorkstationInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_WorkstationInformation
*r
)
7738 ndr_print_struct(ndr
, name
, "netr_WorkstationInformation");
7740 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
7741 ndr_print_ptr(ndr
, "dns_hostname", r
->dns_hostname
);
7743 if (r
->dns_hostname
) {
7744 ndr_print_string(ndr
, "dns_hostname", r
->dns_hostname
);
7747 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
7750 ndr_print_string(ndr
, "sitename", r
->sitename
);
7753 ndr_print_ptr(ndr
, "dummy1", r
->dummy1
);
7756 ndr_print_string(ndr
, "dummy1", r
->dummy1
);
7759 ndr_print_ptr(ndr
, "dummy2", r
->dummy2
);
7762 ndr_print_string(ndr
, "dummy2", r
->dummy2
);
7765 ndr_print_ptr(ndr
, "dummy3", r
->dummy3
);
7768 ndr_print_string(ndr
, "dummy3", r
->dummy3
);
7771 ndr_print_ptr(ndr
, "dummy4", r
->dummy4
);
7774 ndr_print_string(ndr
, "dummy4", r
->dummy4
);
7777 ndr_print_netr_OsVersionContainer(ndr
, "os_version", &r
->os_version
);
7778 ndr_print_lsa_String(ndr
, "os_name", &r
->os_name
);
7779 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
7780 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
7781 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
7782 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
7783 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
7784 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
7788 static enum ndr_err_code
ndr_push_netr_WorkstationInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_WorkstationInfo
*r
)
7790 if (ndr_flags
& NDR_SCALARS
) {
7791 int level
= ndr_push_get_switch_value(ndr
, r
);
7792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7795 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_info
));
7799 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
7803 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7806 if (ndr_flags
& NDR_BUFFERS
) {
7807 int level
= ndr_push_get_switch_value(ndr
, r
);
7810 if (r
->workstation_info
) {
7811 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7816 if (r
->lsa_policy_info
) {
7817 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7822 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7825 return NDR_ERR_SUCCESS
;
7828 static enum ndr_err_code
ndr_pull_netr_WorkstationInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_WorkstationInfo
*r
)
7832 TALLOC_CTX
*_mem_save_workstation_info_0
;
7833 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
7834 level
= ndr_pull_get_switch_value(ndr
, r
);
7835 if (ndr_flags
& NDR_SCALARS
) {
7836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7837 if (_level
!= level
) {
7838 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7842 uint32_t _ptr_workstation_info
;
7843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_info
));
7844 if (_ptr_workstation_info
) {
7845 NDR_PULL_ALLOC(ndr
, r
->workstation_info
);
7847 r
->workstation_info
= NULL
;
7852 uint32_t _ptr_lsa_policy_info
;
7853 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
7854 if (_ptr_lsa_policy_info
) {
7855 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
7857 r
->lsa_policy_info
= NULL
;
7862 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7865 if (ndr_flags
& NDR_BUFFERS
) {
7868 if (r
->workstation_info
) {
7869 _mem_save_workstation_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7870 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_info
, 0);
7871 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_info_0
, 0);
7877 if (r
->lsa_policy_info
) {
7878 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7879 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
7880 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
7886 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7889 return NDR_ERR_SUCCESS
;
7892 _PUBLIC_
void ndr_print_netr_WorkstationInfo(struct ndr_print
*ndr
, const char *name
, const union netr_WorkstationInfo
*r
)
7895 level
= ndr_print_get_switch_value(ndr
, r
);
7896 ndr_print_union(ndr
, name
, level
, "netr_WorkstationInfo");
7899 ndr_print_ptr(ndr
, "workstation_info", r
->workstation_info
);
7901 if (r
->workstation_info
) {
7902 ndr_print_netr_WorkstationInformation(ndr
, "workstation_info", r
->workstation_info
);
7908 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7910 if (r
->lsa_policy_info
) {
7911 ndr_print_netr_WorkstationInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7917 ndr_print_bad_level(ndr
, name
, level
);
7921 static enum ndr_err_code
ndr_push_netr_trust_extension(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_trust_extension
*r
)
7923 if (ndr_flags
& NDR_SCALARS
) {
7924 NDR_CHECK(ndr_push_align(ndr
, 4));
7925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7928 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->flags
));
7929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_type
));
7931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7933 if (ndr_flags
& NDR_BUFFERS
) {
7935 return NDR_ERR_SUCCESS
;
7938 static enum ndr_err_code
ndr_pull_netr_trust_extension(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension
*r
)
7940 if (ndr_flags
& NDR_SCALARS
) {
7941 NDR_CHECK(ndr_pull_align(ndr
, 4));
7942 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7943 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7944 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7945 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->flags
));
7946 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
7947 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_type
));
7948 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
7950 if (ndr_flags
& NDR_BUFFERS
) {
7952 return NDR_ERR_SUCCESS
;
7955 _PUBLIC_
void ndr_print_netr_trust_extension(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension
*r
)
7957 ndr_print_struct(ndr
, name
, "netr_trust_extension");
7959 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->length
);
7960 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7961 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->size
);
7962 ndr_print_netr_TrustFlags(ndr
, "flags", r
->flags
);
7963 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
7964 ndr_print_uint32(ndr
, "trust_type", r
->trust_type
);
7965 ndr_print_uint32(ndr
, "trust_attributes", r
->trust_attributes
);
7969 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
)
7971 if (ndr_flags
& NDR_SCALARS
) {
7972 NDR_CHECK(ndr_push_align(ndr
, 4));
7973 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
7974 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
7975 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
7977 if (ndr_flags
& NDR_BUFFERS
) {
7979 NDR_CHECK(ndr_push_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
7982 return NDR_ERR_SUCCESS
;
7985 static enum ndr_err_code
ndr_pull_netr_trust_extension_container(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension_container
*r
)
7988 TALLOC_CTX
*_mem_save_info_0
;
7989 if (ndr_flags
& NDR_SCALARS
) {
7990 NDR_CHECK(ndr_pull_align(ndr
, 4));
7991 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
7992 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
7993 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
7995 NDR_PULL_ALLOC(ndr
, r
->info
);
8000 if (ndr_flags
& NDR_BUFFERS
) {
8002 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8003 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
8004 NDR_CHECK(ndr_pull_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
8005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
8008 return NDR_ERR_SUCCESS
;
8011 _PUBLIC_
void ndr_print_netr_trust_extension_container(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension_container
*r
)
8013 ndr_print_struct(ndr
, name
, "netr_trust_extension_container");
8015 ndr_print_uint16(ndr
, "length", r
->length
);
8016 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
8017 ndr_print_ptr(ndr
, "info", r
->info
);
8020 ndr_print_netr_trust_extension(ndr
, "info", r
->info
);
8026 static enum ndr_err_code
ndr_push_netr_OneDomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OneDomainInfo
*r
)
8028 if (ndr_flags
& NDR_SCALARS
) {
8029 NDR_CHECK(ndr_push_align(ndr
, 4));
8030 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
8031 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8032 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8033 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
8035 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8036 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8037 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8038 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long1
));
8040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
8041 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8044 if (ndr_flags
& NDR_BUFFERS
) {
8045 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
8046 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8047 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8048 if (r
->domain_sid
) {
8049 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8051 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8052 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8053 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8054 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8056 return NDR_ERR_SUCCESS
;
8059 static enum ndr_err_code
ndr_pull_netr_OneDomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OneDomainInfo
*r
)
8061 uint32_t _ptr_domain_sid
;
8062 TALLOC_CTX
*_mem_save_domain_sid_0
;
8063 if (ndr_flags
& NDR_SCALARS
) {
8064 NDR_CHECK(ndr_pull_align(ndr
, 4));
8065 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
8066 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8067 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8068 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8069 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
8070 if (_ptr_domain_sid
) {
8071 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
8073 r
->domain_sid
= NULL
;
8075 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8076 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8077 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8078 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8079 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long1
));
8080 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
8081 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8082 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8084 if (ndr_flags
& NDR_BUFFERS
) {
8085 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
8086 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8087 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8088 if (r
->domain_sid
) {
8089 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8090 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
8091 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8092 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
8094 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8095 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8096 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8097 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8099 return NDR_ERR_SUCCESS
;
8102 _PUBLIC_
void ndr_print_netr_OneDomainInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_OneDomainInfo
*r
)
8104 ndr_print_struct(ndr
, name
, "netr_OneDomainInfo");
8106 ndr_print_lsa_String(ndr
, "domainname", &r
->domainname
);
8107 ndr_print_lsa_String(ndr
, "dns_domainname", &r
->dns_domainname
);
8108 ndr_print_lsa_String(ndr
, "dns_forestname", &r
->dns_forestname
);
8109 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
8110 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
8112 if (r
->domain_sid
) {
8113 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
8116 ndr_print_netr_trust_extension_container(ndr
, "trust_extension", &r
->trust_extension
);
8117 ndr_print_lsa_String(ndr
, "dummy_string2", &r
->dummy_string2
);
8118 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
8119 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
8120 ndr_print_uint32(ndr
, "dummy_long1", r
->dummy_long1
);
8121 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
8122 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8123 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8127 static enum ndr_err_code
ndr_push_netr_DomainInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInformation
*r
)
8129 uint32_t cntr_trusted_domains_1
;
8130 if (ndr_flags
& NDR_SCALARS
) {
8131 NDR_CHECK(ndr_push_align(ndr
, 4));
8132 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domains
));
8135 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8136 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8137 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8138 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8139 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8140 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
8141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->supported_enc_types
));
8142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8145 if (ndr_flags
& NDR_BUFFERS
) {
8146 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8147 if (r
->trusted_domains
) {
8148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8149 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8150 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8152 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8153 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8156 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8157 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8158 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8159 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8160 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8162 return NDR_ERR_SUCCESS
;
8165 static enum ndr_err_code
ndr_pull_netr_DomainInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInformation
*r
)
8167 uint32_t _ptr_trusted_domains
;
8168 uint32_t cntr_trusted_domains_1
;
8169 TALLOC_CTX
*_mem_save_trusted_domains_0
;
8170 TALLOC_CTX
*_mem_save_trusted_domains_1
;
8171 if (ndr_flags
& NDR_SCALARS
) {
8172 NDR_CHECK(ndr_pull_align(ndr
, 4));
8173 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trusted_domain_count
));
8175 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domains
));
8176 if (_ptr_trusted_domains
) {
8177 NDR_PULL_ALLOC(ndr
, r
->trusted_domains
);
8179 r
->trusted_domains
= NULL
;
8181 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8182 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8183 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8184 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8185 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8186 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
8187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->supported_enc_types
));
8188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8191 if (ndr_flags
& NDR_BUFFERS
) {
8192 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8193 if (r
->trusted_domains
) {
8194 _mem_save_trusted_domains_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8195 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domains
));
8197 NDR_PULL_ALLOC_N(ndr
, r
->trusted_domains
, ndr_get_array_size(ndr
, &r
->trusted_domains
));
8198 _mem_save_trusted_domains_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8199 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8200 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8201 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8203 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8204 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_1
, 0);
8207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_0
, 0);
8209 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8210 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8211 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8212 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8213 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8214 if (r
->trusted_domains
) {
8215 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusted_domains
, r
->trusted_domain_count
));
8218 return NDR_ERR_SUCCESS
;
8221 _PUBLIC_
void ndr_print_netr_DomainInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInformation
*r
)
8223 uint32_t cntr_trusted_domains_1
;
8224 ndr_print_struct(ndr
, name
, "netr_DomainInformation");
8226 ndr_print_netr_OneDomainInfo(ndr
, "primary_domain", &r
->primary_domain
);
8227 ndr_print_uint32(ndr
, "trusted_domain_count", r
->trusted_domain_count
);
8228 ndr_print_ptr(ndr
, "trusted_domains", r
->trusted_domains
);
8230 if (r
->trusted_domains
) {
8231 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusted_domains", (int)r
->trusted_domain_count
);
8233 for (cntr_trusted_domains_1
=0;cntr_trusted_domains_1
<r
->trusted_domain_count
;cntr_trusted_domains_1
++) {
8235 if (asprintf(&idx_1
, "[%d]", cntr_trusted_domains_1
) != -1) {
8236 ndr_print_netr_OneDomainInfo(ndr
, "trusted_domains", &r
->trusted_domains
[cntr_trusted_domains_1
]);
8243 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
8244 ndr_print_lsa_String(ndr
, "dns_hostname", &r
->dns_hostname
);
8245 ndr_print_lsa_String(ndr
, "dummy_string2", &r
->dummy_string2
);
8246 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
8247 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
8248 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
8249 ndr_print_uint32(ndr
, "supported_enc_types", r
->supported_enc_types
);
8250 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8251 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8255 static enum ndr_err_code
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
8257 if (ndr_flags
& NDR_SCALARS
) {
8258 int level
= ndr_push_get_switch_value(ndr
, r
);
8259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8262 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_info
));
8266 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
8270 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8273 if (ndr_flags
& NDR_BUFFERS
) {
8274 int level
= ndr_push_get_switch_value(ndr
, r
);
8277 if (r
->domain_info
) {
8278 NDR_CHECK(ndr_push_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8283 if (r
->lsa_policy_info
) {
8284 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8289 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8292 return NDR_ERR_SUCCESS
;
8295 static enum ndr_err_code
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
8299 TALLOC_CTX
*_mem_save_domain_info_0
;
8300 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
8301 level
= ndr_pull_get_switch_value(ndr
, r
);
8302 if (ndr_flags
& NDR_SCALARS
) {
8303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8304 if (_level
!= level
) {
8305 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8309 uint32_t _ptr_domain_info
;
8310 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_info
));
8311 if (_ptr_domain_info
) {
8312 NDR_PULL_ALLOC(ndr
, r
->domain_info
);
8314 r
->domain_info
= NULL
;
8319 uint32_t _ptr_lsa_policy_info
;
8320 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
8321 if (_ptr_lsa_policy_info
) {
8322 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
8324 r
->lsa_policy_info
= NULL
;
8329 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8332 if (ndr_flags
& NDR_BUFFERS
) {
8335 if (r
->domain_info
) {
8336 _mem_save_domain_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8337 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_info
, 0);
8338 NDR_CHECK(ndr_pull_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_info_0
, 0);
8344 if (r
->lsa_policy_info
) {
8345 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8346 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
8347 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
8353 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8356 return NDR_ERR_SUCCESS
;
8359 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
8362 level
= ndr_print_get_switch_value(ndr
, r
);
8363 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
8366 ndr_print_ptr(ndr
, "domain_info", r
->domain_info
);
8368 if (r
->domain_info
) {
8369 ndr_print_netr_DomainInformation(ndr
, "domain_info", r
->domain_info
);
8375 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8377 if (r
->lsa_policy_info
) {
8378 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8384 ndr_print_bad_level(ndr
, name
, level
);
8388 static enum ndr_err_code
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CryptPassword
*r
)
8391 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8392 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8393 if (ndr_flags
& NDR_SCALARS
) {
8394 NDR_CHECK(ndr_push_align(ndr
, 4));
8395 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
8398 if (ndr_flags
& NDR_BUFFERS
) {
8400 ndr
->flags
= _flags_save_STRUCT
;
8402 return NDR_ERR_SUCCESS
;
8405 static enum ndr_err_code
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
8408 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8409 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8410 if (ndr_flags
& NDR_SCALARS
) {
8411 NDR_CHECK(ndr_pull_align(ndr
, 4));
8412 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
8415 if (ndr_flags
& NDR_BUFFERS
) {
8417 ndr
->flags
= _flags_save_STRUCT
;
8419 return NDR_ERR_SUCCESS
;
8422 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
8424 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
8426 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8427 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8429 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
8430 ndr_print_uint32(ndr
, "length", r
->length
);
8432 ndr
->flags
= _flags_save_STRUCT
;
8436 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8438 uint32_t cntr_sitename_1
;
8439 if (ndr_flags
& NDR_SCALARS
) {
8440 NDR_CHECK(ndr_push_align(ndr
, 4));
8441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8444 if (ndr_flags
& NDR_BUFFERS
) {
8446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8447 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8448 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8450 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8451 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8455 return NDR_ERR_SUCCESS
;
8458 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesWCtr
*r
)
8460 uint32_t _ptr_sitename
;
8461 uint32_t cntr_sitename_1
;
8462 TALLOC_CTX
*_mem_save_sitename_0
;
8463 TALLOC_CTX
*_mem_save_sitename_1
;
8464 if (ndr_flags
& NDR_SCALARS
) {
8465 NDR_CHECK(ndr_pull_align(ndr
, 4));
8466 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8467 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8468 if (_ptr_sitename
) {
8469 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8474 if (ndr_flags
& NDR_BUFFERS
) {
8476 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8477 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8478 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8479 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8480 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8481 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8482 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8483 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8485 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8486 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8488 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8492 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8495 return NDR_ERR_SUCCESS
;
8498 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8500 uint32_t cntr_sitename_1
;
8501 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesWCtr");
8503 ndr_print_uint32(ndr
, "count", r
->count
);
8504 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8507 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8509 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8511 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8512 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8522 static enum ndr_err_code
ndr_push_netr_DsRAddress(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddress
*r
)
8524 if (ndr_flags
& NDR_SCALARS
) {
8525 NDR_CHECK(ndr_push_align(ndr
, 4));
8526 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
8527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8529 if (ndr_flags
& NDR_BUFFERS
) {
8531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8532 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->size
));
8535 return NDR_ERR_SUCCESS
;
8538 static enum ndr_err_code
ndr_pull_netr_DsRAddress(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddress
*r
)
8540 uint32_t _ptr_buffer
;
8541 TALLOC_CTX
*_mem_save_buffer_0
;
8542 if (ndr_flags
& NDR_SCALARS
) {
8543 NDR_CHECK(ndr_pull_align(ndr
, 4));
8544 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
8546 NDR_PULL_ALLOC(ndr
, r
->buffer
);
8550 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
8552 if (ndr_flags
& NDR_BUFFERS
) {
8554 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8555 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
8556 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
8557 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
));
8558 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
)));
8559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
8562 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->size
));
8565 return NDR_ERR_SUCCESS
;
8568 _PUBLIC_
void ndr_print_netr_DsRAddress(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddress
*r
)
8570 ndr_print_struct(ndr
, name
, "netr_DsRAddress");
8572 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
8575 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->size
);
8578 ndr_print_uint32(ndr
, "size", r
->size
);
8582 static enum ndr_err_code
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
8584 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8585 return NDR_ERR_SUCCESS
;
8588 static enum ndr_err_code
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
8591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8593 return NDR_ERR_SUCCESS
;
8596 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
8598 const char *val
= NULL
;
8601 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8602 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
8603 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
8604 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
8606 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8609 static enum ndr_err_code
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8612 return NDR_ERR_SUCCESS
;
8615 static enum ndr_err_code
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8620 return NDR_ERR_SUCCESS
;
8623 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8625 ndr_print_uint32(ndr
, name
, r
);
8627 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
8628 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
8629 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
8630 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
8631 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
8632 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
8633 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
8637 static enum ndr_err_code
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
8639 if (ndr_flags
& NDR_SCALARS
) {
8640 NDR_CHECK(ndr_push_align(ndr
, 4));
8641 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
8642 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
8643 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
8644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
8645 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
8646 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
8647 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
8648 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8650 if (ndr_flags
& NDR_BUFFERS
) {
8651 if (r
->netbios_name
) {
8652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8655 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8661 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8664 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8667 return NDR_ERR_SUCCESS
;
8670 static enum ndr_err_code
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
8672 uint32_t _ptr_netbios_name
;
8673 TALLOC_CTX
*_mem_save_netbios_name_0
;
8674 uint32_t _ptr_dns_name
;
8675 TALLOC_CTX
*_mem_save_dns_name_0
;
8677 TALLOC_CTX
*_mem_save_sid_0
;
8678 if (ndr_flags
& NDR_SCALARS
) {
8679 NDR_CHECK(ndr_pull_align(ndr
, 4));
8680 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
8681 if (_ptr_netbios_name
) {
8682 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
8684 r
->netbios_name
= NULL
;
8686 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
8687 if (_ptr_dns_name
) {
8688 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
8692 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
8693 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
8694 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
8695 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
8696 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
8698 NDR_PULL_ALLOC(ndr
, r
->sid
);
8702 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8704 if (ndr_flags
& NDR_BUFFERS
) {
8705 if (r
->netbios_name
) {
8706 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8707 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
8708 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
8709 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
8710 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
8711 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
));
8713 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
8714 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
8715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
8718 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8719 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
8720 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
8721 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
8722 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
8723 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
));
8725 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
8726 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
8727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
8730 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8731 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
8732 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
8736 return NDR_ERR_SUCCESS
;
8739 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
8741 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
8743 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
8745 if (r
->netbios_name
) {
8746 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
8749 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
8752 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
8755 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
8756 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
8757 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
8758 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
8759 ndr_print_ptr(ndr
, "sid", r
->sid
);
8762 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
8765 ndr_print_GUID(ndr
, "guid", &r
->guid
);
8769 static enum ndr_err_code
ndr_push_netr_DomainTrustList(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustList
*r
)
8771 uint32_t cntr_array_1
;
8772 if (ndr_flags
& NDR_SCALARS
) {
8773 NDR_CHECK(ndr_push_align(ndr
, 4));
8774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8775 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
8777 if (ndr_flags
& NDR_BUFFERS
) {
8779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8780 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8781 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8783 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8784 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8788 return NDR_ERR_SUCCESS
;
8791 static enum ndr_err_code
ndr_pull_netr_DomainTrustList(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustList
*r
)
8793 uint32_t _ptr_array
;
8794 uint32_t cntr_array_1
;
8795 TALLOC_CTX
*_mem_save_array_0
;
8796 TALLOC_CTX
*_mem_save_array_1
;
8797 if (ndr_flags
& NDR_SCALARS
) {
8798 NDR_CHECK(ndr_pull_align(ndr
, 4));
8799 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
8802 NDR_PULL_ALLOC(ndr
, r
->array
);
8807 if (ndr_flags
& NDR_BUFFERS
) {
8809 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8810 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8811 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
8812 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
8813 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8814 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8815 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8816 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8818 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8819 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8821 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
8822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
8825 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
8828 return NDR_ERR_SUCCESS
;
8831 _PUBLIC_
void ndr_print_netr_DomainTrustList(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustList
*r
)
8833 uint32_t cntr_array_1
;
8834 ndr_print_struct(ndr
, name
, "netr_DomainTrustList");
8836 ndr_print_uint32(ndr
, "count", r
->count
);
8837 ndr_print_ptr(ndr
, "array", r
->array
);
8840 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
8842 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
8844 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
8845 ndr_print_netr_DomainTrust(ndr
, "array", &r
->array
[cntr_array_1
]);
8855 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8857 uint32_t cntr_sitename_1
;
8858 uint32_t cntr_subnetname_1
;
8859 if (ndr_flags
& NDR_SCALARS
) {
8860 NDR_CHECK(ndr_push_align(ndr
, 4));
8861 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8862 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8863 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->subnetname
));
8865 if (ndr_flags
& NDR_BUFFERS
) {
8867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8868 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8869 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8871 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8872 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8875 if (r
->subnetname
) {
8876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8877 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8878 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8880 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8881 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8885 return NDR_ERR_SUCCESS
;
8888 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesExWCtr
*r
)
8890 uint32_t _ptr_sitename
;
8891 uint32_t cntr_sitename_1
;
8892 TALLOC_CTX
*_mem_save_sitename_0
;
8893 TALLOC_CTX
*_mem_save_sitename_1
;
8894 uint32_t _ptr_subnetname
;
8895 uint32_t cntr_subnetname_1
;
8896 TALLOC_CTX
*_mem_save_subnetname_0
;
8897 TALLOC_CTX
*_mem_save_subnetname_1
;
8898 if (ndr_flags
& NDR_SCALARS
) {
8899 NDR_CHECK(ndr_pull_align(ndr
, 4));
8900 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8902 if (_ptr_sitename
) {
8903 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8907 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_subnetname
));
8908 if (_ptr_subnetname
) {
8909 NDR_PULL_ALLOC(ndr
, r
->subnetname
);
8911 r
->subnetname
= NULL
;
8914 if (ndr_flags
& NDR_BUFFERS
) {
8916 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8917 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8918 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8919 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8920 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8921 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8922 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8923 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8925 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8926 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8931 if (r
->subnetname
) {
8932 _mem_save_subnetname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8933 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8934 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->subnetname
));
8935 NDR_PULL_ALLOC_N(ndr
, r
->subnetname
, ndr_get_array_size(ndr
, &r
->subnetname
));
8936 _mem_save_subnetname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8937 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8938 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8939 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8941 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8942 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_1
, 0);
8945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_0
, 0);
8948 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8950 if (r
->subnetname
) {
8951 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->subnetname
, r
->count
));
8954 return NDR_ERR_SUCCESS
;
8957 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8959 uint32_t cntr_sitename_1
;
8960 uint32_t cntr_subnetname_1
;
8961 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExWCtr");
8963 ndr_print_uint32(ndr
, "count", r
->count
);
8964 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8967 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8969 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8971 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8972 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8979 ndr_print_ptr(ndr
, "subnetname", r
->subnetname
);
8981 if (r
->subnetname
) {
8982 ndr
->print(ndr
, "%s: ARRAY(%d)", "subnetname", (int)r
->count
);
8984 for (cntr_subnetname_1
=0;cntr_subnetname_1
<r
->count
;cntr_subnetname_1
++) {
8986 if (asprintf(&idx_1
, "[%d]", cntr_subnetname_1
) != -1) {
8987 ndr_print_lsa_String(ndr
, "subnetname", &r
->subnetname
[cntr_subnetname_1
]);
8997 static enum ndr_err_code
ndr_push_DcSitesCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct DcSitesCtr
*r
)
8999 uint32_t cntr_sites_1
;
9000 if (ndr_flags
& NDR_SCALARS
) {
9001 NDR_CHECK(ndr_push_align(ndr
, 4));
9002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
9003 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sites
));
9005 if (ndr_flags
& NDR_BUFFERS
) {
9007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
9008 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9009 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9011 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9012 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9016 return NDR_ERR_SUCCESS
;
9019 static enum ndr_err_code
ndr_pull_DcSitesCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct DcSitesCtr
*r
)
9021 uint32_t _ptr_sites
;
9022 uint32_t cntr_sites_1
;
9023 TALLOC_CTX
*_mem_save_sites_0
;
9024 TALLOC_CTX
*_mem_save_sites_1
;
9025 if (ndr_flags
& NDR_SCALARS
) {
9026 NDR_CHECK(ndr_pull_align(ndr
, 4));
9027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sites
));
9028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sites
));
9030 NDR_PULL_ALLOC(ndr
, r
->sites
);
9035 if (ndr_flags
& NDR_BUFFERS
) {
9037 _mem_save_sites_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9038 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9039 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sites
));
9040 NDR_PULL_ALLOC_N(ndr
, r
->sites
, ndr_get_array_size(ndr
, &r
->sites
));
9041 _mem_save_sites_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9042 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9043 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9044 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9046 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9047 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_1
, 0);
9050 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_0
, 0);
9053 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sites
, r
->num_sites
));
9056 return NDR_ERR_SUCCESS
;
9059 _PUBLIC_
void ndr_print_DcSitesCtr(struct ndr_print
*ndr
, const char *name
, const struct DcSitesCtr
*r
)
9061 uint32_t cntr_sites_1
;
9062 ndr_print_struct(ndr
, name
, "DcSitesCtr");
9064 ndr_print_uint32(ndr
, "num_sites", r
->num_sites
);
9065 ndr_print_ptr(ndr
, "sites", r
->sites
);
9068 ndr
->print(ndr
, "%s: ARRAY(%d)", "sites", (int)r
->num_sites
);
9070 for (cntr_sites_1
=0;cntr_sites_1
<r
->num_sites
;cntr_sites_1
++) {
9072 if (asprintf(&idx_1
, "[%d]", cntr_sites_1
) != -1) {
9073 ndr_print_lsa_String(ndr
, "sites", &r
->sites
[cntr_sites_1
]);
9083 static enum ndr_err_code
ndr_push_netr_TrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_TrustInfo
*r
)
9085 uint32_t cntr_data_1
;
9086 uint32_t cntr_entries_1
;
9087 if (ndr_flags
& NDR_SCALARS
) {
9088 NDR_CHECK(ndr_push_align(ndr
, 4));
9089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9090 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
9091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->entry_count
));
9092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
9094 if (ndr_flags
& NDR_BUFFERS
) {
9096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9097 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
9102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9103 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9104 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9106 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9107 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9111 return NDR_ERR_SUCCESS
;
9114 static enum ndr_err_code
ndr_pull_netr_TrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_TrustInfo
*r
)
9117 uint32_t cntr_data_1
;
9118 TALLOC_CTX
*_mem_save_data_0
;
9119 TALLOC_CTX
*_mem_save_data_1
;
9120 uint32_t _ptr_entries
;
9121 uint32_t cntr_entries_1
;
9122 TALLOC_CTX
*_mem_save_entries_0
;
9123 TALLOC_CTX
*_mem_save_entries_1
;
9124 if (ndr_flags
& NDR_SCALARS
) {
9125 NDR_CHECK(ndr_pull_align(ndr
, 4));
9126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
9129 NDR_PULL_ALLOC(ndr
, r
->data
);
9133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->entry_count
));
9134 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
9136 NDR_PULL_ALLOC(ndr
, r
->entries
);
9141 if (ndr_flags
& NDR_BUFFERS
) {
9143 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9144 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9145 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
9146 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
9147 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9148 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9149 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
9152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
9153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
9156 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9157 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9158 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
9159 NDR_PULL_ALLOC_N(ndr
, r
->entries
, ndr_get_array_size(ndr
, &r
->entries
));
9160 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9161 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9162 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9163 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9165 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9166 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9168 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
9169 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
9172 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->count
));
9175 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
9178 return NDR_ERR_SUCCESS
;
9181 _PUBLIC_
void ndr_print_netr_TrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_TrustInfo
*r
)
9183 uint32_t cntr_data_1
;
9184 uint32_t cntr_entries_1
;
9185 ndr_print_struct(ndr
, name
, "netr_TrustInfo");
9187 ndr_print_uint32(ndr
, "count", r
->count
);
9188 ndr_print_ptr(ndr
, "data", r
->data
);
9191 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", (int)r
->count
);
9193 for (cntr_data_1
=0;cntr_data_1
<r
->count
;cntr_data_1
++) {
9195 if (asprintf(&idx_1
, "[%d]", cntr_data_1
) != -1) {
9196 ndr_print_uint32(ndr
, "data", r
->data
[cntr_data_1
]);
9203 ndr_print_uint32(ndr
, "entry_count", r
->entry_count
);
9204 ndr_print_ptr(ndr
, "entries", r
->entries
);
9207 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
9209 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
9211 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
9212 ndr_print_lsa_String(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
9222 static enum ndr_err_code
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
9224 if (flags
& NDR_IN
) {
9225 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9226 if (r
->in
.server_name
) {
9227 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9230 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
));
9232 if (r
->in
.account_name
== NULL
) {
9233 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9238 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
));
9239 if (r
->in
.workstation
== NULL
) {
9240 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9245 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9247 if (flags
& NDR_OUT
) {
9248 if (r
->out
.info
== NULL
) {
9249 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9251 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
9253 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9255 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9257 return NDR_ERR_SUCCESS
;
9260 static enum ndr_err_code
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
9262 uint32_t _ptr_server_name
;
9264 TALLOC_CTX
*_mem_save_server_name_0
;
9265 TALLOC_CTX
*_mem_save_info_0
;
9266 TALLOC_CTX
*_mem_save_info_1
;
9267 if (flags
& NDR_IN
) {
9268 ZERO_STRUCT(r
->out
);
9270 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9271 if (_ptr_server_name
) {
9272 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9274 r
->in
.server_name
= NULL
;
9276 if (r
->in
.server_name
) {
9277 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9278 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9279 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9280 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9281 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9282 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
));
9284 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9285 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
));
9286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9288 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9289 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9290 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9291 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
));
9293 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9294 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
));
9295 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9296 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9297 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9298 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
));
9300 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9301 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9302 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9303 ZERO_STRUCTP(r
->out
.info
);
9305 if (flags
& NDR_OUT
) {
9306 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9307 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9309 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9310 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9311 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
9313 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
9315 *r
->out
.info
= NULL
;
9318 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9319 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
9320 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
9323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9324 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9326 return NDR_ERR_SUCCESS
;
9329 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
9331 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
9333 if (flags
& NDR_SET_VALUES
) {
9334 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9336 if (flags
& NDR_IN
) {
9337 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
9339 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9341 if (r
->in
.server_name
) {
9342 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9345 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9347 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9349 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9351 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9355 if (flags
& NDR_OUT
) {
9356 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
9358 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9360 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
9363 ndr_print_netr_UasInfo(ndr
, "info", *r
->out
.info
);
9367 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9373 static enum ndr_err_code
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
9375 if (flags
& NDR_IN
) {
9376 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9377 if (r
->in
.server_name
) {
9378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9379 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9381 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
));
9383 if (r
->in
.account_name
== NULL
) {
9384 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9389 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
));
9390 if (r
->in
.workstation
== NULL
) {
9391 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9396 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9398 if (flags
& NDR_OUT
) {
9399 if (r
->out
.info
== NULL
) {
9400 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9402 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9403 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9405 return NDR_ERR_SUCCESS
;
9408 static enum ndr_err_code
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
9410 uint32_t _ptr_server_name
;
9411 TALLOC_CTX
*_mem_save_server_name_0
;
9412 TALLOC_CTX
*_mem_save_info_0
;
9413 if (flags
& NDR_IN
) {
9414 ZERO_STRUCT(r
->out
);
9416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9417 if (_ptr_server_name
) {
9418 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9420 r
->in
.server_name
= NULL
;
9422 if (r
->in
.server_name
) {
9423 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9424 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9425 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9426 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9427 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9428 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
));
9430 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9431 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
));
9432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9434 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9435 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9436 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9437 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
));
9439 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9440 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
));
9441 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9442 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9443 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9444 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
));
9446 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9447 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9448 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9449 ZERO_STRUCTP(r
->out
.info
);
9451 if (flags
& NDR_OUT
) {
9452 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9453 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9455 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9456 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9457 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9459 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9461 return NDR_ERR_SUCCESS
;
9464 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
9466 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
9468 if (flags
& NDR_SET_VALUES
) {
9469 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9471 if (flags
& NDR_IN
) {
9472 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
9474 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9476 if (r
->in
.server_name
) {
9477 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9480 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9482 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9484 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9486 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9490 if (flags
& NDR_OUT
) {
9491 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
9493 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9495 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
9497 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9503 static enum ndr_err_code
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
9505 if (flags
& NDR_IN
) {
9506 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9507 if (r
->in
.server_name
) {
9508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9511 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
));
9513 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9514 if (r
->in
.computer_name
) {
9515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9518 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
));
9520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9521 if (r
->in
.credential
) {
9522 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9525 if (r
->in
.return_authenticator
) {
9526 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9528 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9529 if (r
->in
.logon
== NULL
) {
9530 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9532 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9533 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9534 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
9536 if (flags
& NDR_OUT
) {
9537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9538 if (r
->out
.return_authenticator
) {
9539 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9541 if (r
->out
.validation
== NULL
) {
9542 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9544 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9545 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9546 if (r
->out
.authoritative
== NULL
) {
9547 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9549 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
9550 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9552 return NDR_ERR_SUCCESS
;
9555 static enum ndr_err_code
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
9557 uint32_t _ptr_server_name
;
9558 uint32_t _ptr_computer_name
;
9559 uint32_t _ptr_credential
;
9560 uint32_t _ptr_return_authenticator
;
9561 TALLOC_CTX
*_mem_save_server_name_0
;
9562 TALLOC_CTX
*_mem_save_computer_name_0
;
9563 TALLOC_CTX
*_mem_save_credential_0
;
9564 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9565 TALLOC_CTX
*_mem_save_logon_0
;
9566 TALLOC_CTX
*_mem_save_validation_0
;
9567 TALLOC_CTX
*_mem_save_authoritative_0
;
9568 if (flags
& NDR_IN
) {
9569 ZERO_STRUCT(r
->out
);
9571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9572 if (_ptr_server_name
) {
9573 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9575 r
->in
.server_name
= NULL
;
9577 if (r
->in
.server_name
) {
9578 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9579 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9580 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9581 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9582 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9583 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
));
9585 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9586 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
));
9587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9589 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9590 if (_ptr_computer_name
) {
9591 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9593 r
->in
.computer_name
= NULL
;
9595 if (r
->in
.computer_name
) {
9596 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9597 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9598 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9599 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9600 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9601 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
));
9603 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9604 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
));
9605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9607 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9608 if (_ptr_credential
) {
9609 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9611 r
->in
.credential
= NULL
;
9613 if (r
->in
.credential
) {
9614 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9615 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9616 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9620 if (_ptr_return_authenticator
) {
9621 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9623 r
->in
.return_authenticator
= NULL
;
9625 if (r
->in
.return_authenticator
) {
9626 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9627 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9628 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9631 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9632 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9633 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
9635 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9636 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
9637 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9638 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
9640 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
9641 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9642 ZERO_STRUCTP(r
->out
.validation
);
9643 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9644 ZERO_STRUCTP(r
->out
.authoritative
);
9646 if (flags
& NDR_OUT
) {
9647 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9648 if (_ptr_return_authenticator
) {
9649 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9651 r
->out
.return_authenticator
= NULL
;
9653 if (r
->out
.return_authenticator
) {
9654 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9655 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9656 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9659 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9660 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9662 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9663 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
9664 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9665 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
9667 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9668 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9670 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9671 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
9672 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
9673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
9674 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9676 return NDR_ERR_SUCCESS
;
9679 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
9681 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
9683 if (flags
& NDR_SET_VALUES
) {
9684 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9686 if (flags
& NDR_IN
) {
9687 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
9689 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9691 if (r
->in
.server_name
) {
9692 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9695 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9697 if (r
->in
.computer_name
) {
9698 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9701 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9703 if (r
->in
.credential
) {
9704 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9707 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9709 if (r
->in
.return_authenticator
) {
9710 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9713 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9714 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
9716 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
9717 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
9719 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
9722 if (flags
& NDR_OUT
) {
9723 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
9725 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9727 if (r
->out
.return_authenticator
) {
9728 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9731 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
9733 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
9734 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
9736 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
9738 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
9740 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9746 static enum ndr_err_code
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
9748 if (flags
& NDR_IN
) {
9749 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9750 if (r
->in
.server_name
) {
9751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9754 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
));
9756 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9757 if (r
->in
.computer_name
) {
9758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9761 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
));
9763 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9764 if (r
->in
.credential
) {
9765 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9768 if (r
->in
.return_authenticator
) {
9769 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9771 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9772 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9773 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9775 if (flags
& NDR_OUT
) {
9776 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9777 if (r
->out
.return_authenticator
) {
9778 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9780 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9782 return NDR_ERR_SUCCESS
;
9785 static enum ndr_err_code
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
9787 uint32_t _ptr_server_name
;
9788 uint32_t _ptr_computer_name
;
9789 uint32_t _ptr_credential
;
9790 uint32_t _ptr_return_authenticator
;
9791 TALLOC_CTX
*_mem_save_server_name_0
;
9792 TALLOC_CTX
*_mem_save_computer_name_0
;
9793 TALLOC_CTX
*_mem_save_credential_0
;
9794 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9795 if (flags
& NDR_IN
) {
9796 ZERO_STRUCT(r
->out
);
9798 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9799 if (_ptr_server_name
) {
9800 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9802 r
->in
.server_name
= NULL
;
9804 if (r
->in
.server_name
) {
9805 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9806 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9807 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9808 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9809 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9810 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
));
9812 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9813 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
));
9814 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9816 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9817 if (_ptr_computer_name
) {
9818 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9820 r
->in
.computer_name
= NULL
;
9822 if (r
->in
.computer_name
) {
9823 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9824 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9825 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9826 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9827 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9828 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
));
9830 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9831 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
));
9832 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9834 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9835 if (_ptr_credential
) {
9836 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9838 r
->in
.credential
= NULL
;
9840 if (r
->in
.credential
) {
9841 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9842 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9843 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9844 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9846 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9847 if (_ptr_return_authenticator
) {
9848 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9850 r
->in
.return_authenticator
= NULL
;
9852 if (r
->in
.return_authenticator
) {
9853 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9854 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9855 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9858 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9859 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9860 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9862 if (flags
& NDR_OUT
) {
9863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9864 if (_ptr_return_authenticator
) {
9865 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9867 r
->out
.return_authenticator
= NULL
;
9869 if (r
->out
.return_authenticator
) {
9870 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9871 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9872 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9875 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9877 return NDR_ERR_SUCCESS
;
9880 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
9882 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
9884 if (flags
& NDR_SET_VALUES
) {
9885 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9887 if (flags
& NDR_IN
) {
9888 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
9890 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9892 if (r
->in
.server_name
) {
9893 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9896 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9898 if (r
->in
.computer_name
) {
9899 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9902 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9904 if (r
->in
.credential
) {
9905 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9908 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9910 if (r
->in
.return_authenticator
) {
9911 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9914 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9915 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
9916 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
9919 if (flags
& NDR_OUT
) {
9920 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
9922 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9924 if (r
->out
.return_authenticator
) {
9925 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9928 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9934 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
9936 if (flags
& NDR_IN
) {
9937 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9938 if (r
->in
.server_name
) {
9939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9942 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
));
9944 if (r
->in
.computer_name
== NULL
) {
9945 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9950 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
));
9951 if (r
->in
.credentials
== NULL
) {
9952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9954 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
9956 if (flags
& NDR_OUT
) {
9957 if (r
->out
.return_credentials
== NULL
) {
9958 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9960 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
9961 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9963 return NDR_ERR_SUCCESS
;
9966 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
9968 uint32_t _ptr_server_name
;
9969 TALLOC_CTX
*_mem_save_server_name_0
;
9970 TALLOC_CTX
*_mem_save_credentials_0
;
9971 TALLOC_CTX
*_mem_save_return_credentials_0
;
9972 if (flags
& NDR_IN
) {
9973 ZERO_STRUCT(r
->out
);
9975 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9976 if (_ptr_server_name
) {
9977 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9979 r
->in
.server_name
= NULL
;
9981 if (r
->in
.server_name
) {
9982 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9983 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9984 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9985 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9986 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9987 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
));
9989 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9990 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
));
9991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9993 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9994 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9995 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9996 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
));
9998 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9999 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
));
10000 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10001 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10003 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10004 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10005 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10007 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10008 ZERO_STRUCTP(r
->out
.return_credentials
);
10010 if (flags
& NDR_OUT
) {
10011 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10012 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10014 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10015 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10016 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10018 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10020 return NDR_ERR_SUCCESS
;
10023 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
10025 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
10027 if (flags
& NDR_SET_VALUES
) {
10028 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10030 if (flags
& NDR_IN
) {
10031 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
10033 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10035 if (r
->in
.server_name
) {
10036 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10039 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10041 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10043 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10045 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10049 if (flags
& NDR_OUT
) {
10050 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
10052 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10054 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10056 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10062 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
10064 if (flags
& NDR_IN
) {
10065 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10066 if (r
->in
.server_name
) {
10067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10070 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
));
10072 if (r
->in
.account_name
== NULL
) {
10073 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10076 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10078 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
));
10079 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10080 if (r
->in
.computer_name
== NULL
) {
10081 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10083 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10086 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
));
10087 if (r
->in
.credentials
== NULL
) {
10088 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10090 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10092 if (flags
& NDR_OUT
) {
10093 if (r
->out
.return_credentials
== NULL
) {
10094 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10096 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10097 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10099 return NDR_ERR_SUCCESS
;
10102 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
10104 uint32_t _ptr_server_name
;
10105 TALLOC_CTX
*_mem_save_server_name_0
;
10106 TALLOC_CTX
*_mem_save_credentials_0
;
10107 TALLOC_CTX
*_mem_save_return_credentials_0
;
10108 if (flags
& NDR_IN
) {
10109 ZERO_STRUCT(r
->out
);
10111 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10112 if (_ptr_server_name
) {
10113 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10115 r
->in
.server_name
= NULL
;
10117 if (r
->in
.server_name
) {
10118 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10119 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10120 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10121 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10122 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10123 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
));
10125 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10126 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
));
10127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10129 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10130 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10131 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10132 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
));
10134 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10135 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
));
10136 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10137 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10138 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10139 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10140 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
));
10142 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10143 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
));
10144 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10145 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10147 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10148 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10149 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10151 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10152 ZERO_STRUCTP(r
->out
.return_credentials
);
10154 if (flags
& NDR_OUT
) {
10155 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10156 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10158 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10159 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10160 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10162 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10164 return NDR_ERR_SUCCESS
;
10167 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
10169 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
10171 if (flags
& NDR_SET_VALUES
) {
10172 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10174 if (flags
& NDR_IN
) {
10175 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
10177 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10179 if (r
->in
.server_name
) {
10180 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10183 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10185 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10187 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10188 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10190 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10192 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10194 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10198 if (flags
& NDR_OUT
) {
10199 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
10201 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10203 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10205 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10211 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
10213 if (flags
& NDR_IN
) {
10214 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10215 if (r
->in
.server_name
) {
10216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10219 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
));
10221 if (r
->in
.account_name
== NULL
) {
10222 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10225 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10227 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
));
10228 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10229 if (r
->in
.computer_name
== NULL
) {
10230 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10235 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
));
10236 if (r
->in
.credential
== NULL
) {
10237 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10239 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10240 if (r
->in
.new_password
== NULL
) {
10241 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10243 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10245 if (flags
& NDR_OUT
) {
10246 if (r
->out
.return_authenticator
== NULL
) {
10247 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10249 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10250 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10252 return NDR_ERR_SUCCESS
;
10255 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
10257 uint32_t _ptr_server_name
;
10258 TALLOC_CTX
*_mem_save_server_name_0
;
10259 TALLOC_CTX
*_mem_save_credential_0
;
10260 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10261 TALLOC_CTX
*_mem_save_new_password_0
;
10262 if (flags
& NDR_IN
) {
10263 ZERO_STRUCT(r
->out
);
10265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10266 if (_ptr_server_name
) {
10267 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10269 r
->in
.server_name
= NULL
;
10271 if (r
->in
.server_name
) {
10272 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10273 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10275 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10276 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10277 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
));
10279 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10280 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
));
10281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10283 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10284 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10285 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10286 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
));
10288 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10289 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
));
10290 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10291 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10292 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10293 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10294 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
));
10296 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10297 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
));
10298 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10299 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10301 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10302 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10303 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10305 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10306 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
10308 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10309 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
10310 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
10312 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10313 ZERO_STRUCTP(r
->out
.return_authenticator
);
10315 if (flags
& NDR_OUT
) {
10316 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10317 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10319 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10320 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10321 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10323 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10325 return NDR_ERR_SUCCESS
;
10328 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
10330 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
10332 if (flags
& NDR_SET_VALUES
) {
10333 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10335 if (flags
& NDR_IN
) {
10336 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
10338 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10340 if (r
->in
.server_name
) {
10341 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10344 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10346 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10348 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10349 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10351 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10353 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10355 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10357 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
10359 ndr_print_samr_Password(ndr
, "new_password", r
->in
.new_password
);
10363 if (flags
& NDR_OUT
) {
10364 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
10366 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10368 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10370 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10376 static enum ndr_err_code
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
10378 if (flags
& NDR_IN
) {
10379 if (r
->in
.logon_server
== NULL
) {
10380 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10385 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
));
10386 if (r
->in
.computername
== NULL
) {
10387 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10392 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10393 if (r
->in
.credential
== NULL
) {
10394 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10396 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10397 if (r
->in
.return_authenticator
== NULL
) {
10398 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10400 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10401 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10402 if (r
->in
.sequence_num
== NULL
) {
10403 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10405 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
10406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10408 if (flags
& NDR_OUT
) {
10409 if (r
->out
.return_authenticator
== NULL
) {
10410 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10412 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10413 if (r
->out
.sequence_num
== NULL
) {
10414 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10416 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
10417 if (r
->out
.delta_enum_array
== NULL
) {
10418 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10420 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10421 if (*r
->out
.delta_enum_array
) {
10422 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10424 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10426 return NDR_ERR_SUCCESS
;
10429 static enum ndr_err_code
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
10431 uint32_t _ptr_delta_enum_array
;
10432 TALLOC_CTX
*_mem_save_credential_0
;
10433 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10434 TALLOC_CTX
*_mem_save_sequence_num_0
;
10435 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10436 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10437 if (flags
& NDR_IN
) {
10438 ZERO_STRUCT(r
->out
);
10440 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10441 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10442 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10443 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
));
10445 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10446 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
));
10447 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10448 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10449 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10450 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
));
10452 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10453 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10454 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10455 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10457 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10458 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10459 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10461 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10462 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10464 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10465 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10466 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10468 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10469 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10470 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
10472 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10473 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10474 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
10475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10477 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10478 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10479 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10480 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
10481 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10482 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10484 if (flags
& NDR_OUT
) {
10485 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10486 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10488 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10489 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10490 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10492 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10493 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10495 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10496 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10497 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
10498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10499 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10500 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10502 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10503 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10504 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10505 if (_ptr_delta_enum_array
) {
10506 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10508 *r
->out
.delta_enum_array
= NULL
;
10510 if (*r
->out
.delta_enum_array
) {
10511 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10512 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10513 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10514 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10516 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10517 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10519 return NDR_ERR_SUCCESS
;
10522 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
10524 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
10526 if (flags
& NDR_SET_VALUES
) {
10527 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10529 if (flags
& NDR_IN
) {
10530 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
10532 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10534 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10536 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10538 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10540 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10542 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10544 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10546 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10548 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10549 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
10551 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
10553 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10556 if (flags
& NDR_OUT
) {
10557 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
10559 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10561 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10563 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
10565 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
10567 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10569 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10571 if (*r
->out
.delta_enum_array
) {
10572 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10576 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10582 static enum ndr_err_code
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
10584 if (flags
& NDR_IN
) {
10585 if (r
->in
.logon_server
== NULL
) {
10586 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10591 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
));
10592 if (r
->in
.computername
== NULL
) {
10593 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10598 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10599 if (r
->in
.credential
== NULL
) {
10600 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10602 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10603 if (r
->in
.return_authenticator
== NULL
) {
10604 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10606 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10607 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10608 if (r
->in
.sync_context
== NULL
) {
10609 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
10612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10614 if (flags
& NDR_OUT
) {
10615 if (r
->out
.return_authenticator
== NULL
) {
10616 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10618 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10619 if (r
->out
.sync_context
== NULL
) {
10620 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
10623 if (r
->out
.delta_enum_array
== NULL
) {
10624 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10626 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10627 if (*r
->out
.delta_enum_array
) {
10628 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10630 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10632 return NDR_ERR_SUCCESS
;
10635 static enum ndr_err_code
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
10637 uint32_t _ptr_delta_enum_array
;
10638 TALLOC_CTX
*_mem_save_credential_0
;
10639 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10640 TALLOC_CTX
*_mem_save_sync_context_0
;
10641 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10642 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10643 if (flags
& NDR_IN
) {
10644 ZERO_STRUCT(r
->out
);
10646 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10647 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10648 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10649 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
));
10651 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10652 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
));
10653 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10654 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10655 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10656 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
));
10658 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10659 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10660 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10661 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10663 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10664 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10665 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10667 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10668 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10670 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10671 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10672 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10674 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10675 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10676 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
10678 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10679 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
10681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10682 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10683 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10684 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10685 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10686 *r
->out
.sync_context
= *r
->in
.sync_context
;
10687 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10688 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10690 if (flags
& NDR_OUT
) {
10691 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10692 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10694 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10695 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10696 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10697 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10698 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10699 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10701 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10702 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10703 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
10704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10705 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10706 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10708 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10709 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10710 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10711 if (_ptr_delta_enum_array
) {
10712 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10714 *r
->out
.delta_enum_array
= NULL
;
10716 if (*r
->out
.delta_enum_array
) {
10717 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10718 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10719 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10723 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10725 return NDR_ERR_SUCCESS
;
10728 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
10730 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
10732 if (flags
& NDR_SET_VALUES
) {
10733 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10735 if (flags
& NDR_IN
) {
10736 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
10738 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10740 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10742 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10744 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10746 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10748 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10750 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10752 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10754 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10755 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
10757 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
10759 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10762 if (flags
& NDR_OUT
) {
10763 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
10765 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10767 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10769 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
10771 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
10773 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10775 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10777 if (*r
->out
.delta_enum_array
) {
10778 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10782 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10788 static enum ndr_err_code
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
10790 if (flags
& NDR_IN
) {
10791 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10792 if (r
->in
.logon_server
) {
10793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10796 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
));
10798 if (r
->in
.computername
== NULL
) {
10799 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10801 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10804 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10805 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10806 if (r
->in
.return_authenticator
== NULL
) {
10807 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10809 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10810 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
10812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
10815 if (flags
& NDR_OUT
) {
10816 if (r
->out
.return_authenticator
== NULL
) {
10817 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10819 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10820 if (r
->out
.buffer
== NULL
) {
10821 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10824 struct ndr_push
*_ndr_buffer
;
10825 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10826 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10827 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10829 if (r
->out
.count_returned
== NULL
) {
10830 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
10833 if (r
->out
.total_entries
== NULL
) {
10834 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
10837 if (r
->out
.recordid
== NULL
) {
10838 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10840 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10841 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10843 return NDR_ERR_SUCCESS
;
10846 static enum ndr_err_code
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
10848 uint32_t _ptr_logon_server
;
10849 TALLOC_CTX
*_mem_save_logon_server_0
;
10850 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10851 TALLOC_CTX
*_mem_save_buffer_0
;
10852 TALLOC_CTX
*_mem_save_count_returned_0
;
10853 TALLOC_CTX
*_mem_save_total_entries_0
;
10854 TALLOC_CTX
*_mem_save_recordid_0
;
10855 if (flags
& NDR_IN
) {
10856 ZERO_STRUCT(r
->out
);
10858 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10859 if (_ptr_logon_server
) {
10860 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10862 r
->in
.logon_server
= NULL
;
10864 if (r
->in
.logon_server
) {
10865 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10866 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10867 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10868 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10869 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10870 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
));
10872 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10873 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
));
10874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10877 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10878 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10879 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
));
10881 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10882 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10883 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10884 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10885 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10887 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10888 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10889 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10891 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
10893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10894 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
10895 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10896 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10897 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10898 ZERO_STRUCTP(r
->out
.buffer
);
10899 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10900 ZERO_STRUCTP(r
->out
.count_returned
);
10901 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10902 ZERO_STRUCTP(r
->out
.total_entries
);
10903 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10904 ZERO_STRUCTP(r
->out
.recordid
);
10906 if (flags
& NDR_OUT
) {
10907 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10908 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10910 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10911 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10912 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10914 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10915 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10917 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10918 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
10920 struct ndr_pull
*_ndr_buffer
;
10921 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10922 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10923 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
10926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10927 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10929 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10930 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
10931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
10932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
10933 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10934 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10936 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10937 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
10938 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
10939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
10940 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10941 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10943 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10944 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
10945 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
10947 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10949 return NDR_ERR_SUCCESS
;
10952 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
10954 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
10956 if (flags
& NDR_SET_VALUES
) {
10957 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10959 if (flags
& NDR_IN
) {
10960 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
10962 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10964 if (r
->in
.logon_server
) {
10965 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10968 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10970 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10972 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
10973 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10975 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10977 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
10978 ndr_print_uint32(ndr
, "count", r
->in
.count
);
10979 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10980 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
10983 if (flags
& NDR_OUT
) {
10984 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
10986 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10988 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10990 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
10992 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
10994 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
10996 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
10998 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11000 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11002 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11004 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11006 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11012 static enum ndr_err_code
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
11014 if (flags
& NDR_IN
) {
11015 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11016 if (r
->in
.logon_server
) {
11017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11020 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
));
11022 if (r
->in
.computername
== NULL
) {
11023 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11028 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11029 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11030 if (r
->in
.return_authenticator
== NULL
) {
11031 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11033 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
11035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
11037 if (r
->in
.recordid
== NULL
) {
11038 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11040 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11042 if (flags
& NDR_OUT
) {
11043 if (r
->out
.return_authenticator
== NULL
) {
11044 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11046 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11047 if (r
->out
.buffer
== NULL
) {
11048 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11051 struct ndr_push
*_ndr_buffer
;
11052 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11053 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11054 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11056 if (r
->out
.count_returned
== NULL
) {
11057 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
11060 if (r
->out
.total_entries
== NULL
) {
11061 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
11064 if (r
->out
.next_reference
== NULL
) {
11065 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
11068 if (r
->out
.recordid
== NULL
) {
11069 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11071 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11072 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11074 return NDR_ERR_SUCCESS
;
11077 static enum ndr_err_code
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
11079 uint32_t _ptr_logon_server
;
11080 TALLOC_CTX
*_mem_save_logon_server_0
;
11081 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11082 TALLOC_CTX
*_mem_save_buffer_0
;
11083 TALLOC_CTX
*_mem_save_count_returned_0
;
11084 TALLOC_CTX
*_mem_save_total_entries_0
;
11085 TALLOC_CTX
*_mem_save_next_reference_0
;
11086 TALLOC_CTX
*_mem_save_recordid_0
;
11087 if (flags
& NDR_IN
) {
11088 ZERO_STRUCT(r
->out
);
11090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11091 if (_ptr_logon_server
) {
11092 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11094 r
->in
.logon_server
= NULL
;
11096 if (r
->in
.logon_server
) {
11097 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11098 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11099 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11100 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11101 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11102 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
));
11104 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11105 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
));
11106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11108 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
11109 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
11110 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
11111 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
));
11113 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
11114 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
11115 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11116 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11117 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11119 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11120 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11121 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11123 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
11124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
11126 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11127 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
11129 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11130 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11131 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11133 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11134 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11135 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11136 ZERO_STRUCTP(r
->out
.buffer
);
11137 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11138 ZERO_STRUCTP(r
->out
.count_returned
);
11139 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11140 ZERO_STRUCTP(r
->out
.total_entries
);
11141 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11142 ZERO_STRUCTP(r
->out
.next_reference
);
11143 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11144 *r
->out
.recordid
= *r
->in
.recordid
;
11146 if (flags
& NDR_OUT
) {
11147 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11148 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11150 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11151 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11152 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11154 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11155 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11157 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11158 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
11160 struct ndr_pull
*_ndr_buffer
;
11161 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11162 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11163 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
11166 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11167 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11169 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11170 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
11171 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
11172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
11173 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11174 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11176 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11177 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
11178 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
11179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
11180 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11181 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11183 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11184 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
11185 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
11186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
11187 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11188 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11190 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11191 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11192 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11194 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11196 return NDR_ERR_SUCCESS
;
11199 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
11201 ndr_print_struct(ndr
, name
, "netr_AccountSync");
11203 if (flags
& NDR_SET_VALUES
) {
11204 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11206 if (flags
& NDR_IN
) {
11207 ndr_print_struct(ndr
, "in", "netr_AccountSync");
11209 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11211 if (r
->in
.logon_server
) {
11212 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11215 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
11217 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11219 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11220 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11222 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11224 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
11225 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11226 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11227 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
11229 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
11233 if (flags
& NDR_OUT
) {
11234 ndr_print_struct(ndr
, "out", "netr_AccountSync");
11236 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11238 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11240 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11242 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11244 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11246 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11248 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11250 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11252 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
11254 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
11256 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11258 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11260 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11266 static enum ndr_err_code
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
11268 if (flags
& NDR_IN
) {
11269 if (r
->in
.logon_server
== NULL
) {
11270 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11272 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11275 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
));
11276 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11277 if (r
->in
.domainname
) {
11278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11281 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11284 if (flags
& NDR_OUT
) {
11285 if (r
->out
.dcname
== NULL
) {
11286 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11288 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11289 if (*r
->out
.dcname
) {
11290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11293 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11295 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11297 return NDR_ERR_SUCCESS
;
11300 static enum ndr_err_code
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
11302 uint32_t _ptr_domainname
;
11303 uint32_t _ptr_dcname
;
11304 TALLOC_CTX
*_mem_save_domainname_0
;
11305 TALLOC_CTX
*_mem_save_dcname_0
;
11306 TALLOC_CTX
*_mem_save_dcname_1
;
11307 if (flags
& NDR_IN
) {
11308 ZERO_STRUCT(r
->out
);
11310 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11311 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11312 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11313 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
));
11315 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11316 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
));
11317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11318 if (_ptr_domainname
) {
11319 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11321 r
->in
.domainname
= NULL
;
11323 if (r
->in
.domainname
) {
11324 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11325 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11326 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11327 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11328 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11329 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
));
11331 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11332 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11335 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11336 ZERO_STRUCTP(r
->out
.dcname
);
11338 if (flags
& NDR_OUT
) {
11339 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11340 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11342 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11343 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11344 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11346 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11348 *r
->out
.dcname
= NULL
;
11350 if (*r
->out
.dcname
) {
11351 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11352 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11353 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11354 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11355 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11356 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
));
11358 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11359 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11363 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11365 return NDR_ERR_SUCCESS
;
11368 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
11370 ndr_print_struct(ndr
, name
, "netr_GetDcName");
11372 if (flags
& NDR_SET_VALUES
) {
11373 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11375 if (flags
& NDR_IN
) {
11376 ndr_print_struct(ndr
, "in", "netr_GetDcName");
11378 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11380 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11382 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11384 if (r
->in
.domainname
) {
11385 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11390 if (flags
& NDR_OUT
) {
11391 ndr_print_struct(ndr
, "out", "netr_GetDcName");
11393 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11395 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11397 if (*r
->out
.dcname
) {
11398 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11402 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11408 static enum ndr_err_code
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
11410 if (flags
& NDR_IN
) {
11411 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11412 if (r
->in
.logon_server
) {
11413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11416 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
));
11418 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11421 if (flags
& NDR_OUT
) {
11422 if (r
->out
.query
== NULL
) {
11423 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11425 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11426 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11427 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11429 return NDR_ERR_SUCCESS
;
11432 static enum ndr_err_code
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
11434 uint32_t _ptr_logon_server
;
11435 TALLOC_CTX
*_mem_save_logon_server_0
;
11436 TALLOC_CTX
*_mem_save_query_0
;
11437 if (flags
& NDR_IN
) {
11438 ZERO_STRUCT(r
->out
);
11440 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11441 if (_ptr_logon_server
) {
11442 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11444 r
->in
.logon_server
= NULL
;
11446 if (r
->in
.logon_server
) {
11447 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11448 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11449 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11450 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11451 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11452 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
));
11454 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11455 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
));
11456 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11458 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11459 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11460 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11461 ZERO_STRUCTP(r
->out
.query
);
11463 if (flags
& NDR_OUT
) {
11464 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11465 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11467 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11468 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11469 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11470 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11472 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11474 return NDR_ERR_SUCCESS
;
11477 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
11479 ndr_print_struct(ndr
, name
, "netr_LogonControl");
11481 if (flags
& NDR_SET_VALUES
) {
11482 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11484 if (flags
& NDR_IN
) {
11485 ndr_print_struct(ndr
, "in", "netr_LogonControl");
11487 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11489 if (r
->in
.logon_server
) {
11490 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11493 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11494 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11497 if (flags
& NDR_OUT
) {
11498 ndr_print_struct(ndr
, "out", "netr_LogonControl");
11500 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11502 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11503 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11505 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11511 static enum ndr_err_code
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
11513 if (flags
& NDR_IN
) {
11514 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11515 if (r
->in
.logon_server
) {
11516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11519 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
));
11521 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11522 if (r
->in
.domainname
) {
11523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11526 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11529 if (flags
& NDR_OUT
) {
11530 if (r
->out
.dcname
== NULL
) {
11531 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11533 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11534 if (*r
->out
.dcname
) {
11535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11538 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11540 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11542 return NDR_ERR_SUCCESS
;
11545 static enum ndr_err_code
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
11547 uint32_t _ptr_logon_server
;
11548 uint32_t _ptr_domainname
;
11549 uint32_t _ptr_dcname
;
11550 TALLOC_CTX
*_mem_save_logon_server_0
;
11551 TALLOC_CTX
*_mem_save_domainname_0
;
11552 TALLOC_CTX
*_mem_save_dcname_0
;
11553 TALLOC_CTX
*_mem_save_dcname_1
;
11554 if (flags
& NDR_IN
) {
11555 ZERO_STRUCT(r
->out
);
11557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11558 if (_ptr_logon_server
) {
11559 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11561 r
->in
.logon_server
= NULL
;
11563 if (r
->in
.logon_server
) {
11564 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11565 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11567 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11568 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11569 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
));
11571 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11572 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
));
11573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11576 if (_ptr_domainname
) {
11577 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11579 r
->in
.domainname
= NULL
;
11581 if (r
->in
.domainname
) {
11582 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11583 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11584 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11585 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11586 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11587 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
));
11589 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11590 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11593 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11594 ZERO_STRUCTP(r
->out
.dcname
);
11596 if (flags
& NDR_OUT
) {
11597 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11598 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11600 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11601 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11602 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11604 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11606 *r
->out
.dcname
= NULL
;
11608 if (*r
->out
.dcname
) {
11609 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11610 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11611 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11612 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11613 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11614 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
));
11616 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11617 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11621 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11623 return NDR_ERR_SUCCESS
;
11626 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
11628 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
11630 if (flags
& NDR_SET_VALUES
) {
11631 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11633 if (flags
& NDR_IN
) {
11634 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
11636 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11638 if (r
->in
.logon_server
) {
11639 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11642 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11644 if (r
->in
.domainname
) {
11645 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11650 if (flags
& NDR_OUT
) {
11651 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
11653 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11655 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11657 if (*r
->out
.dcname
) {
11658 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11662 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11668 static enum ndr_err_code
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
11670 if (flags
& NDR_IN
) {
11671 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11672 if (r
->in
.logon_server
) {
11673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11676 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
));
11678 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11680 if (r
->in
.data
== NULL
) {
11681 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11683 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11684 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11686 if (flags
& NDR_OUT
) {
11687 if (r
->out
.query
== NULL
) {
11688 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11690 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11691 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11692 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11694 return NDR_ERR_SUCCESS
;
11697 static enum ndr_err_code
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
11699 uint32_t _ptr_logon_server
;
11700 TALLOC_CTX
*_mem_save_logon_server_0
;
11701 TALLOC_CTX
*_mem_save_data_0
;
11702 TALLOC_CTX
*_mem_save_query_0
;
11703 if (flags
& NDR_IN
) {
11704 ZERO_STRUCT(r
->out
);
11706 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11707 if (_ptr_logon_server
) {
11708 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11710 r
->in
.logon_server
= NULL
;
11712 if (r
->in
.logon_server
) {
11713 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11714 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11715 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11716 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11717 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11718 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
));
11720 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11721 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
));
11722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11724 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11725 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11726 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11727 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
11729 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11730 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
11731 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11732 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
11734 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11735 ZERO_STRUCTP(r
->out
.query
);
11737 if (flags
& NDR_OUT
) {
11738 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11739 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11741 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11742 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11743 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11744 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11745 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11746 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11748 return NDR_ERR_SUCCESS
;
11751 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
11753 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
11755 if (flags
& NDR_SET_VALUES
) {
11756 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11758 if (flags
& NDR_IN
) {
11759 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
11761 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11763 if (r
->in
.logon_server
) {
11764 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11767 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11768 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11769 ndr_print_ptr(ndr
, "data", r
->in
.data
);
11771 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
11772 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
11776 if (flags
& NDR_OUT
) {
11777 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
11779 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11781 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11782 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11784 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11790 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11792 if (flags
& NDR_IN
) {
11793 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11794 if (r
->in
.server_name
) {
11795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11798 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
));
11800 if (r
->in
.account_name
== NULL
) {
11801 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11806 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
));
11807 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11808 if (r
->in
.computer_name
== NULL
) {
11809 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11814 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
));
11815 if (r
->in
.credentials
== NULL
) {
11816 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11818 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11819 if (r
->in
.negotiate_flags
== NULL
) {
11820 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11822 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
11824 if (flags
& NDR_OUT
) {
11825 if (r
->out
.return_credentials
== NULL
) {
11826 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11828 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11829 if (r
->out
.negotiate_flags
== NULL
) {
11830 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11832 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
11833 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11835 return NDR_ERR_SUCCESS
;
11838 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
11840 uint32_t _ptr_server_name
;
11841 TALLOC_CTX
*_mem_save_server_name_0
;
11842 TALLOC_CTX
*_mem_save_credentials_0
;
11843 TALLOC_CTX
*_mem_save_return_credentials_0
;
11844 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
11845 if (flags
& NDR_IN
) {
11846 ZERO_STRUCT(r
->out
);
11848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11849 if (_ptr_server_name
) {
11850 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11852 r
->in
.server_name
= NULL
;
11854 if (r
->in
.server_name
) {
11855 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11856 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11857 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11858 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11859 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11860 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
));
11862 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11863 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
));
11864 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11866 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
11867 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
11868 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
11869 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
11871 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
11872 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
));
11873 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
11874 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11875 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11876 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11877 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
));
11879 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11880 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
));
11881 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11882 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
11884 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11885 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
11886 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11888 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11889 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
11891 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11893 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
11894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11895 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11896 ZERO_STRUCTP(r
->out
.return_credentials
);
11897 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11898 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
11900 if (flags
& NDR_OUT
) {
11901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11902 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11904 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11905 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
11906 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11908 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11909 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11911 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11912 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11913 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
11914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11915 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11917 return NDR_ERR_SUCCESS
;
11920 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11922 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
11924 if (flags
& NDR_SET_VALUES
) {
11925 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11927 if (flags
& NDR_IN
) {
11928 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
11930 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11932 if (r
->in
.server_name
) {
11933 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11936 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
11938 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
11940 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
11941 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
11943 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11945 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
11947 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
11949 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
11951 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
11955 if (flags
& NDR_OUT
) {
11956 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
11958 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
11960 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
11962 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
11964 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
11966 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11972 static enum ndr_err_code
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
11974 if (flags
& NDR_IN
) {
11975 if (r
->in
.logon_server
== NULL
) {
11976 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11981 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
));
11982 if (r
->in
.computername
== NULL
) {
11983 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11988 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11989 if (r
->in
.credential
== NULL
) {
11990 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11992 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11993 if (r
->in
.return_authenticator
== NULL
) {
11994 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11996 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11997 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
11998 NDR_CHECK(ndr_push_SyncStateEnum(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
11999 if (r
->in
.sync_context
== NULL
) {
12000 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
12003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
12005 if (flags
& NDR_OUT
) {
12006 if (r
->out
.return_authenticator
== NULL
) {
12007 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12009 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12010 if (r
->out
.sync_context
== NULL
) {
12011 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12013 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
12014 if (r
->out
.delta_enum_array
== NULL
) {
12015 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12017 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12018 if (*r
->out
.delta_enum_array
) {
12019 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12021 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12023 return NDR_ERR_SUCCESS
;
12026 static enum ndr_err_code
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
12028 uint32_t _ptr_delta_enum_array
;
12029 TALLOC_CTX
*_mem_save_credential_0
;
12030 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12031 TALLOC_CTX
*_mem_save_sync_context_0
;
12032 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12033 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12034 if (flags
& NDR_IN
) {
12035 ZERO_STRUCT(r
->out
);
12037 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12038 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12039 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12040 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
));
12042 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12043 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
));
12044 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12045 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12046 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12047 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
));
12049 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12050 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12051 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12052 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12054 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12055 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12056 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12057 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12058 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12059 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12061 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12062 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12063 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12064 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12065 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
12066 NDR_CHECK(ndr_pull_SyncStateEnum(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
12067 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12068 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
12070 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12071 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12072 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
12073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
12075 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12076 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12077 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12078 *r
->out
.sync_context
= *r
->in
.sync_context
;
12079 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12080 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12082 if (flags
& NDR_OUT
) {
12083 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12084 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12086 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12087 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12088 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12089 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12090 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12091 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12093 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12094 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12095 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
12096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12097 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12098 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12100 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12101 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12103 if (_ptr_delta_enum_array
) {
12104 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12106 *r
->out
.delta_enum_array
= NULL
;
12108 if (*r
->out
.delta_enum_array
) {
12109 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12110 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12111 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12112 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12115 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12117 return NDR_ERR_SUCCESS
;
12120 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
12122 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
12124 if (flags
& NDR_SET_VALUES
) {
12125 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12127 if (flags
& NDR_IN
) {
12128 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
12130 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12132 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12134 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12136 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12138 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12140 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12142 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12144 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12146 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
12147 ndr_print_SyncStateEnum(ndr
, "restart_state", r
->in
.restart_state
);
12148 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
12150 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
12152 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
12155 if (flags
& NDR_OUT
) {
12156 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
12158 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12160 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12162 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
12164 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
12166 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12168 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12170 if (*r
->out
.delta_enum_array
) {
12171 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12175 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12181 static enum ndr_err_code
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
12183 if (flags
& NDR_IN
) {
12184 if (r
->in
.logon_server
== NULL
) {
12185 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12187 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12188 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12190 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
));
12191 if (r
->in
.computername
== NULL
) {
12192 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12197 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12198 if (r
->in
.credential
== NULL
) {
12199 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12201 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12202 if (r
->in
.return_authenticator
== NULL
) {
12203 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12205 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12207 struct ndr_push
*_ndr_change_log_entry
;
12208 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
)));
12209 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12210 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
)));
12212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12214 if (flags
& NDR_OUT
) {
12215 if (r
->out
.return_authenticator
== NULL
) {
12216 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12218 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12219 if (r
->out
.delta_enum_array
== NULL
) {
12220 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12222 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12223 if (*r
->out
.delta_enum_array
) {
12224 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12226 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12228 return NDR_ERR_SUCCESS
;
12231 static enum ndr_err_code
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
12233 uint32_t _ptr_delta_enum_array
;
12234 TALLOC_CTX
*_mem_save_credential_0
;
12235 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12236 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12237 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12238 if (flags
& NDR_IN
) {
12239 ZERO_STRUCT(r
->out
);
12241 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12242 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12243 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12244 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
));
12246 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12247 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
));
12248 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12249 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12250 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12251 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
));
12253 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12254 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12255 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12256 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12258 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12259 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12260 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12262 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12263 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12265 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12266 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12267 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12270 struct ndr_pull
*_ndr_change_log_entry
;
12271 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12272 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12273 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
12276 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12277 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12278 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12279 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12281 if (flags
& NDR_OUT
) {
12282 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12283 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12285 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12286 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12287 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12289 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12290 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12292 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12293 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12294 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12295 if (_ptr_delta_enum_array
) {
12296 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12298 *r
->out
.delta_enum_array
= NULL
;
12300 if (*r
->out
.delta_enum_array
) {
12301 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12302 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12303 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12307 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12309 return NDR_ERR_SUCCESS
;
12312 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
12314 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
12316 if (flags
& NDR_SET_VALUES
) {
12317 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12319 if (flags
& NDR_IN
) {
12320 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
12322 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12324 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12326 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12328 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12330 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12332 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12334 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12336 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12338 ndr_print_netr_ChangeLogEntry(ndr
, "change_log_entry", &r
->in
.change_log_entry
);
12339 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
);
12342 if (flags
& NDR_OUT
) {
12343 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
12345 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12347 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12349 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12351 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12353 if (*r
->out
.delta_enum_array
) {
12354 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12358 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12364 static enum ndr_err_code
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
12366 if (flags
& NDR_IN
) {
12367 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
12368 if (r
->in
.logon_server
) {
12369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12371 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12372 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
));
12374 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
12375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
12376 if (r
->in
.data
== NULL
) {
12377 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12379 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12380 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12382 if (flags
& NDR_OUT
) {
12383 if (r
->out
.query
== NULL
) {
12384 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12386 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12387 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12388 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12390 return NDR_ERR_SUCCESS
;
12393 static enum ndr_err_code
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
12395 uint32_t _ptr_logon_server
;
12396 TALLOC_CTX
*_mem_save_logon_server_0
;
12397 TALLOC_CTX
*_mem_save_data_0
;
12398 TALLOC_CTX
*_mem_save_query_0
;
12399 if (flags
& NDR_IN
) {
12400 ZERO_STRUCT(r
->out
);
12402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
12403 if (_ptr_logon_server
) {
12404 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
12406 r
->in
.logon_server
= NULL
;
12408 if (r
->in
.logon_server
) {
12409 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12410 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
12411 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12412 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12413 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12414 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
));
12416 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12417 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
));
12418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
12420 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
12421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
12422 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12423 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
12425 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12426 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
12427 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12428 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
12430 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12431 ZERO_STRUCTP(r
->out
.query
);
12433 if (flags
& NDR_OUT
) {
12434 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12435 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12437 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12438 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
12439 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12440 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12441 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
12442 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12444 return NDR_ERR_SUCCESS
;
12447 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
12449 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
12451 if (flags
& NDR_SET_VALUES
) {
12452 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12454 if (flags
& NDR_IN
) {
12455 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
12457 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12459 if (r
->in
.logon_server
) {
12460 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12463 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
12464 ndr_print_uint32(ndr
, "level", r
->in
.level
);
12465 ndr_print_ptr(ndr
, "data", r
->in
.data
);
12467 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
12468 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
12472 if (flags
& NDR_OUT
) {
12473 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
12475 ndr_print_ptr(ndr
, "query", r
->out
.query
);
12477 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
12478 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
12480 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12486 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12488 if (flags
& NDR_IN
) {
12489 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12490 if (r
->in
.server_name
) {
12491 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12494 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12497 if (flags
& NDR_OUT
) {
12498 if (r
->out
.trusted_domains_blob
== NULL
) {
12499 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12501 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12502 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12504 return NDR_ERR_SUCCESS
;
12507 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomains
*r
)
12509 uint32_t _ptr_server_name
;
12510 TALLOC_CTX
*_mem_save_server_name_0
;
12511 TALLOC_CTX
*_mem_save_trusted_domains_blob_0
;
12512 if (flags
& NDR_IN
) {
12513 ZERO_STRUCT(r
->out
);
12515 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12516 if (_ptr_server_name
) {
12517 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12519 r
->in
.server_name
= NULL
;
12521 if (r
->in
.server_name
) {
12522 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12523 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12524 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12525 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12526 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12527 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
));
12529 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12530 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
));
12531 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12533 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12534 ZERO_STRUCTP(r
->out
.trusted_domains_blob
);
12536 if (flags
& NDR_OUT
) {
12537 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12538 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12540 _mem_save_trusted_domains_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12541 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusted_domains_blob
, LIBNDR_FLAG_REF_ALLOC
);
12542 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_blob_0
, LIBNDR_FLAG_REF_ALLOC
);
12544 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12546 return NDR_ERR_SUCCESS
;
12549 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12551 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomains");
12553 if (flags
& NDR_SET_VALUES
) {
12554 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12556 if (flags
& NDR_IN
) {
12557 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomains");
12559 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12561 if (r
->in
.server_name
) {
12562 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12567 if (flags
& NDR_OUT
) {
12568 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomains");
12570 ndr_print_ptr(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12572 ndr_print_netr_Blob(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12574 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12580 static enum ndr_err_code
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
12582 if (flags
& NDR_IN
) {
12583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
12584 if (r
->in
.server_unc
) {
12585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12586 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12588 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
));
12590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
12591 if (r
->in
.domain_name
) {
12592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12595 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
));
12597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
12598 if (r
->in
.domain_guid
) {
12599 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12601 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
12602 if (r
->in
.site_guid
) {
12603 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12605 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
12607 if (flags
& NDR_OUT
) {
12608 if (r
->out
.info
== NULL
) {
12609 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12611 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
12612 if (*r
->out
.info
) {
12613 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12615 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12617 return NDR_ERR_SUCCESS
;
12620 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
12622 uint32_t _ptr_server_unc
;
12623 uint32_t _ptr_domain_name
;
12624 uint32_t _ptr_domain_guid
;
12625 uint32_t _ptr_site_guid
;
12626 uint32_t _ptr_info
;
12627 TALLOC_CTX
*_mem_save_server_unc_0
;
12628 TALLOC_CTX
*_mem_save_domain_name_0
;
12629 TALLOC_CTX
*_mem_save_domain_guid_0
;
12630 TALLOC_CTX
*_mem_save_site_guid_0
;
12631 TALLOC_CTX
*_mem_save_info_0
;
12632 TALLOC_CTX
*_mem_save_info_1
;
12633 if (flags
& NDR_IN
) {
12634 ZERO_STRUCT(r
->out
);
12636 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
12637 if (_ptr_server_unc
) {
12638 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
12640 r
->in
.server_unc
= NULL
;
12642 if (r
->in
.server_unc
) {
12643 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12644 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
12645 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
12646 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
12647 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
12648 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
));
12650 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
12651 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
));
12652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
12654 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
12655 if (_ptr_domain_name
) {
12656 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
12658 r
->in
.domain_name
= NULL
;
12660 if (r
->in
.domain_name
) {
12661 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12662 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
12663 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
12664 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
12665 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
12666 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
));
12668 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
12669 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
));
12670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
12672 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
12673 if (_ptr_domain_guid
) {
12674 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
12676 r
->in
.domain_guid
= NULL
;
12678 if (r
->in
.domain_guid
) {
12679 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12680 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
12681 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12682 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
12684 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
12685 if (_ptr_site_guid
) {
12686 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
12688 r
->in
.site_guid
= NULL
;
12690 if (r
->in
.site_guid
) {
12691 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12692 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
12693 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
12696 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
12697 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12698 ZERO_STRUCTP(r
->out
.info
);
12700 if (flags
& NDR_OUT
) {
12701 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12702 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12704 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12705 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12706 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12708 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
12710 *r
->out
.info
= NULL
;
12712 if (*r
->out
.info
) {
12713 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12714 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
12715 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12716 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12718 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12719 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12721 return NDR_ERR_SUCCESS
;
12724 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
12726 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
12728 if (flags
& NDR_SET_VALUES
) {
12729 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12731 if (flags
& NDR_IN
) {
12732 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
12734 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
12736 if (r
->in
.server_unc
) {
12737 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
12740 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
12742 if (r
->in
.domain_name
) {
12743 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
12746 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
12748 if (r
->in
.domain_guid
) {
12749 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
12752 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
12754 if (r
->in
.site_guid
) {
12755 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
12758 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
12761 if (flags
& NDR_OUT
) {
12762 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
12764 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12766 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
12768 if (*r
->out
.info
) {
12769 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
12773 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12779 static enum ndr_err_code
ndr_push_netr_LogonGetCapabilities(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12781 if (flags
& NDR_IN
) {
12782 if (r
->in
.server_name
== NULL
) {
12783 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12788 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
));
12789 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12790 if (r
->in
.computer_name
) {
12791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12794 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
));
12796 if (r
->in
.credential
== NULL
) {
12797 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12799 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12800 if (r
->in
.return_authenticator
== NULL
) {
12801 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12803 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.query_level
));
12806 if (flags
& NDR_OUT
) {
12807 if (r
->out
.return_authenticator
== NULL
) {
12808 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12810 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12811 if (r
->out
.capabilities
== NULL
) {
12812 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12814 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12815 NDR_CHECK(ndr_push_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12816 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12818 return NDR_ERR_SUCCESS
;
12821 static enum ndr_err_code
ndr_pull_netr_LogonGetCapabilities(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetCapabilities
*r
)
12823 uint32_t _ptr_computer_name
;
12824 TALLOC_CTX
*_mem_save_computer_name_0
;
12825 TALLOC_CTX
*_mem_save_credential_0
;
12826 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12827 TALLOC_CTX
*_mem_save_capabilities_0
;
12828 if (flags
& NDR_IN
) {
12829 ZERO_STRUCT(r
->out
);
12831 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12832 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12833 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12834 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
));
12836 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12837 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
));
12838 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12839 if (_ptr_computer_name
) {
12840 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12842 r
->in
.computer_name
= NULL
;
12844 if (r
->in
.computer_name
) {
12845 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12846 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12847 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12848 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12849 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12850 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
));
12852 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12853 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
));
12854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12856 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12857 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12859 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12860 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12861 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12863 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12864 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12866 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12867 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12868 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12869 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12870 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.query_level
));
12871 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12872 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12873 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12874 ZERO_STRUCTP(r
->out
.capabilities
);
12876 if (flags
& NDR_OUT
) {
12877 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12878 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12880 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12881 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12882 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12884 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12885 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12887 _mem_save_capabilities_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12888 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.capabilities
, LIBNDR_FLAG_REF_ALLOC
);
12889 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12890 NDR_CHECK(ndr_pull_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_capabilities_0
, LIBNDR_FLAG_REF_ALLOC
);
12892 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12894 return NDR_ERR_SUCCESS
;
12897 _PUBLIC_
void ndr_print_netr_LogonGetCapabilities(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12899 ndr_print_struct(ndr
, name
, "netr_LogonGetCapabilities");
12901 if (flags
& NDR_SET_VALUES
) {
12902 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12904 if (flags
& NDR_IN
) {
12905 ndr_print_struct(ndr
, "in", "netr_LogonGetCapabilities");
12907 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12909 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12911 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12913 if (r
->in
.computer_name
) {
12914 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12917 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12919 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12921 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12923 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12925 ndr_print_uint32(ndr
, "query_level", r
->in
.query_level
);
12928 if (flags
& NDR_OUT
) {
12929 ndr_print_struct(ndr
, "out", "netr_LogonGetCapabilities");
12931 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12933 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12935 ndr_print_ptr(ndr
, "capabilities", r
->out
.capabilities
);
12937 ndr_print_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
);
12938 ndr_print_netr_Capabilities(ndr
, "capabilities", r
->out
.capabilities
);
12940 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12946 static enum ndr_err_code
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
12948 if (flags
& NDR_IN
) {
12950 if (flags
& NDR_OUT
) {
12951 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12953 return NDR_ERR_SUCCESS
;
12956 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
12958 if (flags
& NDR_IN
) {
12960 if (flags
& NDR_OUT
) {
12961 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12963 return NDR_ERR_SUCCESS
;
12966 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
12968 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
12970 if (flags
& NDR_SET_VALUES
) {
12971 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12973 if (flags
& NDR_IN
) {
12974 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
12978 if (flags
& NDR_OUT
) {
12979 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
12981 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12987 static enum ndr_err_code
ndr_push_netr_LogonGetTrustRid(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetTrustRid
*r
)
12989 if (flags
& NDR_IN
) {
12990 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12991 if (r
->in
.server_name
) {
12992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12994 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12995 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
));
12997 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
12998 if (r
->in
.domain_name
) {
12999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13002 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
));
13005 if (flags
& NDR_OUT
) {
13006 if (r
->out
.rid
== NULL
) {
13007 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13010 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13012 return NDR_ERR_SUCCESS
;
13015 static enum ndr_err_code
ndr_pull_netr_LogonGetTrustRid(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetTrustRid
*r
)
13017 uint32_t _ptr_server_name
;
13018 uint32_t _ptr_domain_name
;
13019 TALLOC_CTX
*_mem_save_server_name_0
;
13020 TALLOC_CTX
*_mem_save_domain_name_0
;
13021 TALLOC_CTX
*_mem_save_rid_0
;
13022 if (flags
& NDR_IN
) {
13023 ZERO_STRUCT(r
->out
);
13025 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13026 if (_ptr_server_name
) {
13027 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13029 r
->in
.server_name
= NULL
;
13031 if (r
->in
.server_name
) {
13032 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13033 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13034 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13035 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13036 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13037 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
));
13039 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13040 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
));
13041 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13043 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13044 if (_ptr_domain_name
) {
13045 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13047 r
->in
.domain_name
= NULL
;
13049 if (r
->in
.domain_name
) {
13050 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13051 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13052 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13053 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13054 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13055 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
));
13057 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13058 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
));
13059 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13061 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13062 ZERO_STRUCTP(r
->out
.rid
);
13064 if (flags
& NDR_OUT
) {
13065 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13066 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13068 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13069 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13070 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13072 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13074 return NDR_ERR_SUCCESS
;
13077 _PUBLIC_
void ndr_print_netr_LogonGetTrustRid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13079 ndr_print_struct(ndr
, name
, "netr_LogonGetTrustRid");
13081 if (flags
& NDR_SET_VALUES
) {
13082 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13084 if (flags
& NDR_IN
) {
13085 ndr_print_struct(ndr
, "in", "netr_LogonGetTrustRid");
13087 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13089 if (r
->in
.server_name
) {
13090 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13093 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13095 if (r
->in
.domain_name
) {
13096 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13101 if (flags
& NDR_OUT
) {
13102 ndr_print_struct(ndr
, "out", "netr_LogonGetTrustRid");
13104 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13106 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13108 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13114 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13116 if (flags
& NDR_IN
) {
13118 if (flags
& NDR_OUT
) {
13119 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13121 return NDR_ERR_SUCCESS
;
13124 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13126 if (flags
& NDR_IN
) {
13128 if (flags
& NDR_OUT
) {
13129 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13131 return NDR_ERR_SUCCESS
;
13134 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13136 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
13138 if (flags
& NDR_SET_VALUES
) {
13139 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13141 if (flags
& NDR_IN
) {
13142 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13146 if (flags
& NDR_OUT
) {
13147 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13149 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13155 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13157 if (flags
& NDR_IN
) {
13159 if (flags
& NDR_OUT
) {
13160 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13162 return NDR_ERR_SUCCESS
;
13165 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13167 if (flags
& NDR_IN
) {
13169 if (flags
& NDR_OUT
) {
13170 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13172 return NDR_ERR_SUCCESS
;
13175 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13177 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13179 if (flags
& NDR_SET_VALUES
) {
13180 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13182 if (flags
& NDR_IN
) {
13183 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13187 if (flags
& NDR_OUT
) {
13188 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13190 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13196 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13198 if (flags
& NDR_IN
) {
13199 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13200 if (r
->in
.server_name
) {
13201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13204 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
));
13206 if (r
->in
.account_name
== NULL
) {
13207 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13212 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
));
13213 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13214 if (r
->in
.computer_name
== NULL
) {
13215 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13220 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
));
13221 if (r
->in
.credentials
== NULL
) {
13222 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13224 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13225 if (r
->in
.negotiate_flags
== NULL
) {
13226 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13228 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
13230 if (flags
& NDR_OUT
) {
13231 if (r
->out
.return_credentials
== NULL
) {
13232 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13234 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13235 if (r
->out
.negotiate_flags
== NULL
) {
13236 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13238 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
13239 if (r
->out
.rid
== NULL
) {
13240 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13243 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13245 return NDR_ERR_SUCCESS
;
13248 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
13250 uint32_t _ptr_server_name
;
13251 TALLOC_CTX
*_mem_save_server_name_0
;
13252 TALLOC_CTX
*_mem_save_credentials_0
;
13253 TALLOC_CTX
*_mem_save_return_credentials_0
;
13254 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
13255 TALLOC_CTX
*_mem_save_rid_0
;
13256 if (flags
& NDR_IN
) {
13257 ZERO_STRUCT(r
->out
);
13259 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13260 if (_ptr_server_name
) {
13261 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13263 r
->in
.server_name
= NULL
;
13265 if (r
->in
.server_name
) {
13266 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13267 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13270 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13271 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
));
13273 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13274 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
));
13275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13277 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
13278 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
13279 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
13280 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
));
13282 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
13283 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
));
13284 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
13285 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13286 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13287 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13288 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
));
13290 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13291 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
));
13292 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13293 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
13295 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13296 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
13297 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13299 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13300 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
13302 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13303 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13304 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
13305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13306 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13307 ZERO_STRUCTP(r
->out
.return_credentials
);
13308 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13309 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
13310 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13311 ZERO_STRUCTP(r
->out
.rid
);
13313 if (flags
& NDR_OUT
) {
13314 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13315 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13317 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13318 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
13319 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13321 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13322 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13324 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13325 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13326 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
13327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13328 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13329 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13331 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13332 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13335 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13337 return NDR_ERR_SUCCESS
;
13340 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13342 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
13344 if (flags
& NDR_SET_VALUES
) {
13345 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13347 if (flags
& NDR_IN
) {
13348 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
13350 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13352 if (r
->in
.server_name
) {
13353 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13356 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
13358 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
13360 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
13361 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13363 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13365 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
13367 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
13369 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
13371 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
13375 if (flags
& NDR_OUT
) {
13376 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
13378 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
13380 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
13382 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
13384 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
13386 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13388 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13390 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13396 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13398 if (flags
& NDR_IN
) {
13399 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
13400 if (r
->in
.server_unc
) {
13401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13404 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
));
13406 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13407 if (r
->in
.domain_name
) {
13408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13411 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
));
13413 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13414 if (r
->in
.domain_guid
) {
13415 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13417 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
13418 if (r
->in
.site_name
) {
13419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13422 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
));
13424 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
13426 if (flags
& NDR_OUT
) {
13427 if (r
->out
.info
== NULL
) {
13428 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13430 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
13431 if (*r
->out
.info
) {
13432 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13434 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13436 return NDR_ERR_SUCCESS
;
13439 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
13441 uint32_t _ptr_server_unc
;
13442 uint32_t _ptr_domain_name
;
13443 uint32_t _ptr_domain_guid
;
13444 uint32_t _ptr_site_name
;
13445 uint32_t _ptr_info
;
13446 TALLOC_CTX
*_mem_save_server_unc_0
;
13447 TALLOC_CTX
*_mem_save_domain_name_0
;
13448 TALLOC_CTX
*_mem_save_domain_guid_0
;
13449 TALLOC_CTX
*_mem_save_site_name_0
;
13450 TALLOC_CTX
*_mem_save_info_0
;
13451 TALLOC_CTX
*_mem_save_info_1
;
13452 if (flags
& NDR_IN
) {
13453 ZERO_STRUCT(r
->out
);
13455 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
13456 if (_ptr_server_unc
) {
13457 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
13459 r
->in
.server_unc
= NULL
;
13461 if (r
->in
.server_unc
) {
13462 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13463 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
13464 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
13465 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
13466 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
13467 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
));
13469 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
13470 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
));
13471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
13473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13474 if (_ptr_domain_name
) {
13475 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13477 r
->in
.domain_name
= NULL
;
13479 if (r
->in
.domain_name
) {
13480 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13481 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13482 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13483 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13484 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13485 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
));
13487 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13488 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
));
13489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13491 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
13492 if (_ptr_domain_guid
) {
13493 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
13495 r
->in
.domain_guid
= NULL
;
13497 if (r
->in
.domain_guid
) {
13498 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13499 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
13500 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
13503 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
13504 if (_ptr_site_name
) {
13505 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
13507 r
->in
.site_name
= NULL
;
13509 if (r
->in
.site_name
) {
13510 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13511 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
13512 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
13513 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
13514 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
13515 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
));
13517 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
13518 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
));
13519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
13521 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
13522 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13523 ZERO_STRUCTP(r
->out
.info
);
13525 if (flags
& NDR_OUT
) {
13526 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13527 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13529 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13530 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13531 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
13533 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
13535 *r
->out
.info
= NULL
;
13537 if (*r
->out
.info
) {
13538 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13539 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
13540 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
13543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13544 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13546 return NDR_ERR_SUCCESS
;
13549 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13551 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
13553 if (flags
& NDR_SET_VALUES
) {
13554 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13556 if (flags
& NDR_IN
) {
13557 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
13559 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
13561 if (r
->in
.server_unc
) {
13562 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
13565 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13567 if (r
->in
.domain_name
) {
13568 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13571 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
13573 if (r
->in
.domain_guid
) {
13574 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
13577 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
13579 if (r
->in
.site_name
) {
13580 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
13583 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
13586 if (flags
& NDR_OUT
) {
13587 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
13589 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13591 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
13593 if (*r
->out
.info
) {
13594 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
13598 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13604 static enum ndr_err_code
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
13606 if (flags
& NDR_IN
) {
13607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13608 if (r
->in
.computer_name
) {
13609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13612 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
));
13615 if (flags
& NDR_OUT
) {
13616 if (r
->out
.site
== NULL
) {
13617 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13619 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.site
));
13620 if (*r
->out
.site
) {
13621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13624 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13626 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13628 return NDR_ERR_SUCCESS
;
13631 static enum ndr_err_code
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
13633 uint32_t _ptr_computer_name
;
13634 uint32_t _ptr_site
;
13635 TALLOC_CTX
*_mem_save_computer_name_0
;
13636 TALLOC_CTX
*_mem_save_site_0
;
13637 TALLOC_CTX
*_mem_save_site_1
;
13638 if (flags
& NDR_IN
) {
13639 ZERO_STRUCT(r
->out
);
13641 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13642 if (_ptr_computer_name
) {
13643 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13645 r
->in
.computer_name
= NULL
;
13647 if (r
->in
.computer_name
) {
13648 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13649 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13650 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13651 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13652 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13653 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
));
13655 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13656 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
));
13657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13659 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13660 ZERO_STRUCTP(r
->out
.site
);
13662 if (flags
& NDR_OUT
) {
13663 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13664 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13666 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13667 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
13668 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site
));
13670 NDR_PULL_ALLOC(ndr
, *r
->out
.site
);
13672 *r
->out
.site
= NULL
;
13674 if (*r
->out
.site
) {
13675 _mem_save_site_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13676 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.site
, 0);
13677 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
13678 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
13679 if (ndr_get_array_length(ndr
, r
->out
.site
) > ndr_get_array_size(ndr
, r
->out
.site
)) {
13680 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
));
13682 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t)));
13683 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t), CH_UTF16
));
13684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_1
, 0);
13686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
13687 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13689 return NDR_ERR_SUCCESS
;
13692 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
13694 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
13696 if (flags
& NDR_SET_VALUES
) {
13697 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13699 if (flags
& NDR_IN
) {
13700 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
13702 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13704 if (r
->in
.computer_name
) {
13705 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13710 if (flags
& NDR_OUT
) {
13711 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
13713 ndr_print_ptr(ndr
, "site", r
->out
.site
);
13715 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
13717 if (*r
->out
.site
) {
13718 ndr_print_string(ndr
, "site", *r
->out
.site
);
13722 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13728 static enum ndr_err_code
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13730 if (flags
& NDR_IN
) {
13731 if (r
->in
.server_name
== NULL
) {
13732 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13737 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
));
13738 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13739 if (r
->in
.computer_name
) {
13740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13743 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
));
13745 if (r
->in
.credential
== NULL
) {
13746 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13748 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13749 if (r
->in
.return_authenticator
== NULL
) {
13750 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13752 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
13754 if (r
->in
.query
== NULL
) {
13755 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13757 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13758 NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13760 if (flags
& NDR_OUT
) {
13761 if (r
->out
.return_authenticator
== NULL
) {
13762 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13764 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13765 if (r
->out
.info
== NULL
) {
13766 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13768 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13769 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13770 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13772 return NDR_ERR_SUCCESS
;
13775 static enum ndr_err_code
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
13777 uint32_t _ptr_computer_name
;
13778 TALLOC_CTX
*_mem_save_computer_name_0
;
13779 TALLOC_CTX
*_mem_save_credential_0
;
13780 TALLOC_CTX
*_mem_save_return_authenticator_0
;
13781 TALLOC_CTX
*_mem_save_query_0
;
13782 TALLOC_CTX
*_mem_save_info_0
;
13783 if (flags
& NDR_IN
) {
13784 ZERO_STRUCT(r
->out
);
13786 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13787 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13788 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13789 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
));
13791 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13792 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
));
13793 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13794 if (_ptr_computer_name
) {
13795 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13797 r
->in
.computer_name
= NULL
;
13799 if (r
->in
.computer_name
) {
13800 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13801 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13802 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13803 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13804 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13805 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
));
13807 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13808 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
));
13809 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13811 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13812 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
13814 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13815 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
13816 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13817 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
13818 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13819 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
13821 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13822 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13823 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13825 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13826 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13827 NDR_PULL_ALLOC(ndr
, r
->in
.query
);
13829 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13830 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.query
, LIBNDR_FLAG_REF_ALLOC
);
13831 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13832 NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13833 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
13834 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13835 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
13836 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13837 ZERO_STRUCTP(r
->out
.info
);
13839 if (flags
& NDR_OUT
) {
13840 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13841 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13843 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13844 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13845 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13847 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13848 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13850 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13851 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13852 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13853 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13855 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13857 return NDR_ERR_SUCCESS
;
13860 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13862 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
13864 if (flags
& NDR_SET_VALUES
) {
13865 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13867 if (flags
& NDR_IN
) {
13868 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
13870 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13872 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13874 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13876 if (r
->in
.computer_name
) {
13877 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13880 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
13882 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
13884 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13886 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13888 ndr_print_uint32(ndr
, "level", r
->in
.level
);
13889 ndr_print_ptr(ndr
, "query", r
->in
.query
);
13891 ndr_print_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
);
13892 ndr_print_netr_WorkstationInfo(ndr
, "query", r
->in
.query
);
13896 if (flags
& NDR_OUT
) {
13897 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
13899 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13901 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13903 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13905 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
13906 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
13908 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13914 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
13916 if (flags
& NDR_IN
) {
13917 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13918 if (r
->in
.server_name
) {
13919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13922 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
));
13924 if (r
->in
.account_name
== NULL
) {
13925 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13930 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
));
13931 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13932 if (r
->in
.computer_name
== NULL
) {
13933 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13938 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
));
13939 if (r
->in
.credential
== NULL
) {
13940 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13942 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13943 if (r
->in
.new_password
== NULL
) {
13944 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13946 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
13948 if (flags
& NDR_OUT
) {
13949 if (r
->out
.return_authenticator
== NULL
) {
13950 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13952 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13953 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13955 return NDR_ERR_SUCCESS
;
13958 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
13960 uint32_t _ptr_server_name
;
13961 TALLOC_CTX
*_mem_save_server_name_0
;
13962 TALLOC_CTX
*_mem_save_credential_0
;
13963 TALLOC_CTX
*_mem_save_return_authenticator_0
;
13964 TALLOC_CTX
*_mem_save_new_password_0
;
13965 if (flags
& NDR_IN
) {
13966 ZERO_STRUCT(r
->out
);
13968 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13969 if (_ptr_server_name
) {
13970 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13972 r
->in
.server_name
= NULL
;
13974 if (r
->in
.server_name
) {
13975 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13976 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13977 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13978 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13979 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13980 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
));
13982 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13983 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
));
13984 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13986 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
13987 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
13988 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
13989 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
));
13991 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
13992 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
));
13993 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
13994 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13995 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13996 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13997 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
));
13999 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14000 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
));
14001 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14002 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14004 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14005 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14006 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14008 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14009 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
14011 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14012 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
14013 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
14014 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14015 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14016 ZERO_STRUCTP(r
->out
.return_authenticator
);
14018 if (flags
& NDR_OUT
) {
14019 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14020 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14022 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14023 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14024 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14026 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14028 return NDR_ERR_SUCCESS
;
14031 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
14033 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
14035 if (flags
& NDR_SET_VALUES
) {
14036 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14038 if (flags
& NDR_IN
) {
14039 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
14041 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14043 if (r
->in
.server_name
) {
14044 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14047 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14049 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14051 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14052 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14054 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14056 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14058 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14060 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
14062 ndr_print_netr_CryptPassword(ndr
, "new_password", r
->in
.new_password
);
14066 if (flags
& NDR_OUT
) {
14067 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
14069 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14071 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14073 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14079 static enum ndr_err_code
ndr_push_netr_ServerPasswordGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordGet
*r
)
14081 if (flags
& NDR_IN
) {
14082 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14083 if (r
->in
.server_name
) {
14084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14087 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
));
14089 if (r
->in
.account_name
== NULL
) {
14090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14095 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
));
14096 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14097 if (r
->in
.computer_name
== NULL
) {
14098 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14103 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
));
14104 if (r
->in
.credential
== NULL
) {
14105 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14107 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14109 if (flags
& NDR_OUT
) {
14110 if (r
->out
.return_authenticator
== NULL
) {
14111 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14113 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14114 if (r
->out
.password
== NULL
) {
14115 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14117 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14118 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14120 return NDR_ERR_SUCCESS
;
14123 static enum ndr_err_code
ndr_pull_netr_ServerPasswordGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordGet
*r
)
14125 uint32_t _ptr_server_name
;
14126 TALLOC_CTX
*_mem_save_server_name_0
;
14127 TALLOC_CTX
*_mem_save_credential_0
;
14128 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14129 TALLOC_CTX
*_mem_save_password_0
;
14130 if (flags
& NDR_IN
) {
14131 ZERO_STRUCT(r
->out
);
14133 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14134 if (_ptr_server_name
) {
14135 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14137 r
->in
.server_name
= NULL
;
14139 if (r
->in
.server_name
) {
14140 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14141 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14142 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14143 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14144 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14145 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
));
14147 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14148 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
));
14149 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14151 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14152 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14153 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14154 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
));
14156 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14157 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
));
14158 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14159 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14160 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14161 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14162 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
));
14164 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14165 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
));
14166 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14167 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14169 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14170 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14171 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14173 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14174 ZERO_STRUCTP(r
->out
.return_authenticator
);
14175 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14176 ZERO_STRUCTP(r
->out
.password
);
14178 if (flags
& NDR_OUT
) {
14179 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14180 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14182 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14183 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14184 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14186 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14187 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14189 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14190 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
14191 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14192 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14193 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14195 return NDR_ERR_SUCCESS
;
14198 _PUBLIC_
void ndr_print_netr_ServerPasswordGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordGet
*r
)
14200 ndr_print_struct(ndr
, name
, "netr_ServerPasswordGet");
14202 if (flags
& NDR_SET_VALUES
) {
14203 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14205 if (flags
& NDR_IN
) {
14206 ndr_print_struct(ndr
, "in", "netr_ServerPasswordGet");
14208 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14210 if (r
->in
.server_name
) {
14211 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14214 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14216 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14218 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14219 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14221 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14223 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14225 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14229 if (flags
& NDR_OUT
) {
14230 ndr_print_struct(ndr
, "out", "netr_ServerPasswordGet");
14232 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14234 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14236 ndr_print_ptr(ndr
, "password", r
->out
.password
);
14238 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
14240 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14246 static enum ndr_err_code
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14248 if (flags
& NDR_IN
) {
14250 if (flags
& NDR_OUT
) {
14251 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14253 return NDR_ERR_SUCCESS
;
14256 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
14258 if (flags
& NDR_IN
) {
14260 if (flags
& NDR_OUT
) {
14261 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14263 return NDR_ERR_SUCCESS
;
14266 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14268 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
14270 if (flags
& NDR_SET_VALUES
) {
14271 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14273 if (flags
& NDR_IN
) {
14274 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
14278 if (flags
& NDR_OUT
) {
14279 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
14281 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14287 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14289 uint32_t cntr_addresses_1
;
14290 if (flags
& NDR_IN
) {
14291 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14292 if (r
->in
.server_name
) {
14293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14296 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
));
14298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14299 if (r
->in
.addresses
== NULL
) {
14300 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14303 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14304 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14306 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14307 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14310 if (flags
& NDR_OUT
) {
14311 if (r
->out
.ctr
== NULL
) {
14312 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14314 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14316 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14318 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14320 return NDR_ERR_SUCCESS
;
14323 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesW
*r
)
14325 uint32_t _ptr_server_name
;
14326 uint32_t cntr_addresses_1
;
14328 TALLOC_CTX
*_mem_save_server_name_0
;
14329 TALLOC_CTX
*_mem_save_addresses_1
;
14330 TALLOC_CTX
*_mem_save_ctr_0
;
14331 TALLOC_CTX
*_mem_save_ctr_1
;
14332 if (flags
& NDR_IN
) {
14333 ZERO_STRUCT(r
->out
);
14335 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14336 if (_ptr_server_name
) {
14337 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14339 r
->in
.server_name
= NULL
;
14341 if (r
->in
.server_name
) {
14342 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14343 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14344 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14345 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14346 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14347 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
));
14349 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14350 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
));
14351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14353 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14354 if (r
->in
.count
> 32000) {
14355 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14357 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14358 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14359 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14361 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14362 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14363 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14364 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14366 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14367 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14370 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14371 ZERO_STRUCTP(r
->out
.ctr
);
14372 if (r
->in
.addresses
) {
14373 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14376 if (flags
& NDR_OUT
) {
14377 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14378 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14380 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14381 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14382 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14384 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14386 *r
->out
.ctr
= NULL
;
14389 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14390 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14391 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14392 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
14394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14395 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14397 return NDR_ERR_SUCCESS
;
14400 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14402 uint32_t cntr_addresses_1
;
14403 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesW");
14405 if (flags
& NDR_SET_VALUES
) {
14406 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14408 if (flags
& NDR_IN
) {
14409 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesW");
14411 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14413 if (r
->in
.server_name
) {
14414 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14417 ndr_print_uint32(ndr
, "count", r
->in
.count
);
14418 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
14420 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
14422 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
14424 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
14425 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
14433 if (flags
& NDR_OUT
) {
14434 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesW");
14436 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14438 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
14441 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr
, "ctr", *r
->out
.ctr
);
14445 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14451 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14453 if (flags
& NDR_IN
) {
14454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
14455 if (r
->in
.server_unc
) {
14456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14459 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
));
14461 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
14462 if (r
->in
.client_account
) {
14463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14466 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
));
14468 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.mask
));
14469 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
14470 if (r
->in
.domain_name
) {
14471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14474 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
));
14476 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
14477 if (r
->in
.domain_guid
) {
14478 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14480 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
14481 if (r
->in
.site_name
) {
14482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14485 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
));
14487 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
14489 if (flags
& NDR_OUT
) {
14490 if (r
->out
.info
== NULL
) {
14491 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14493 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
14494 if (*r
->out
.info
) {
14495 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14497 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14499 return NDR_ERR_SUCCESS
;
14502 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
14504 uint32_t _ptr_server_unc
;
14505 uint32_t _ptr_client_account
;
14506 uint32_t _ptr_domain_name
;
14507 uint32_t _ptr_domain_guid
;
14508 uint32_t _ptr_site_name
;
14509 uint32_t _ptr_info
;
14510 TALLOC_CTX
*_mem_save_server_unc_0
;
14511 TALLOC_CTX
*_mem_save_client_account_0
;
14512 TALLOC_CTX
*_mem_save_domain_name_0
;
14513 TALLOC_CTX
*_mem_save_domain_guid_0
;
14514 TALLOC_CTX
*_mem_save_site_name_0
;
14515 TALLOC_CTX
*_mem_save_info_0
;
14516 TALLOC_CTX
*_mem_save_info_1
;
14517 if (flags
& NDR_IN
) {
14518 ZERO_STRUCT(r
->out
);
14520 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
14521 if (_ptr_server_unc
) {
14522 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
14524 r
->in
.server_unc
= NULL
;
14526 if (r
->in
.server_unc
) {
14527 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14528 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
14529 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
14530 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
14531 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
14532 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
));
14534 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
14535 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
));
14536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
14538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
14539 if (_ptr_client_account
) {
14540 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
14542 r
->in
.client_account
= NULL
;
14544 if (r
->in
.client_account
) {
14545 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14546 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
14547 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
14548 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
14549 if (ndr_get_array_length(ndr
, &r
->in
.client_account
) > ndr_get_array_size(ndr
, &r
->in
.client_account
)) {
14550 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
));
14552 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t)));
14553 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
));
14554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
14556 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.mask
));
14557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
14558 if (_ptr_domain_name
) {
14559 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
14561 r
->in
.domain_name
= NULL
;
14563 if (r
->in
.domain_name
) {
14564 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14565 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
14566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
14567 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
14568 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
14569 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
));
14571 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
14572 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
));
14573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
14575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
14576 if (_ptr_domain_guid
) {
14577 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
14579 r
->in
.domain_guid
= NULL
;
14581 if (r
->in
.domain_guid
) {
14582 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14583 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
14584 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
14587 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
14588 if (_ptr_site_name
) {
14589 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
14591 r
->in
.site_name
= NULL
;
14593 if (r
->in
.site_name
) {
14594 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14595 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
14596 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
14597 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
14598 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
14599 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
));
14601 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
14602 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
));
14603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
14605 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14606 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14607 ZERO_STRUCTP(r
->out
.info
);
14609 if (flags
& NDR_OUT
) {
14610 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14611 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14613 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14614 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
14615 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
14617 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
14619 *r
->out
.info
= NULL
;
14621 if (*r
->out
.info
) {
14622 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14623 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
14624 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14625 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
14627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14628 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14630 return NDR_ERR_SUCCESS
;
14633 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14635 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
14637 if (flags
& NDR_SET_VALUES
) {
14638 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14640 if (flags
& NDR_IN
) {
14641 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
14643 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
14645 if (r
->in
.server_unc
) {
14646 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
14649 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
14651 if (r
->in
.client_account
) {
14652 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
14655 ndr_print_samr_AcctFlags(ndr
, "mask", r
->in
.mask
);
14656 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
14658 if (r
->in
.domain_name
) {
14659 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
14662 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
14664 if (r
->in
.domain_guid
) {
14665 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
14668 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
14670 if (r
->in
.site_name
) {
14671 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
14674 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
14677 if (flags
& NDR_OUT
) {
14678 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
14680 ndr_print_ptr(ndr
, "info", r
->out
.info
);
14682 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
14684 if (*r
->out
.info
) {
14685 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
14689 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14695 static enum ndr_err_code
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14697 if (flags
& NDR_IN
) {
14699 if (flags
& NDR_OUT
) {
14700 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14702 return NDR_ERR_SUCCESS
;
14705 static enum ndr_err_code
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14707 if (flags
& NDR_IN
) {
14709 if (flags
& NDR_OUT
) {
14710 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14712 return NDR_ERR_SUCCESS
;
14715 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14717 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14719 if (flags
& NDR_SET_VALUES
) {
14720 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14722 if (flags
& NDR_IN
) {
14723 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14727 if (flags
& NDR_OUT
) {
14728 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14730 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14736 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14738 if (flags
& NDR_IN
) {
14739 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14740 if (r
->in
.server_name
) {
14741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14744 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
));
14747 if (flags
& NDR_OUT
) {
14748 if (r
->out
.dom_trust_list
== NULL
) {
14749 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14751 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14752 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14754 return NDR_ERR_SUCCESS
;
14757 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14759 uint32_t _ptr_server_name
;
14760 TALLOC_CTX
*_mem_save_server_name_0
;
14761 TALLOC_CTX
*_mem_save_dom_trust_list_0
;
14762 if (flags
& NDR_IN
) {
14763 ZERO_STRUCT(r
->out
);
14765 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14766 if (_ptr_server_name
) {
14767 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14769 r
->in
.server_name
= NULL
;
14771 if (r
->in
.server_name
) {
14772 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14773 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14774 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14775 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14776 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14777 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
));
14779 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14780 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
));
14781 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14783 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14784 ZERO_STRUCTP(r
->out
.dom_trust_list
);
14786 if (flags
& NDR_OUT
) {
14787 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14788 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14790 _mem_save_dom_trust_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14791 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dom_trust_list
, LIBNDR_FLAG_REF_ALLOC
);
14792 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dom_trust_list_0
, LIBNDR_FLAG_REF_ALLOC
);
14794 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14796 return NDR_ERR_SUCCESS
;
14799 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14801 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomainsEx");
14803 if (flags
& NDR_SET_VALUES
) {
14804 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14806 if (flags
& NDR_IN
) {
14807 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomainsEx");
14809 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14811 if (r
->in
.server_name
) {
14812 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14817 if (flags
& NDR_OUT
) {
14818 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomainsEx");
14820 ndr_print_ptr(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14822 ndr_print_netr_DomainTrustList(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14824 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14830 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
14832 uint32_t cntr_addresses_1
;
14833 if (flags
& NDR_IN
) {
14834 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14835 if (r
->in
.server_name
) {
14836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14839 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
));
14841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14842 if (r
->in
.addresses
== NULL
) {
14843 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14846 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14847 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14849 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14850 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14853 if (flags
& NDR_OUT
) {
14854 if (r
->out
.ctr
== NULL
) {
14855 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14857 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14859 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14861 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14863 return NDR_ERR_SUCCESS
;
14866 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesExW
*r
)
14868 uint32_t _ptr_server_name
;
14869 uint32_t cntr_addresses_1
;
14871 TALLOC_CTX
*_mem_save_server_name_0
;
14872 TALLOC_CTX
*_mem_save_addresses_1
;
14873 TALLOC_CTX
*_mem_save_ctr_0
;
14874 TALLOC_CTX
*_mem_save_ctr_1
;
14875 if (flags
& NDR_IN
) {
14876 ZERO_STRUCT(r
->out
);
14878 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14879 if (_ptr_server_name
) {
14880 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14882 r
->in
.server_name
= NULL
;
14884 if (r
->in
.server_name
) {
14885 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14886 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14887 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14888 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14889 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14890 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
));
14892 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14893 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
));
14894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14897 if (r
->in
.count
> 32000) {
14898 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14900 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14902 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14904 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14905 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14906 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14907 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14909 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14910 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14913 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14914 ZERO_STRUCTP(r
->out
.ctr
);
14915 if (r
->in
.addresses
) {
14916 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14919 if (flags
& NDR_OUT
) {
14920 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14921 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14923 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14924 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14927 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14929 *r
->out
.ctr
= NULL
;
14932 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14933 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14934 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
14937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14938 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14940 return NDR_ERR_SUCCESS
;
14943 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
14945 uint32_t cntr_addresses_1
;
14946 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExW");
14948 if (flags
& NDR_SET_VALUES
) {
14949 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14951 if (flags
& NDR_IN
) {
14952 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesExW");
14954 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14956 if (r
->in
.server_name
) {
14957 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14960 ndr_print_uint32(ndr
, "count", r
->in
.count
);
14961 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
14963 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
14965 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
14967 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
14968 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
14976 if (flags
& NDR_OUT
) {
14977 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesExW");
14979 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14981 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
14984 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr
, "ctr", *r
->out
.ctr
);
14988 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14994 static enum ndr_err_code
ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push
*ndr
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
14996 if (flags
& NDR_IN
) {
14997 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14998 if (r
->in
.server_name
) {
14999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15002 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
));
15005 if (flags
& NDR_OUT
) {
15006 if (r
->out
.ctr
== NULL
) {
15007 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15009 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
15011 NDR_CHECK(ndr_push_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15013 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15015 return NDR_ERR_SUCCESS
;
15018 static enum ndr_err_code
ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull
*ndr
, int flags
, struct netr_DsrGetDcSiteCoverageW
*r
)
15020 uint32_t _ptr_server_name
;
15022 TALLOC_CTX
*_mem_save_server_name_0
;
15023 TALLOC_CTX
*_mem_save_ctr_0
;
15024 TALLOC_CTX
*_mem_save_ctr_1
;
15025 if (flags
& NDR_IN
) {
15026 ZERO_STRUCT(r
->out
);
15028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15029 if (_ptr_server_name
) {
15030 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15032 r
->in
.server_name
= NULL
;
15034 if (r
->in
.server_name
) {
15035 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15036 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15037 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15038 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15039 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15040 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
));
15042 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15043 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
));
15044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15046 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15047 ZERO_STRUCTP(r
->out
.ctr
);
15049 if (flags
& NDR_OUT
) {
15050 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15051 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15053 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15054 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
15055 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
15057 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
15059 *r
->out
.ctr
= NULL
;
15062 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15063 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
15064 NDR_CHECK(ndr_pull_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15065 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15068 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15070 return NDR_ERR_SUCCESS
;
15073 _PUBLIC_
void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15075 ndr_print_struct(ndr
, name
, "netr_DsrGetDcSiteCoverageW");
15077 if (flags
& NDR_SET_VALUES
) {
15078 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15080 if (flags
& NDR_IN
) {
15081 ndr_print_struct(ndr
, "in", "netr_DsrGetDcSiteCoverageW");
15083 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15085 if (r
->in
.server_name
) {
15086 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15091 if (flags
& NDR_OUT
) {
15092 ndr_print_struct(ndr
, "out", "netr_DsrGetDcSiteCoverageW");
15094 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15096 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15099 ndr_print_DcSitesCtr(ndr
, "ctr", *r
->out
.ctr
);
15103 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15109 static enum ndr_err_code
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15111 if (flags
& NDR_IN
) {
15112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15113 if (r
->in
.server_name
) {
15114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15117 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
));
15119 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
15120 if (r
->in
.computer_name
) {
15121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15124 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
));
15126 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
15127 if (r
->in
.logon
== NULL
) {
15128 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15130 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15131 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15132 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
15133 if (r
->in
.flags
== NULL
) {
15134 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
15138 if (flags
& NDR_OUT
) {
15139 if (r
->out
.validation
== NULL
) {
15140 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15142 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15143 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15144 if (r
->out
.authoritative
== NULL
) {
15145 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15147 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
15148 if (r
->out
.flags
== NULL
) {
15149 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
15152 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15154 return NDR_ERR_SUCCESS
;
15157 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
15159 uint32_t _ptr_server_name
;
15160 uint32_t _ptr_computer_name
;
15161 TALLOC_CTX
*_mem_save_server_name_0
;
15162 TALLOC_CTX
*_mem_save_computer_name_0
;
15163 TALLOC_CTX
*_mem_save_logon_0
;
15164 TALLOC_CTX
*_mem_save_validation_0
;
15165 TALLOC_CTX
*_mem_save_authoritative_0
;
15166 TALLOC_CTX
*_mem_save_flags_0
;
15167 if (flags
& NDR_IN
) {
15168 ZERO_STRUCT(r
->out
);
15170 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15171 if (_ptr_server_name
) {
15172 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15174 r
->in
.server_name
= NULL
;
15176 if (r
->in
.server_name
) {
15177 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15178 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15180 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15181 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15182 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
));
15184 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15185 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
));
15186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15188 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
15189 if (_ptr_computer_name
) {
15190 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
15192 r
->in
.computer_name
= NULL
;
15194 if (r
->in
.computer_name
) {
15195 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15196 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
15197 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15198 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15199 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15200 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
));
15202 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15203 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
));
15204 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
15206 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
15207 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15208 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
15210 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15211 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
15212 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15213 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15214 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
15215 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
15216 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15217 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
15219 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15220 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15221 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15223 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15224 ZERO_STRUCTP(r
->out
.validation
);
15225 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15226 ZERO_STRUCTP(r
->out
.authoritative
);
15227 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15228 *r
->out
.flags
= *r
->in
.flags
;
15230 if (flags
& NDR_OUT
) {
15231 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15232 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15234 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15235 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
15236 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15237 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
15239 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15240 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15242 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15243 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
15244 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
15245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
15246 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15247 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15249 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15250 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15251 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
15252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15253 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15255 return NDR_ERR_SUCCESS
;
15258 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15260 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
15262 if (flags
& NDR_SET_VALUES
) {
15263 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15265 if (flags
& NDR_IN
) {
15266 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
15268 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15270 if (r
->in
.server_name
) {
15271 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15274 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15276 if (r
->in
.computer_name
) {
15277 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15280 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
15281 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
15283 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
15284 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
15286 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
15287 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
15289 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
15293 if (flags
& NDR_OUT
) {
15294 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
15296 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
15298 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
15299 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
15301 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
15303 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
15305 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
15307 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
15309 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15315 static enum ndr_err_code
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15317 if (flags
& NDR_IN
) {
15318 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15319 if (r
->in
.server_name
) {
15320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15323 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
));
15325 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
15327 if (flags
& NDR_OUT
) {
15328 if (r
->out
.trusts
== NULL
) {
15329 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15331 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15332 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15334 return NDR_ERR_SUCCESS
;
15337 static enum ndr_err_code
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
15339 uint32_t _ptr_server_name
;
15340 TALLOC_CTX
*_mem_save_server_name_0
;
15341 TALLOC_CTX
*_mem_save_trusts_0
;
15342 if (flags
& NDR_IN
) {
15343 ZERO_STRUCT(r
->out
);
15345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15346 if (_ptr_server_name
) {
15347 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15349 r
->in
.server_name
= NULL
;
15351 if (r
->in
.server_name
) {
15352 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15353 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15354 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15355 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15356 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15357 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
));
15359 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15360 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
));
15361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15363 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
15364 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15365 ZERO_STRUCTP(r
->out
.trusts
);
15367 if (flags
& NDR_OUT
) {
15368 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15369 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15371 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15372 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, LIBNDR_FLAG_REF_ALLOC
);
15373 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, LIBNDR_FLAG_REF_ALLOC
);
15375 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15377 return NDR_ERR_SUCCESS
;
15380 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15382 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
15384 if (flags
& NDR_SET_VALUES
) {
15385 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15387 if (flags
& NDR_IN
) {
15388 ndr_print_struct(ndr
, "in", "netr_DsrEnumerateDomainTrusts");
15390 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15392 if (r
->in
.server_name
) {
15393 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15396 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
15399 if (flags
& NDR_OUT
) {
15400 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
15402 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
15404 ndr_print_netr_DomainTrustList(ndr
, "trusts", r
->out
.trusts
);
15406 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15412 static enum ndr_err_code
ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push
*ndr
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15414 if (flags
& NDR_IN
) {
15415 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15416 if (r
->in
.server_name
) {
15417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15420 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
));
15422 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain
));
15423 if (r
->in
.domain
) {
15424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15427 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain
, ndr_charset_length(r
->in
.domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15429 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
15430 if (r
->in
.domain_guid
) {
15431 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15433 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.dsa_guid
));
15434 if (r
->in
.dsa_guid
) {
15435 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15437 if (r
->in
.dns_host
== NULL
) {
15438 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15443 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
));
15445 if (flags
& NDR_OUT
) {
15446 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15448 return NDR_ERR_SUCCESS
;
15451 static enum ndr_err_code
ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull
*ndr
, int flags
, struct netr_DsrDeregisterDNSHostRecords
*r
)
15453 uint32_t _ptr_server_name
;
15454 uint32_t _ptr_domain
;
15455 uint32_t _ptr_domain_guid
;
15456 uint32_t _ptr_dsa_guid
;
15457 TALLOC_CTX
*_mem_save_server_name_0
;
15458 TALLOC_CTX
*_mem_save_domain_0
;
15459 TALLOC_CTX
*_mem_save_domain_guid_0
;
15460 TALLOC_CTX
*_mem_save_dsa_guid_0
;
15461 if (flags
& NDR_IN
) {
15462 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15463 if (_ptr_server_name
) {
15464 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15466 r
->in
.server_name
= NULL
;
15468 if (r
->in
.server_name
) {
15469 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15470 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15471 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15472 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15473 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15474 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
));
15476 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15477 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
));
15478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15480 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
15482 NDR_PULL_ALLOC(ndr
, r
->in
.domain
);
15484 r
->in
.domain
= NULL
;
15486 if (r
->in
.domain
) {
15487 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15488 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain
, 0);
15489 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain
));
15490 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain
));
15491 if (ndr_get_array_length(ndr
, &r
->in
.domain
) > ndr_get_array_size(ndr
, &r
->in
.domain
)) {
15492 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
));
15494 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t)));
15495 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t), CH_UTF16
));
15496 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
15498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
15499 if (_ptr_domain_guid
) {
15500 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
15502 r
->in
.domain_guid
= NULL
;
15504 if (r
->in
.domain_guid
) {
15505 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15506 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
15507 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
15510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_guid
));
15511 if (_ptr_dsa_guid
) {
15512 NDR_PULL_ALLOC(ndr
, r
->in
.dsa_guid
);
15514 r
->in
.dsa_guid
= NULL
;
15516 if (r
->in
.dsa_guid
) {
15517 _mem_save_dsa_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15518 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.dsa_guid
, 0);
15519 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_guid_0
, 0);
15522 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.dns_host
));
15523 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.dns_host
));
15524 if (ndr_get_array_length(ndr
, &r
->in
.dns_host
) > ndr_get_array_size(ndr
, &r
->in
.dns_host
)) {
15525 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
));
15527 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t)));
15528 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
));
15530 if (flags
& NDR_OUT
) {
15531 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15533 return NDR_ERR_SUCCESS
;
15536 _PUBLIC_
void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15538 ndr_print_struct(ndr
, name
, "netr_DsrDeregisterDNSHostRecords");
15540 if (flags
& NDR_SET_VALUES
) {
15541 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15543 if (flags
& NDR_IN
) {
15544 ndr_print_struct(ndr
, "in", "netr_DsrDeregisterDNSHostRecords");
15546 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15548 if (r
->in
.server_name
) {
15549 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15552 ndr_print_ptr(ndr
, "domain", r
->in
.domain
);
15554 if (r
->in
.domain
) {
15555 ndr_print_string(ndr
, "domain", r
->in
.domain
);
15558 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
15560 if (r
->in
.domain_guid
) {
15561 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
15564 ndr_print_ptr(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15566 if (r
->in
.dsa_guid
) {
15567 ndr_print_GUID(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15570 ndr_print_ptr(ndr
, "dns_host", r
->in
.dns_host
);
15572 ndr_print_string(ndr
, "dns_host", r
->in
.dns_host
);
15576 if (flags
& NDR_OUT
) {
15577 ndr_print_struct(ndr
, "out", "netr_DsrDeregisterDNSHostRecords");
15579 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15585 static enum ndr_err_code
ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15587 if (flags
& NDR_IN
) {
15588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15589 if (r
->in
.server_name
) {
15590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15593 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
));
15595 if (r
->in
.account_name
== NULL
) {
15596 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15601 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
));
15602 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
15603 if (r
->in
.computer_name
== NULL
) {
15604 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15609 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
));
15610 if (r
->in
.credential
== NULL
) {
15611 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15613 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15615 if (flags
& NDR_OUT
) {
15616 if (r
->out
.return_authenticator
== NULL
) {
15617 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15619 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15620 if (r
->out
.password
== NULL
) {
15621 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15623 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15624 if (r
->out
.password2
== NULL
) {
15625 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15627 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15628 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15630 return NDR_ERR_SUCCESS
;
15633 static enum ndr_err_code
ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerTrustPasswordsGet
*r
)
15635 uint32_t _ptr_server_name
;
15636 TALLOC_CTX
*_mem_save_server_name_0
;
15637 TALLOC_CTX
*_mem_save_credential_0
;
15638 TALLOC_CTX
*_mem_save_return_authenticator_0
;
15639 TALLOC_CTX
*_mem_save_password_0
;
15640 TALLOC_CTX
*_mem_save_password2_0
;
15641 if (flags
& NDR_IN
) {
15642 ZERO_STRUCT(r
->out
);
15644 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15645 if (_ptr_server_name
) {
15646 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15648 r
->in
.server_name
= NULL
;
15650 if (r
->in
.server_name
) {
15651 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15652 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15653 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15654 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15655 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15656 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
));
15658 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15659 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
));
15660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15662 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
15663 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
15664 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
15665 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
));
15667 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
15668 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
));
15669 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
15670 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15671 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15672 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15673 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
));
15675 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15676 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
));
15677 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15678 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
15680 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15681 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
15682 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
15684 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15685 ZERO_STRUCTP(r
->out
.return_authenticator
);
15686 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15687 ZERO_STRUCTP(r
->out
.password
);
15688 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15689 ZERO_STRUCTP(r
->out
.password2
);
15691 if (flags
& NDR_OUT
) {
15692 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15693 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15695 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15696 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
15697 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15698 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
15699 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15700 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15702 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15703 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
15704 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
15706 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15707 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15709 _mem_save_password2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15710 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password2
, LIBNDR_FLAG_REF_ALLOC
);
15711 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password2_0
, LIBNDR_FLAG_REF_ALLOC
);
15713 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15715 return NDR_ERR_SUCCESS
;
15718 _PUBLIC_
void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15720 ndr_print_struct(ndr
, name
, "netr_ServerTrustPasswordsGet");
15722 if (flags
& NDR_SET_VALUES
) {
15723 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15725 if (flags
& NDR_IN
) {
15726 ndr_print_struct(ndr
, "in", "netr_ServerTrustPasswordsGet");
15728 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15730 if (r
->in
.server_name
) {
15731 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15734 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
15736 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
15738 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
15739 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15741 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15743 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
15745 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
15749 if (flags
& NDR_OUT
) {
15750 ndr_print_struct(ndr
, "out", "netr_ServerTrustPasswordsGet");
15752 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15754 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15756 ndr_print_ptr(ndr
, "password", r
->out
.password
);
15758 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
15760 ndr_print_ptr(ndr
, "password2", r
->out
.password2
);
15762 ndr_print_samr_Password(ndr
, "password2", r
->out
.password2
);
15764 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15770 static enum ndr_err_code
ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15772 if (flags
& NDR_IN
) {
15773 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15774 if (r
->in
.server_name
) {
15775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15778 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
));
15780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.trusted_domain_name
));
15781 if (r
->in
.trusted_domain_name
) {
15782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15785 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
));
15787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15789 if (flags
& NDR_OUT
) {
15790 if (r
->out
.forest_trust_info
== NULL
) {
15791 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15793 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
15794 if (*r
->out
.forest_trust_info
) {
15795 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15797 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15799 return NDR_ERR_SUCCESS
;
15802 static enum ndr_err_code
ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetForestTrustInformation
*r
)
15804 uint32_t _ptr_server_name
;
15805 uint32_t _ptr_trusted_domain_name
;
15806 uint32_t _ptr_forest_trust_info
;
15807 TALLOC_CTX
*_mem_save_server_name_0
;
15808 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
15809 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
15810 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
15811 if (flags
& NDR_IN
) {
15812 ZERO_STRUCT(r
->out
);
15814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15815 if (_ptr_server_name
) {
15816 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15818 r
->in
.server_name
= NULL
;
15820 if (r
->in
.server_name
) {
15821 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15822 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15823 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15824 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15825 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15826 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
));
15828 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15829 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
));
15830 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15832 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
15833 if (_ptr_trusted_domain_name
) {
15834 NDR_PULL_ALLOC(ndr
, r
->in
.trusted_domain_name
);
15836 r
->in
.trusted_domain_name
= NULL
;
15838 if (r
->in
.trusted_domain_name
) {
15839 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15840 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.trusted_domain_name
, 0);
15841 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
15842 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
15843 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
15844 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
));
15846 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
15847 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
));
15848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
15850 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
15851 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15852 ZERO_STRUCTP(r
->out
.forest_trust_info
);
15854 if (flags
& NDR_OUT
) {
15855 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15856 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15858 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15859 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
15860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
15861 if (_ptr_forest_trust_info
) {
15862 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
15864 *r
->out
.forest_trust_info
= NULL
;
15866 if (*r
->out
.forest_trust_info
) {
15867 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15868 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
15869 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15870 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
15872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
15873 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15875 return NDR_ERR_SUCCESS
;
15878 _PUBLIC_
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15880 ndr_print_struct(ndr
, name
, "netr_DsRGetForestTrustInformation");
15882 if (flags
& NDR_SET_VALUES
) {
15883 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15885 if (flags
& NDR_IN
) {
15886 ndr_print_struct(ndr
, "in", "netr_DsRGetForestTrustInformation");
15888 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15890 if (r
->in
.server_name
) {
15891 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15894 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15896 if (r
->in
.trusted_domain_name
) {
15897 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15900 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
15903 if (flags
& NDR_OUT
) {
15904 ndr_print_struct(ndr
, "out", "netr_DsRGetForestTrustInformation");
15906 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
15908 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15910 if (*r
->out
.forest_trust_info
) {
15911 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15915 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15921 static enum ndr_err_code
ndr_push_netr_GetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_GetForestTrustInformation
*r
)
15923 if (flags
& NDR_IN
) {
15924 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15925 if (r
->in
.server_name
) {
15926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15929 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
));
15931 if (r
->in
.trusted_domain_name
== NULL
) {
15932 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15937 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
));
15938 if (r
->in
.credential
== NULL
) {
15939 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15941 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15944 if (flags
& NDR_OUT
) {
15945 if (r
->out
.return_authenticator
== NULL
) {
15946 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15948 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15949 if (r
->out
.forest_trust_info
== NULL
) {
15950 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15952 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
15953 if (*r
->out
.forest_trust_info
) {
15954 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15956 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15958 return NDR_ERR_SUCCESS
;
15961 static enum ndr_err_code
ndr_pull_netr_GetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_GetForestTrustInformation
*r
)
15963 uint32_t _ptr_server_name
;
15964 uint32_t _ptr_forest_trust_info
;
15965 TALLOC_CTX
*_mem_save_server_name_0
;
15966 TALLOC_CTX
*_mem_save_credential_0
;
15967 TALLOC_CTX
*_mem_save_return_authenticator_0
;
15968 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
15969 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
15970 if (flags
& NDR_IN
) {
15971 ZERO_STRUCT(r
->out
);
15973 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15974 if (_ptr_server_name
) {
15975 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15977 r
->in
.server_name
= NULL
;
15979 if (r
->in
.server_name
) {
15980 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15981 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15982 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15983 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15984 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15985 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
));
15987 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15988 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
));
15989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15991 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
15992 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
15993 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
15994 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
));
15996 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
15997 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
));
15998 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15999 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16001 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16002 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16003 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16005 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
16006 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16007 ZERO_STRUCTP(r
->out
.return_authenticator
);
16008 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16009 ZERO_STRUCTP(r
->out
.forest_trust_info
);
16011 if (flags
& NDR_OUT
) {
16012 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16013 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16015 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16016 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16017 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16018 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16019 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16020 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16022 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16023 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
16025 if (_ptr_forest_trust_info
) {
16026 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
16028 *r
->out
.forest_trust_info
= NULL
;
16030 if (*r
->out
.forest_trust_info
) {
16031 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16032 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
16033 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
16036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16037 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
16039 return NDR_ERR_SUCCESS
;
16042 _PUBLIC_
void ndr_print_netr_GetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetForestTrustInformation
*r
)
16044 ndr_print_struct(ndr
, name
, "netr_GetForestTrustInformation");
16046 if (flags
& NDR_SET_VALUES
) {
16047 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16049 if (flags
& NDR_IN
) {
16050 ndr_print_struct(ndr
, "in", "netr_GetForestTrustInformation");
16052 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16054 if (r
->in
.server_name
) {
16055 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16058 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16060 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16062 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16064 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16066 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
16069 if (flags
& NDR_OUT
) {
16070 ndr_print_struct(ndr
, "out", "netr_GetForestTrustInformation");
16072 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16074 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16076 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
16078 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16080 if (*r
->out
.forest_trust_info
) {
16081 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16085 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16091 static enum ndr_err_code
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16093 if (flags
& NDR_IN
) {
16094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16095 if (r
->in
.server_name
) {
16096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16097 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16099 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
));
16101 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
16102 if (r
->in
.computer_name
) {
16103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16106 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
));
16108 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
16109 if (r
->in
.credential
) {
16110 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
16113 if (r
->in
.return_authenticator
) {
16114 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16116 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
16117 if (r
->in
.logon
== NULL
) {
16118 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16120 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16121 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16122 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
16123 if (r
->in
.flags
== NULL
) {
16124 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
16128 if (flags
& NDR_OUT
) {
16129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
16130 if (r
->out
.return_authenticator
) {
16131 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16133 if (r
->out
.validation
== NULL
) {
16134 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16136 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16137 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16138 if (r
->out
.authoritative
== NULL
) {
16139 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16141 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
16142 if (r
->out
.flags
== NULL
) {
16143 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
16146 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16148 return NDR_ERR_SUCCESS
;
16151 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
16153 uint32_t _ptr_server_name
;
16154 uint32_t _ptr_computer_name
;
16155 uint32_t _ptr_credential
;
16156 uint32_t _ptr_return_authenticator
;
16157 TALLOC_CTX
*_mem_save_server_name_0
;
16158 TALLOC_CTX
*_mem_save_computer_name_0
;
16159 TALLOC_CTX
*_mem_save_credential_0
;
16160 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16161 TALLOC_CTX
*_mem_save_logon_0
;
16162 TALLOC_CTX
*_mem_save_validation_0
;
16163 TALLOC_CTX
*_mem_save_authoritative_0
;
16164 TALLOC_CTX
*_mem_save_flags_0
;
16165 if (flags
& NDR_IN
) {
16166 ZERO_STRUCT(r
->out
);
16168 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16169 if (_ptr_server_name
) {
16170 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16172 r
->in
.server_name
= NULL
;
16174 if (r
->in
.server_name
) {
16175 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16176 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16177 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16178 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16179 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16180 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
));
16182 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16183 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
));
16184 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
16187 if (_ptr_computer_name
) {
16188 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
16190 r
->in
.computer_name
= NULL
;
16192 if (r
->in
.computer_name
) {
16193 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16194 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
16195 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16196 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16197 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16198 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
));
16200 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16201 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
));
16202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
16204 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
16205 if (_ptr_credential
) {
16206 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16208 r
->in
.credential
= NULL
;
16210 if (r
->in
.credential
) {
16211 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16212 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
16213 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16214 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
16216 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16217 if (_ptr_return_authenticator
) {
16218 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
16220 r
->in
.return_authenticator
= NULL
;
16222 if (r
->in
.return_authenticator
) {
16223 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16224 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
16225 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16226 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16228 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
16229 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16230 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
16232 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16233 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
16234 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16235 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
16237 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
16238 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16239 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
16241 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16242 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16243 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16244 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16245 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16246 ZERO_STRUCTP(r
->out
.validation
);
16247 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16248 ZERO_STRUCTP(r
->out
.authoritative
);
16249 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16250 *r
->out
.flags
= *r
->in
.flags
;
16252 if (flags
& NDR_OUT
) {
16253 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16254 if (_ptr_return_authenticator
) {
16255 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16257 r
->out
.return_authenticator
= NULL
;
16259 if (r
->out
.return_authenticator
) {
16260 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16261 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
16262 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16265 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16266 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16268 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16269 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
16270 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16271 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
16273 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16274 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16276 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16277 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
16278 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
16279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
16280 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16281 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16283 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16284 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
16286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16287 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16289 return NDR_ERR_SUCCESS
;
16292 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16294 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
16296 if (flags
& NDR_SET_VALUES
) {
16297 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16299 if (flags
& NDR_IN
) {
16300 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
16302 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16304 if (r
->in
.server_name
) {
16305 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16308 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16310 if (r
->in
.computer_name
) {
16311 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16314 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16316 if (r
->in
.credential
) {
16317 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16320 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16322 if (r
->in
.return_authenticator
) {
16323 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16326 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
16327 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
16329 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
16330 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
16332 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
16333 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
16335 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
16339 if (flags
& NDR_OUT
) {
16340 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
16342 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16344 if (r
->out
.return_authenticator
) {
16345 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16348 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
16350 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
16351 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
16353 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
16355 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
16357 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
16359 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
16361 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16367 static enum ndr_err_code
ndr_push_netr_ServerGetTrustInfo(struct ndr_push
*ndr
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16369 if (flags
& NDR_IN
) {
16370 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16371 if (r
->in
.server_name
) {
16372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16373 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16375 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
));
16377 if (r
->in
.account_name
== NULL
) {
16378 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16383 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
));
16384 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
16385 if (r
->in
.computer_name
== NULL
) {
16386 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16391 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
));
16392 if (r
->in
.credential
== NULL
) {
16393 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16395 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16397 if (flags
& NDR_OUT
) {
16398 if (r
->out
.return_authenticator
== NULL
) {
16399 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16401 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16402 if (r
->out
.new_owf_password
== NULL
) {
16403 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16405 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16406 if (r
->out
.old_owf_password
== NULL
) {
16407 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16409 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16410 if (r
->out
.trust_info
== NULL
) {
16411 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16413 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.trust_info
));
16414 if (*r
->out
.trust_info
) {
16415 NDR_CHECK(ndr_push_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16417 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16419 return NDR_ERR_SUCCESS
;
16422 static enum ndr_err_code
ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull
*ndr
, int flags
, struct netr_ServerGetTrustInfo
*r
)
16424 uint32_t _ptr_server_name
;
16425 uint32_t _ptr_trust_info
;
16426 TALLOC_CTX
*_mem_save_server_name_0
;
16427 TALLOC_CTX
*_mem_save_credential_0
;
16428 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16429 TALLOC_CTX
*_mem_save_new_owf_password_0
;
16430 TALLOC_CTX
*_mem_save_old_owf_password_0
;
16431 TALLOC_CTX
*_mem_save_trust_info_0
;
16432 TALLOC_CTX
*_mem_save_trust_info_1
;
16433 if (flags
& NDR_IN
) {
16434 ZERO_STRUCT(r
->out
);
16436 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16437 if (_ptr_server_name
) {
16438 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16440 r
->in
.server_name
= NULL
;
16442 if (r
->in
.server_name
) {
16443 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16444 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16445 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16446 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16447 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16448 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
));
16450 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16451 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
));
16452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16454 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
16455 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
16456 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
16457 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
));
16459 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
16460 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
));
16461 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
16462 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16463 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16464 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16465 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
));
16467 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16468 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
));
16469 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16470 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16472 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16473 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16474 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16476 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16477 ZERO_STRUCTP(r
->out
.return_authenticator
);
16478 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16479 ZERO_STRUCTP(r
->out
.new_owf_password
);
16480 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16481 ZERO_STRUCTP(r
->out
.old_owf_password
);
16482 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16483 ZERO_STRUCTP(r
->out
.trust_info
);
16485 if (flags
& NDR_OUT
) {
16486 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16487 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16489 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16490 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16491 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16493 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16494 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16496 _mem_save_new_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16497 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16498 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16499 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16500 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16501 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16503 _mem_save_old_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16504 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.old_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16505 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16507 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16508 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16510 _mem_save_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16511 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16512 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trust_info
));
16513 if (_ptr_trust_info
) {
16514 NDR_PULL_ALLOC(ndr
, *r
->out
.trust_info
);
16516 *r
->out
.trust_info
= NULL
;
16518 if (*r
->out
.trust_info
) {
16519 _mem_save_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16520 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.trust_info
, 0);
16521 NDR_CHECK(ndr_pull_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_1
, 0);
16524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16525 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16527 return NDR_ERR_SUCCESS
;
16530 _PUBLIC_
void ndr_print_netr_ServerGetTrustInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16532 ndr_print_struct(ndr
, name
, "netr_ServerGetTrustInfo");
16534 if (flags
& NDR_SET_VALUES
) {
16535 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16537 if (flags
& NDR_IN
) {
16538 ndr_print_struct(ndr
, "in", "netr_ServerGetTrustInfo");
16540 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16542 if (r
->in
.server_name
) {
16543 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16546 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
16548 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
16550 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
16551 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16553 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16555 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16557 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16561 if (flags
& NDR_OUT
) {
16562 ndr_print_struct(ndr
, "out", "netr_ServerGetTrustInfo");
16564 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16566 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16568 ndr_print_ptr(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16570 ndr_print_samr_Password(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16572 ndr_print_ptr(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16574 ndr_print_samr_Password(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16576 ndr_print_ptr(ndr
, "trust_info", r
->out
.trust_info
);
16578 ndr_print_ptr(ndr
, "trust_info", *r
->out
.trust_info
);
16580 if (*r
->out
.trust_info
) {
16581 ndr_print_netr_TrustInfo(ndr
, "trust_info", *r
->out
.trust_info
);
16585 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16591 static const struct ndr_interface_call netlogon_calls
[] = {
16593 "netr_LogonUasLogon",
16594 sizeof(struct netr_LogonUasLogon
),
16595 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
16596 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
16597 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
16601 "netr_LogonUasLogoff",
16602 sizeof(struct netr_LogonUasLogoff
),
16603 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
16604 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
16605 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
16609 "netr_LogonSamLogon",
16610 sizeof(struct netr_LogonSamLogon
),
16611 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
16612 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
16613 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
16617 "netr_LogonSamLogoff",
16618 sizeof(struct netr_LogonSamLogoff
),
16619 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
16620 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
16621 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
16625 "netr_ServerReqChallenge",
16626 sizeof(struct netr_ServerReqChallenge
),
16627 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
16628 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
16629 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
16633 "netr_ServerAuthenticate",
16634 sizeof(struct netr_ServerAuthenticate
),
16635 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
16636 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
16637 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
16641 "netr_ServerPasswordSet",
16642 sizeof(struct netr_ServerPasswordSet
),
16643 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
16644 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
16645 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
16649 "netr_DatabaseDeltas",
16650 sizeof(struct netr_DatabaseDeltas
),
16651 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
16652 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
16653 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
16657 "netr_DatabaseSync",
16658 sizeof(struct netr_DatabaseSync
),
16659 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
16660 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
16661 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
16665 "netr_AccountDeltas",
16666 sizeof(struct netr_AccountDeltas
),
16667 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
16668 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
16669 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
16673 "netr_AccountSync",
16674 sizeof(struct netr_AccountSync
),
16675 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
16676 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
16677 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
16682 sizeof(struct netr_GetDcName
),
16683 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
16684 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
16685 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
16689 "netr_LogonControl",
16690 sizeof(struct netr_LogonControl
),
16691 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
16692 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
16693 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
16697 "netr_GetAnyDCName",
16698 sizeof(struct netr_GetAnyDCName
),
16699 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
16700 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
16701 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
16705 "netr_LogonControl2",
16706 sizeof(struct netr_LogonControl2
),
16707 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
16708 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
16709 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
16713 "netr_ServerAuthenticate2",
16714 sizeof(struct netr_ServerAuthenticate2
),
16715 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
16716 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
16717 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
16721 "netr_DatabaseSync2",
16722 sizeof(struct netr_DatabaseSync2
),
16723 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
16724 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
16725 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
16729 "netr_DatabaseRedo",
16730 sizeof(struct netr_DatabaseRedo
),
16731 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
16732 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
16733 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
16737 "netr_LogonControl2Ex",
16738 sizeof(struct netr_LogonControl2Ex
),
16739 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
16740 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
16741 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
16745 "netr_NetrEnumerateTrustedDomains",
16746 sizeof(struct netr_NetrEnumerateTrustedDomains
),
16747 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomains
,
16748 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomains
,
16749 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomains
,
16753 "netr_DsRGetDCName",
16754 sizeof(struct netr_DsRGetDCName
),
16755 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
16756 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
16757 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
16761 "netr_LogonGetCapabilities",
16762 sizeof(struct netr_LogonGetCapabilities
),
16763 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetCapabilities
,
16764 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetCapabilities
,
16765 (ndr_print_function_t
) ndr_print_netr_LogonGetCapabilities
,
16769 "netr_NETRLOGONSETSERVICEBITS",
16770 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
16771 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
16772 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
16773 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
16777 "netr_LogonGetTrustRid",
16778 sizeof(struct netr_LogonGetTrustRid
),
16779 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetTrustRid
,
16780 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetTrustRid
,
16781 (ndr_print_function_t
) ndr_print_netr_LogonGetTrustRid
,
16785 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16786 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
16787 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16788 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16789 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16793 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16794 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
16795 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16796 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16797 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16801 "netr_ServerAuthenticate3",
16802 sizeof(struct netr_ServerAuthenticate3
),
16803 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
16804 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
16805 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
16809 "netr_DsRGetDCNameEx",
16810 sizeof(struct netr_DsRGetDCNameEx
),
16811 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
16812 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
16813 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
16817 "netr_DsRGetSiteName",
16818 sizeof(struct netr_DsRGetSiteName
),
16819 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
16820 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
16821 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
16825 "netr_LogonGetDomainInfo",
16826 sizeof(struct netr_LogonGetDomainInfo
),
16827 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
16828 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
16829 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
16833 "netr_ServerPasswordSet2",
16834 sizeof(struct netr_ServerPasswordSet2
),
16835 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
16836 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
16837 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
16841 "netr_ServerPasswordGet",
16842 sizeof(struct netr_ServerPasswordGet
),
16843 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordGet
,
16844 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordGet
,
16845 (ndr_print_function_t
) ndr_print_netr_ServerPasswordGet
,
16849 "netr_NETRLOGONSENDTOSAM",
16850 sizeof(struct netr_NETRLOGONSENDTOSAM
),
16851 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
16852 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
16853 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
16857 "netr_DsRAddressToSitenamesW",
16858 sizeof(struct netr_DsRAddressToSitenamesW
),
16859 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesW
,
16860 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesW
,
16861 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesW
,
16865 "netr_DsRGetDCNameEx2",
16866 sizeof(struct netr_DsRGetDCNameEx2
),
16867 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
16868 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
16869 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
16873 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16874 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
16875 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16876 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16877 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16881 "netr_NetrEnumerateTrustedDomainsEx",
16882 sizeof(struct netr_NetrEnumerateTrustedDomainsEx
),
16883 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomainsEx
,
16884 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomainsEx
,
16885 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomainsEx
,
16889 "netr_DsRAddressToSitenamesExW",
16890 sizeof(struct netr_DsRAddressToSitenamesExW
),
16891 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesExW
,
16892 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesExW
,
16893 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesExW
,
16897 "netr_DsrGetDcSiteCoverageW",
16898 sizeof(struct netr_DsrGetDcSiteCoverageW
),
16899 (ndr_push_flags_fn_t
) ndr_push_netr_DsrGetDcSiteCoverageW
,
16900 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrGetDcSiteCoverageW
,
16901 (ndr_print_function_t
) ndr_print_netr_DsrGetDcSiteCoverageW
,
16905 "netr_LogonSamLogonEx",
16906 sizeof(struct netr_LogonSamLogonEx
),
16907 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
16908 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
16909 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
16913 "netr_DsrEnumerateDomainTrusts",
16914 sizeof(struct netr_DsrEnumerateDomainTrusts
),
16915 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
16916 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
16917 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
16921 "netr_DsrDeregisterDNSHostRecords",
16922 sizeof(struct netr_DsrDeregisterDNSHostRecords
),
16923 (ndr_push_flags_fn_t
) ndr_push_netr_DsrDeregisterDNSHostRecords
,
16924 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrDeregisterDNSHostRecords
,
16925 (ndr_print_function_t
) ndr_print_netr_DsrDeregisterDNSHostRecords
,
16929 "netr_ServerTrustPasswordsGet",
16930 sizeof(struct netr_ServerTrustPasswordsGet
),
16931 (ndr_push_flags_fn_t
) ndr_push_netr_ServerTrustPasswordsGet
,
16932 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerTrustPasswordsGet
,
16933 (ndr_print_function_t
) ndr_print_netr_ServerTrustPasswordsGet
,
16937 "netr_DsRGetForestTrustInformation",
16938 sizeof(struct netr_DsRGetForestTrustInformation
),
16939 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetForestTrustInformation
,
16940 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetForestTrustInformation
,
16941 (ndr_print_function_t
) ndr_print_netr_DsRGetForestTrustInformation
,
16945 "netr_GetForestTrustInformation",
16946 sizeof(struct netr_GetForestTrustInformation
),
16947 (ndr_push_flags_fn_t
) ndr_push_netr_GetForestTrustInformation
,
16948 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetForestTrustInformation
,
16949 (ndr_print_function_t
) ndr_print_netr_GetForestTrustInformation
,
16953 "netr_LogonSamLogonWithFlags",
16954 sizeof(struct netr_LogonSamLogonWithFlags
),
16955 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
16956 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
16957 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
16961 "netr_ServerGetTrustInfo",
16962 sizeof(struct netr_ServerGetTrustInfo
),
16963 (ndr_push_flags_fn_t
) ndr_push_netr_ServerGetTrustInfo
,
16964 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerGetTrustInfo
,
16965 (ndr_print_function_t
) ndr_print_netr_ServerGetTrustInfo
,
16968 { NULL
, 0, NULL
, NULL
, NULL
, false }
16971 static const char * const netlogon_endpoint_strings
[] = {
16972 "ncacn_np:[\\pipe\\netlogon]",
16977 static const struct ndr_interface_string_array netlogon_endpoints
= {
16979 .names
= netlogon_endpoint_strings
16982 static const char * const netlogon_authservice_strings
[] = {
16986 static const struct ndr_interface_string_array netlogon_authservices
= {
16988 .names
= netlogon_authservice_strings
16992 const struct ndr_interface_table ndr_table_netlogon
= {
16993 .name
= "netlogon",
16995 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
16996 NDR_NETLOGON_VERSION
16998 .helpstring
= NDR_NETLOGON_HELPSTRING
,
17000 .calls
= netlogon_calls
,
17001 .endpoints
= &netlogon_endpoints
,
17002 .authservices
= &netlogon_authservices