1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_netlogon.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_security.h"
10 #include "librpc/gen_ndr/ndr_nbt.h"
11 static enum ndr_err_code
ndr_push_netr_UasInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasInfo
*r
)
13 if (ndr_flags
& NDR_SCALARS
) {
14 NDR_CHECK(ndr_push_align(ndr
, 4));
15 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
16 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priv
));
17 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_flags
));
18 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_count
));
19 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_pw_count
));
20 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logon
));
21 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logoff
));
22 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->logoff_time
));
23 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->kickoff_time
));
24 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->password_age
));
25 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_can_change
));
26 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_must_change
));
27 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer
));
28 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
29 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->script_path
));
30 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
32 if (ndr_flags
& NDR_BUFFERS
) {
33 if (r
->account_name
) {
34 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
35 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
36 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
37 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
40 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
41 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
42 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
43 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer
, ndr_charset_length(r
->computer
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
46 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
47 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
48 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
49 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
53 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
54 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
55 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->script_path
, ndr_charset_length(r
->script_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
58 return NDR_ERR_SUCCESS
;
61 static enum ndr_err_code
ndr_pull_netr_UasInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasInfo
*r
)
63 uint32_t _ptr_account_name
;
64 TALLOC_CTX
*_mem_save_account_name_0
;
65 uint32_t _ptr_computer
;
66 TALLOC_CTX
*_mem_save_computer_0
;
68 TALLOC_CTX
*_mem_save_domain_0
;
69 uint32_t _ptr_script_path
;
70 TALLOC_CTX
*_mem_save_script_path_0
;
71 if (ndr_flags
& NDR_SCALARS
) {
72 NDR_CHECK(ndr_pull_align(ndr
, 4));
73 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
74 if (_ptr_account_name
) {
75 NDR_PULL_ALLOC(ndr
, r
->account_name
);
77 r
->account_name
= NULL
;
79 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priv
));
80 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_flags
));
81 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_count
));
82 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_pw_count
));
83 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logon
));
84 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logoff
));
85 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->logoff_time
));
86 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->kickoff_time
));
87 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->password_age
));
88 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_can_change
));
89 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_must_change
));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer
));
92 NDR_PULL_ALLOC(ndr
, r
->computer
);
96 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
98 NDR_PULL_ALLOC(ndr
, r
->domain
);
102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_script_path
));
103 if (_ptr_script_path
) {
104 NDR_PULL_ALLOC(ndr
, r
->script_path
);
106 r
->script_path
= NULL
;
108 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
110 if (ndr_flags
& NDR_BUFFERS
) {
111 if (r
->account_name
) {
112 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
113 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
114 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
115 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
116 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
117 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->account_name
), ndr_get_array_length(ndr
, &r
->account_name
));
119 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
120 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
121 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
124 _mem_save_computer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
125 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer
, 0);
126 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer
));
127 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer
));
128 if (ndr_get_array_length(ndr
, &r
->computer
) > ndr_get_array_size(ndr
, &r
->computer
)) {
129 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->computer
), ndr_get_array_length(ndr
, &r
->computer
));
131 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t)));
132 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t), CH_UTF16
));
133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_0
, 0);
136 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
137 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
138 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
139 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
140 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
141 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
143 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
144 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
147 if (r
->script_path
) {
148 _mem_save_script_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
149 NDR_PULL_SET_MEM_CTX(ndr
, r
->script_path
, 0);
150 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->script_path
));
151 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->script_path
));
152 if (ndr_get_array_length(ndr
, &r
->script_path
) > ndr_get_array_size(ndr
, &r
->script_path
)) {
153 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->script_path
), ndr_get_array_length(ndr
, &r
->script_path
));
155 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t)));
156 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->script_path
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t), CH_UTF16
));
157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_script_path_0
, 0);
160 return NDR_ERR_SUCCESS
;
163 _PUBLIC_
void ndr_print_netr_UasInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasInfo
*r
)
165 ndr_print_struct(ndr
, name
, "netr_UasInfo");
167 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
169 if (r
->account_name
) {
170 ndr_print_string(ndr
, "account_name", r
->account_name
);
173 ndr_print_uint32(ndr
, "priv", r
->priv
);
174 ndr_print_uint32(ndr
, "auth_flags", r
->auth_flags
);
175 ndr_print_uint32(ndr
, "logon_count", r
->logon_count
);
176 ndr_print_uint32(ndr
, "bad_pw_count", r
->bad_pw_count
);
177 ndr_print_time_t(ndr
, "last_logon", r
->last_logon
);
178 ndr_print_time_t(ndr
, "last_logoff", r
->last_logoff
);
179 ndr_print_time_t(ndr
, "logoff_time", r
->logoff_time
);
180 ndr_print_time_t(ndr
, "kickoff_time", r
->kickoff_time
);
181 ndr_print_uint32(ndr
, "password_age", r
->password_age
);
182 ndr_print_time_t(ndr
, "pw_can_change", r
->pw_can_change
);
183 ndr_print_time_t(ndr
, "pw_must_change", r
->pw_must_change
);
184 ndr_print_ptr(ndr
, "computer", r
->computer
);
187 ndr_print_string(ndr
, "computer", r
->computer
);
190 ndr_print_ptr(ndr
, "domain", r
->domain
);
193 ndr_print_string(ndr
, "domain", r
->domain
);
196 ndr_print_ptr(ndr
, "script_path", r
->script_path
);
198 if (r
->script_path
) {
199 ndr_print_string(ndr
, "script_path", r
->script_path
);
202 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
206 static enum ndr_err_code
ndr_push_netr_UasLogoffInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasLogoffInfo
*r
)
208 if (ndr_flags
& NDR_SCALARS
) {
209 NDR_CHECK(ndr_push_align(ndr
, 4));
210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->duration
));
211 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
213 if (ndr_flags
& NDR_BUFFERS
) {
215 return NDR_ERR_SUCCESS
;
218 static enum ndr_err_code
ndr_pull_netr_UasLogoffInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasLogoffInfo
*r
)
220 if (ndr_flags
& NDR_SCALARS
) {
221 NDR_CHECK(ndr_pull_align(ndr
, 4));
222 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->duration
));
223 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
225 if (ndr_flags
& NDR_BUFFERS
) {
227 return NDR_ERR_SUCCESS
;
230 _PUBLIC_
void ndr_print_netr_UasLogoffInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasLogoffInfo
*r
)
232 ndr_print_struct(ndr
, name
, "netr_UasLogoffInfo");
234 ndr_print_uint32(ndr
, "duration", r
->duration
);
235 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
239 _PUBLIC_
enum ndr_err_code
ndr_push_netr_AcctLockStr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AcctLockStr
*r
)
241 if (ndr_flags
& NDR_SCALARS
) {
242 NDR_CHECK(ndr_push_align(ndr
, 4));
243 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->lockout_duration
));
244 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reset_count
));
245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_attempt_lockout
));
246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
));
248 if (ndr_flags
& NDR_BUFFERS
) {
250 return NDR_ERR_SUCCESS
;
253 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_AcctLockStr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AcctLockStr
*r
)
255 if (ndr_flags
& NDR_SCALARS
) {
256 NDR_CHECK(ndr_pull_align(ndr
, 4));
257 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->lockout_duration
));
258 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reset_count
));
259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_attempt_lockout
));
260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
262 if (ndr_flags
& NDR_BUFFERS
) {
264 return NDR_ERR_SUCCESS
;
267 _PUBLIC_
void ndr_print_netr_AcctLockStr(struct ndr_print
*ndr
, const char *name
, const struct netr_AcctLockStr
*r
)
269 ndr_print_struct(ndr
, name
, "netr_AcctLockStr");
271 ndr_print_dlong(ndr
, "lockout_duration", r
->lockout_duration
);
272 ndr_print_udlong(ndr
, "reset_count", r
->reset_count
);
273 ndr_print_uint32(ndr
, "bad_attempt_lockout", r
->bad_attempt_lockout
);
274 ndr_print_uint32(ndr
, "dummy", r
->dummy
);
278 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonParameterControl(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
281 return NDR_ERR_SUCCESS
;
284 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonParameterControl(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
289 return NDR_ERR_SUCCESS
;
292 _PUBLIC_
void ndr_print_netr_LogonParameterControl(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
294 ndr_print_uint32(ndr
, name
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_DONT_TRY_GUEST_ACCOUNT", MSV1_0_DONT_TRY_GUEST_ACCOUNT
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT
, r
);
301 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_PASSWORD_EXPIRY", MSV1_0_RETURN_PASSWORD_EXPIRY
, r
);
302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_USE_CLIENT_CHALLENGE", MSV1_0_USE_CLIENT_CHALLENGE
, r
);
303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_TRY_GUEST_ACCOUNT_ONLY", MSV1_0_TRY_GUEST_ACCOUNT_ONLY
, r
);
304 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH
, r
);
305 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY", MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY
, r
);
306 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
, r
);
307 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_DISABLE_PERSONAL_FALLBACK", MSV1_0_DISABLE_PERSONAL_FALLBACK
, r
);
308 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_FORCE_GUEST", MSV1_0_ALLOW_FORCE_GUEST
, r
);
309 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED", MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED
, r
);
310 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY", MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY
, r
);
311 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_ALLOW_MSVCHAPV2", MSV1_0_ALLOW_MSVCHAPV2
, r
);
312 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_S4U2SELF", MSV1_0_S4U2SELF
, r
);
313 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_CHECK_LOGONHOURS_FOR_S4U", MSV1_0_CHECK_LOGONHOURS_FOR_S4U
, r
);
314 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "MSV1_0_SUBAUTHENTICATION_DLL_EX", MSV1_0_SUBAUTHENTICATION_DLL_EX
, r
);
318 static enum ndr_err_code
ndr_push_netr_IdentityInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_IdentityInfo
*r
)
320 if (ndr_flags
& NDR_SCALARS
) {
321 NDR_CHECK(ndr_push_align(ndr
, 4));
322 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
323 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr
, NDR_SCALARS
, r
->parameter_control
));
324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_low
));
325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_high
));
326 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
327 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
329 if (ndr_flags
& NDR_BUFFERS
) {
330 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
331 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
332 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
334 return NDR_ERR_SUCCESS
;
337 static enum ndr_err_code
ndr_pull_netr_IdentityInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_IdentityInfo
*r
)
339 if (ndr_flags
& NDR_SCALARS
) {
340 NDR_CHECK(ndr_pull_align(ndr
, 4));
341 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
342 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr
, NDR_SCALARS
, &r
->parameter_control
));
343 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_low
));
344 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_high
));
345 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
346 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
348 if (ndr_flags
& NDR_BUFFERS
) {
349 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
350 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
351 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
353 return NDR_ERR_SUCCESS
;
356 _PUBLIC_
void ndr_print_netr_IdentityInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_IdentityInfo
*r
)
358 ndr_print_struct(ndr
, name
, "netr_IdentityInfo");
360 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
361 ndr_print_netr_LogonParameterControl(ndr
, "parameter_control", r
->parameter_control
);
362 ndr_print_uint32(ndr
, "logon_id_low", r
->logon_id_low
);
363 ndr_print_uint32(ndr
, "logon_id_high", r
->logon_id_high
);
364 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
365 ndr_print_lsa_String(ndr
, "workstation", &r
->workstation
);
369 static enum ndr_err_code
ndr_push_netr_PasswordInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordInfo
*r
)
371 if (ndr_flags
& NDR_SCALARS
) {
372 NDR_CHECK(ndr_push_align(ndr
, 4));
373 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
374 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
375 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
377 if (ndr_flags
& NDR_BUFFERS
) {
378 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
380 return NDR_ERR_SUCCESS
;
383 static enum ndr_err_code
ndr_pull_netr_PasswordInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordInfo
*r
)
385 if (ndr_flags
& NDR_SCALARS
) {
386 NDR_CHECK(ndr_pull_align(ndr
, 4));
387 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
388 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
389 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
391 if (ndr_flags
& NDR_BUFFERS
) {
392 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
394 return NDR_ERR_SUCCESS
;
397 _PUBLIC_
void ndr_print_netr_PasswordInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordInfo
*r
)
399 ndr_print_struct(ndr
, name
, "netr_PasswordInfo");
401 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
402 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
403 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
407 static enum ndr_err_code
ndr_push_netr_ChallengeResponse(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChallengeResponse
*r
)
410 uint32_t _flags_save_STRUCT
= ndr
->flags
;
411 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
412 if (ndr_flags
& NDR_SCALARS
) {
413 NDR_CHECK(ndr_push_align(ndr
, 4));
414 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
415 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
416 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
418 if (ndr_flags
& NDR_BUFFERS
) {
420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
423 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
426 ndr
->flags
= _flags_save_STRUCT
;
428 return NDR_ERR_SUCCESS
;
431 static enum ndr_err_code
ndr_pull_netr_ChallengeResponse(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChallengeResponse
*r
)
434 TALLOC_CTX
*_mem_save_data_0
;
436 uint32_t _flags_save_STRUCT
= ndr
->flags
;
437 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
438 if (ndr_flags
& NDR_SCALARS
) {
439 NDR_CHECK(ndr_pull_align(ndr
, 4));
440 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
441 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
442 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
444 NDR_PULL_ALLOC(ndr
, r
->data
);
449 if (ndr_flags
& NDR_BUFFERS
) {
451 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
452 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
453 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
454 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
455 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
456 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data
), ndr_get_array_length(ndr
, &r
->data
));
458 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
459 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_length(ndr
, &r
->data
)));
460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
463 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
466 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
));
469 ndr
->flags
= _flags_save_STRUCT
;
471 return NDR_ERR_SUCCESS
;
474 _PUBLIC_
void ndr_print_netr_ChallengeResponse(struct ndr_print
*ndr
, const char *name
, const struct netr_ChallengeResponse
*r
)
476 ndr_print_struct(ndr
, name
, "netr_ChallengeResponse");
478 uint32_t _flags_save_STRUCT
= ndr
->flags
;
479 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
481 ndr_print_uint16(ndr
, "length", r
->length
);
482 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
483 ndr_print_ptr(ndr
, "data", r
->data
);
486 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
490 ndr
->flags
= _flags_save_STRUCT
;
494 static enum ndr_err_code
ndr_push_netr_NetworkInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NetworkInfo
*r
)
497 uint32_t _flags_save_STRUCT
= ndr
->flags
;
498 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
499 if (ndr_flags
& NDR_SCALARS
) {
500 NDR_CHECK(ndr_push_align(ndr
, 4));
501 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
502 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
503 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
504 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
506 if (ndr_flags
& NDR_BUFFERS
) {
507 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
508 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
509 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
511 ndr
->flags
= _flags_save_STRUCT
;
513 return NDR_ERR_SUCCESS
;
516 static enum ndr_err_code
ndr_pull_netr_NetworkInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NetworkInfo
*r
)
519 uint32_t _flags_save_STRUCT
= ndr
->flags
;
520 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
521 if (ndr_flags
& NDR_SCALARS
) {
522 NDR_CHECK(ndr_pull_align(ndr
, 4));
523 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
524 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
525 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
526 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
528 if (ndr_flags
& NDR_BUFFERS
) {
529 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
530 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
531 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
533 ndr
->flags
= _flags_save_STRUCT
;
535 return NDR_ERR_SUCCESS
;
538 _PUBLIC_
void ndr_print_netr_NetworkInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_NetworkInfo
*r
)
540 ndr_print_struct(ndr
, name
, "netr_NetworkInfo");
542 uint32_t _flags_save_STRUCT
= ndr
->flags
;
543 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
545 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
546 ndr_print_array_uint8(ndr
, "challenge", r
->challenge
, 8);
547 ndr_print_netr_ChallengeResponse(ndr
, "nt", &r
->nt
);
548 ndr_print_netr_ChallengeResponse(ndr
, "lm", &r
->lm
);
550 ndr
->flags
= _flags_save_STRUCT
;
554 static enum ndr_err_code
ndr_push_netr_GenericInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GenericInfo
*r
)
557 uint32_t _flags_save_STRUCT
= ndr
->flags
;
558 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
559 if (ndr_flags
& NDR_SCALARS
) {
560 NDR_CHECK(ndr_push_align(ndr
, 4));
561 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
562 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->package_name
));
563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
564 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
566 if (ndr_flags
& NDR_BUFFERS
) {
567 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
568 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->package_name
));
570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
571 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
574 ndr
->flags
= _flags_save_STRUCT
;
576 return NDR_ERR_SUCCESS
;
579 static enum ndr_err_code
ndr_pull_netr_GenericInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GenericInfo
*r
)
582 TALLOC_CTX
*_mem_save_data_0
;
584 uint32_t _flags_save_STRUCT
= ndr
->flags
;
585 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
586 if (ndr_flags
& NDR_SCALARS
) {
587 NDR_CHECK(ndr_pull_align(ndr
, 4));
588 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
589 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->package_name
));
590 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
591 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
593 NDR_PULL_ALLOC(ndr
, r
->data
);
598 if (ndr_flags
& NDR_BUFFERS
) {
599 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
600 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->package_name
));
602 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
603 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
604 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
605 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
606 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
610 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
613 ndr
->flags
= _flags_save_STRUCT
;
615 return NDR_ERR_SUCCESS
;
618 _PUBLIC_
void ndr_print_netr_GenericInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_GenericInfo
*r
)
620 ndr_print_struct(ndr
, name
, "netr_GenericInfo");
622 uint32_t _flags_save_STRUCT
= ndr
->flags
;
623 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
625 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
626 ndr_print_lsa_String(ndr
, "package_name", &r
->package_name
);
627 ndr_print_uint32(ndr
, "length", r
->length
);
628 ndr_print_ptr(ndr
, "data", r
->data
);
631 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
635 ndr
->flags
= _flags_save_STRUCT
;
639 static enum ndr_err_code
ndr_push_netr_LogonInfoClass(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonInfoClass r
)
641 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
642 return NDR_ERR_SUCCESS
;
645 static enum ndr_err_code
ndr_pull_netr_LogonInfoClass(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonInfoClass
*r
)
648 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
650 return NDR_ERR_SUCCESS
;
653 _PUBLIC_
void ndr_print_netr_LogonInfoClass(struct ndr_print
*ndr
, const char *name
, enum netr_LogonInfoClass r
)
655 const char *val
= NULL
;
658 case NetlogonInteractiveInformation
: val
= "NetlogonInteractiveInformation"; break;
659 case NetlogonNetworkInformation
: val
= "NetlogonNetworkInformation"; break;
660 case NetlogonServiceInformation
: val
= "NetlogonServiceInformation"; break;
661 case NetlogonGenericInformation
: val
= "NetlogonGenericInformation"; break;
662 case NetlogonInteractiveTransitiveInformation
: val
= "NetlogonInteractiveTransitiveInformation"; break;
663 case NetlogonNetworkTransitiveInformation
: val
= "NetlogonNetworkTransitiveInformation"; break;
664 case NetlogonServiceTransitiveInformation
: val
= "NetlogonServiceTransitiveInformation"; break;
666 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
669 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LogonLevel(struct ndr_push
*ndr
, int ndr_flags
, const union netr_LogonLevel
*r
)
671 if (ndr_flags
& NDR_SCALARS
) {
672 int level
= ndr_push_get_switch_value(ndr
, r
);
673 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, level
));
675 case NetlogonInteractiveInformation
: {
676 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
679 case NetlogonNetworkInformation
: {
680 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
683 case NetlogonServiceInformation
: {
684 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
687 case NetlogonGenericInformation
: {
688 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
691 case NetlogonInteractiveTransitiveInformation
: {
692 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
695 case NetlogonNetworkTransitiveInformation
: {
696 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
699 case NetlogonServiceTransitiveInformation
: {
700 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
704 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
707 if (ndr_flags
& NDR_BUFFERS
) {
708 int level
= ndr_push_get_switch_value(ndr
, r
);
710 case NetlogonInteractiveInformation
:
712 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
716 case NetlogonNetworkInformation
:
718 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
722 case NetlogonServiceInformation
:
724 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
728 case NetlogonGenericInformation
:
730 NDR_CHECK(ndr_push_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
734 case NetlogonInteractiveTransitiveInformation
:
736 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
740 case NetlogonNetworkTransitiveInformation
:
742 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
746 case NetlogonServiceTransitiveInformation
:
748 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
753 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
756 return NDR_ERR_SUCCESS
;
759 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonLevel(struct ndr_pull
*ndr
, int ndr_flags
, union netr_LogonLevel
*r
)
763 TALLOC_CTX
*_mem_save_password_0
;
764 TALLOC_CTX
*_mem_save_network_0
;
765 TALLOC_CTX
*_mem_save_generic_0
;
766 level
= ndr_pull_get_switch_value(ndr
, r
);
767 if (ndr_flags
& NDR_SCALARS
) {
768 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
769 if (_level
!= level
) {
770 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
773 case NetlogonInteractiveInformation
: {
774 uint32_t _ptr_password
;
775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
777 NDR_PULL_ALLOC(ndr
, r
->password
);
783 case NetlogonNetworkInformation
: {
784 uint32_t _ptr_network
;
785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
787 NDR_PULL_ALLOC(ndr
, r
->network
);
793 case NetlogonServiceInformation
: {
794 uint32_t _ptr_password
;
795 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
797 NDR_PULL_ALLOC(ndr
, r
->password
);
803 case NetlogonGenericInformation
: {
804 uint32_t _ptr_generic
;
805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
807 NDR_PULL_ALLOC(ndr
, r
->generic
);
813 case NetlogonInteractiveTransitiveInformation
: {
814 uint32_t _ptr_password
;
815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
817 NDR_PULL_ALLOC(ndr
, r
->password
);
823 case NetlogonNetworkTransitiveInformation
: {
824 uint32_t _ptr_network
;
825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
827 NDR_PULL_ALLOC(ndr
, r
->network
);
833 case NetlogonServiceTransitiveInformation
: {
834 uint32_t _ptr_password
;
835 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
837 NDR_PULL_ALLOC(ndr
, r
->password
);
844 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
847 if (ndr_flags
& NDR_BUFFERS
) {
849 case NetlogonInteractiveInformation
:
851 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
852 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
853 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
858 case NetlogonNetworkInformation
:
860 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
861 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
862 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
867 case NetlogonServiceInformation
:
869 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
870 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
871 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
876 case NetlogonGenericInformation
:
878 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
879 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
880 NDR_CHECK(ndr_pull_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
885 case NetlogonInteractiveTransitiveInformation
:
887 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
888 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
889 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
894 case NetlogonNetworkTransitiveInformation
:
896 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
897 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
898 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
903 case NetlogonServiceTransitiveInformation
:
905 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
906 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
907 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
913 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
916 return NDR_ERR_SUCCESS
;
919 _PUBLIC_
void ndr_print_netr_LogonLevel(struct ndr_print
*ndr
, const char *name
, const union netr_LogonLevel
*r
)
922 level
= ndr_print_get_switch_value(ndr
, r
);
923 ndr_print_union(ndr
, name
, level
, "netr_LogonLevel");
925 case NetlogonInteractiveInformation
:
926 ndr_print_ptr(ndr
, "password", r
->password
);
929 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
934 case NetlogonNetworkInformation
:
935 ndr_print_ptr(ndr
, "network", r
->network
);
938 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
943 case NetlogonServiceInformation
:
944 ndr_print_ptr(ndr
, "password", r
->password
);
947 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
952 case NetlogonGenericInformation
:
953 ndr_print_ptr(ndr
, "generic", r
->generic
);
956 ndr_print_netr_GenericInfo(ndr
, "generic", r
->generic
);
961 case NetlogonInteractiveTransitiveInformation
:
962 ndr_print_ptr(ndr
, "password", r
->password
);
965 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
970 case NetlogonNetworkTransitiveInformation
:
971 ndr_print_ptr(ndr
, "network", r
->network
);
974 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
979 case NetlogonServiceTransitiveInformation
:
980 ndr_print_ptr(ndr
, "password", r
->password
);
983 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
989 ndr_print_bad_level(ndr
, name
, level
);
993 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UserSessionKey
*r
)
996 uint32_t _flags_save_STRUCT
= ndr
->flags
;
997 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
998 if (ndr_flags
& NDR_SCALARS
) {
999 NDR_CHECK(ndr_push_align(ndr
, 1));
1000 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
1002 if (ndr_flags
& NDR_BUFFERS
) {
1004 ndr
->flags
= _flags_save_STRUCT
;
1006 return NDR_ERR_SUCCESS
;
1009 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UserSessionKey
*r
)
1012 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1013 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1014 if (ndr_flags
& NDR_SCALARS
) {
1015 NDR_CHECK(ndr_pull_align(ndr
, 1));
1016 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
1018 if (ndr_flags
& NDR_BUFFERS
) {
1020 ndr
->flags
= _flags_save_STRUCT
;
1022 return NDR_ERR_SUCCESS
;
1025 _PUBLIC_
void ndr_print_netr_UserSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_UserSessionKey
*r
)
1027 ndr_print_struct(ndr
, name
, "netr_UserSessionKey");
1029 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1030 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1032 ndr_print_array_uint8(ndr
, "key", r
->key
, 16);
1034 ndr
->flags
= _flags_save_STRUCT
;
1038 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LMSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LMSessionKey
*r
)
1041 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1042 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1043 if (ndr_flags
& NDR_SCALARS
) {
1044 NDR_CHECK(ndr_push_align(ndr
, 1));
1045 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
1047 if (ndr_flags
& NDR_BUFFERS
) {
1049 ndr
->flags
= _flags_save_STRUCT
;
1051 return NDR_ERR_SUCCESS
;
1054 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LMSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LMSessionKey
*r
)
1057 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1058 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1059 if (ndr_flags
& NDR_SCALARS
) {
1060 NDR_CHECK(ndr_pull_align(ndr
, 1));
1061 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
1063 if (ndr_flags
& NDR_BUFFERS
) {
1065 ndr
->flags
= _flags_save_STRUCT
;
1067 return NDR_ERR_SUCCESS
;
1070 _PUBLIC_
void ndr_print_netr_LMSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_LMSessionKey
*r
)
1072 ndr_print_struct(ndr
, name
, "netr_LMSessionKey");
1074 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1075 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1077 ndr_print_array_uint8(ndr
, "key", r
->key
, 8);
1079 ndr
->flags
= _flags_save_STRUCT
;
1083 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1086 return NDR_ERR_SUCCESS
;
1089 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1094 return NDR_ERR_SUCCESS
;
1097 _PUBLIC_
void ndr_print_netr_UserFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1099 ndr_print_uint32(ndr
, name
, r
);
1101 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST
, r
);
1102 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION
, r
);
1103 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT
, r
);
1104 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD
, r
);
1105 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS
, r
);
1106 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY
, r
);
1107 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT
, r
);
1108 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED
, r
);
1109 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS
, r
);
1110 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED
, r
);
1111 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON
, r
);
1115 static enum ndr_err_code
ndr_push_netr_SamBaseInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamBaseInfo
*r
)
1117 uint32_t cntr_unknown_0
;
1118 if (ndr_flags
& NDR_SCALARS
) {
1119 NDR_CHECK(ndr_push_align(ndr
, 4));
1120 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
1121 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
1122 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
1123 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
1124 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
1125 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
1126 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1127 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1128 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1129 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1130 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1131 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1132 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
1133 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
1134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
1135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
1136 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1137 NDR_CHECK(ndr_push_netr_UserFlags(ndr
, NDR_SCALARS
, r
->user_flags
));
1138 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1139 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1140 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
1142 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1143 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
1144 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
1148 if (ndr_flags
& NDR_BUFFERS
) {
1149 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1150 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1151 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1152 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1153 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1154 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1155 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1156 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1157 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1158 if (r
->domain_sid
) {
1159 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1162 return NDR_ERR_SUCCESS
;
1165 static enum ndr_err_code
ndr_pull_netr_SamBaseInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamBaseInfo
*r
)
1167 uint32_t _ptr_domain_sid
;
1168 TALLOC_CTX
*_mem_save_domain_sid_0
;
1169 uint32_t cntr_unknown_0
;
1170 if (ndr_flags
& NDR_SCALARS
) {
1171 NDR_CHECK(ndr_pull_align(ndr
, 4));
1172 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
1173 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
1174 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
1175 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
1176 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
1177 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
1178 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1179 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1180 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1181 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1182 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1183 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1184 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
1185 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
1186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
1187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
1188 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1189 NDR_CHECK(ndr_pull_netr_UserFlags(ndr
, NDR_SCALARS
, &r
->user_flags
));
1190 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1191 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1192 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
1194 if (_ptr_domain_sid
) {
1195 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
1197 r
->domain_sid
= NULL
;
1199 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1200 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
1201 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
1205 if (ndr_flags
& NDR_BUFFERS
) {
1206 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1207 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1208 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1209 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1210 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1211 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1212 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1213 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1214 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1215 if (r
->domain_sid
) {
1216 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1217 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
1218 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
1222 return NDR_ERR_SUCCESS
;
1225 _PUBLIC_
void ndr_print_netr_SamBaseInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_SamBaseInfo
*r
)
1227 uint32_t cntr_unknown_0
;
1228 ndr_print_struct(ndr
, name
, "netr_SamBaseInfo");
1230 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
1231 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
1232 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
1233 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
1234 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
1235 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
1236 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1237 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1238 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
1239 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
1240 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
1241 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
1242 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
1243 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
1244 ndr_print_uint32(ndr
, "rid", r
->rid
);
1245 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1246 ndr_print_samr_RidWithAttributeArray(ndr
, "groups", &r
->groups
);
1247 ndr_print_netr_UserFlags(ndr
, "user_flags", r
->user_flags
);
1248 ndr_print_netr_UserSessionKey(ndr
, "key", &r
->key
);
1249 ndr_print_lsa_StringLarge(ndr
, "logon_server", &r
->logon_server
);
1250 ndr_print_lsa_StringLarge(ndr
, "domain", &r
->domain
);
1251 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
1253 if (r
->domain_sid
) {
1254 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
1257 ndr_print_netr_LMSessionKey(ndr
, "LMSessKey", &r
->LMSessKey
);
1258 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
1259 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)7);
1261 for (cntr_unknown_0
=0;cntr_unknown_0
<7;cntr_unknown_0
++) {
1263 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
1264 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1272 static enum ndr_err_code
ndr_push_netr_SamInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo2
*r
)
1274 if (ndr_flags
& NDR_SCALARS
) {
1275 NDR_CHECK(ndr_push_align(ndr
, 4));
1276 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1278 if (ndr_flags
& NDR_BUFFERS
) {
1279 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1281 return NDR_ERR_SUCCESS
;
1284 static enum ndr_err_code
ndr_pull_netr_SamInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo2
*r
)
1286 if (ndr_flags
& NDR_SCALARS
) {
1287 NDR_CHECK(ndr_pull_align(ndr
, 4));
1288 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1290 if (ndr_flags
& NDR_BUFFERS
) {
1291 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1293 return NDR_ERR_SUCCESS
;
1296 _PUBLIC_
void ndr_print_netr_SamInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo2
*r
)
1298 ndr_print_struct(ndr
, name
, "netr_SamInfo2");
1300 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1304 static enum ndr_err_code
ndr_push_netr_SidAttr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SidAttr
*r
)
1306 if (ndr_flags
& NDR_SCALARS
) {
1307 NDR_CHECK(ndr_push_align(ndr
, 4));
1308 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
1309 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1311 if (ndr_flags
& NDR_BUFFERS
) {
1313 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1316 return NDR_ERR_SUCCESS
;
1319 static enum ndr_err_code
ndr_pull_netr_SidAttr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SidAttr
*r
)
1322 TALLOC_CTX
*_mem_save_sid_0
;
1323 if (ndr_flags
& NDR_SCALARS
) {
1324 NDR_CHECK(ndr_pull_align(ndr
, 4));
1325 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
1327 NDR_PULL_ALLOC(ndr
, r
->sid
);
1331 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1333 if (ndr_flags
& NDR_BUFFERS
) {
1335 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1336 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
1337 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
1341 return NDR_ERR_SUCCESS
;
1344 _PUBLIC_
void ndr_print_netr_SidAttr(struct ndr_print
*ndr
, const char *name
, const struct netr_SidAttr
*r
)
1346 ndr_print_struct(ndr
, name
, "netr_SidAttr");
1348 ndr_print_ptr(ndr
, "sid", r
->sid
);
1351 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
1354 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1358 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SamInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo3
*r
)
1360 uint32_t cntr_sids_1
;
1361 if (ndr_flags
& NDR_SCALARS
) {
1362 NDR_CHECK(ndr_push_align(ndr
, 4));
1363 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1367 if (ndr_flags
& NDR_BUFFERS
) {
1368 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1371 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1372 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1374 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1375 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1379 return NDR_ERR_SUCCESS
;
1382 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SamInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo3
*r
)
1385 uint32_t cntr_sids_1
;
1386 TALLOC_CTX
*_mem_save_sids_0
;
1387 TALLOC_CTX
*_mem_save_sids_1
;
1388 if (ndr_flags
& NDR_SCALARS
) {
1389 NDR_CHECK(ndr_pull_align(ndr
, 4));
1390 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1391 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1394 NDR_PULL_ALLOC(ndr
, r
->sids
);
1399 if (ndr_flags
& NDR_BUFFERS
) {
1400 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1402 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1403 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1404 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1405 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1406 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1407 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1408 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1409 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1411 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1412 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1418 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1421 return NDR_ERR_SUCCESS
;
1424 _PUBLIC_
void ndr_print_netr_SamInfo3(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo3
*r
)
1426 uint32_t cntr_sids_1
;
1427 ndr_print_struct(ndr
, name
, "netr_SamInfo3");
1429 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1430 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1431 ndr_print_ptr(ndr
, "sids", r
->sids
);
1434 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1436 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1438 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1439 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1449 static enum ndr_err_code
ndr_push_netr_SamInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo6
*r
)
1451 uint32_t cntr_sids_1
;
1452 uint32_t cntr_unknown4_0
;
1453 if (ndr_flags
& NDR_SCALARS
) {
1454 NDR_CHECK(ndr_push_align(ndr
, 4));
1455 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1457 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1458 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1459 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1460 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
[cntr_unknown4_0
]));
1464 if (ndr_flags
& NDR_BUFFERS
) {
1465 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1468 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1469 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1471 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1472 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1475 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1476 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1478 return NDR_ERR_SUCCESS
;
1481 static enum ndr_err_code
ndr_pull_netr_SamInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo6
*r
)
1484 uint32_t cntr_sids_1
;
1485 TALLOC_CTX
*_mem_save_sids_0
;
1486 TALLOC_CTX
*_mem_save_sids_1
;
1487 uint32_t cntr_unknown4_0
;
1488 if (ndr_flags
& NDR_SCALARS
) {
1489 NDR_CHECK(ndr_pull_align(ndr
, 4));
1490 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1494 NDR_PULL_ALLOC(ndr
, r
->sids
);
1498 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1499 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1500 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1501 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
[cntr_unknown4_0
]));
1504 if (ndr_flags
& NDR_BUFFERS
) {
1505 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1507 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1508 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1509 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1510 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1511 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1512 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1513 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1514 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1516 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1517 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1522 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1523 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1525 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1528 return NDR_ERR_SUCCESS
;
1531 _PUBLIC_
void ndr_print_netr_SamInfo6(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo6
*r
)
1533 uint32_t cntr_sids_1
;
1534 uint32_t cntr_unknown4_0
;
1535 ndr_print_struct(ndr
, name
, "netr_SamInfo6");
1537 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1538 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1539 ndr_print_ptr(ndr
, "sids", r
->sids
);
1542 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1544 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1546 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1547 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1554 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
1555 ndr_print_lsa_String(ndr
, "principle", &r
->principle
);
1556 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown4", (int)20);
1558 for (cntr_unknown4_0
=0;cntr_unknown4_0
<20;cntr_unknown4_0
++) {
1560 if (asprintf(&idx_0
, "[%d]", cntr_unknown4_0
) != -1) {
1561 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
[cntr_unknown4_0
]);
1569 static enum ndr_err_code
ndr_push_netr_PacInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PacInfo
*r
)
1571 uint32_t cntr_expansionroom_0
;
1572 if (ndr_flags
& NDR_SCALARS
) {
1573 NDR_CHECK(ndr_push_align(ndr
, 4));
1574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1576 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1577 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1578 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1580 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->auth
));
1581 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1582 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1583 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->expansionroom
[cntr_expansionroom_0
]));
1585 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1586 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1587 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1588 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1590 if (ndr_flags
& NDR_BUFFERS
) {
1592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1593 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, r
->pac_size
));
1595 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1596 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1597 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1600 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, r
->auth_size
));
1602 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1603 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1604 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1605 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1607 return NDR_ERR_SUCCESS
;
1610 static enum ndr_err_code
ndr_pull_netr_PacInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PacInfo
*r
)
1613 TALLOC_CTX
*_mem_save_pac_0
;
1615 TALLOC_CTX
*_mem_save_auth_0
;
1616 uint32_t cntr_expansionroom_0
;
1617 if (ndr_flags
& NDR_SCALARS
) {
1618 NDR_CHECK(ndr_pull_align(ndr
, 4));
1619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pac_size
));
1620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1622 NDR_PULL_ALLOC(ndr
, r
->pac
);
1626 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1627 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1628 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1629 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_size
));
1630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_auth
));
1632 NDR_PULL_ALLOC(ndr
, r
->auth
);
1636 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1637 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->expansionroom
[cntr_expansionroom_0
]));
1640 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1641 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1642 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1643 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1645 if (ndr_flags
& NDR_BUFFERS
) {
1647 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1648 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1649 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pac
));
1650 NDR_PULL_ALLOC_N(ndr
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
));
1651 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
)));
1652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1654 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1655 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1656 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1658 _mem_save_auth_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1659 NDR_PULL_SET_MEM_CTX(ndr
, r
->auth
, 0);
1660 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->auth
));
1661 NDR_PULL_ALLOC_N(ndr
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
));
1662 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
)));
1663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_auth_0
, 0);
1665 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1666 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1667 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1668 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1670 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pac
, r
->pac_size
));
1673 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->auth
, r
->auth_size
));
1676 return NDR_ERR_SUCCESS
;
1679 _PUBLIC_
void ndr_print_netr_PacInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PacInfo
*r
)
1681 uint32_t cntr_expansionroom_0
;
1682 ndr_print_struct(ndr
, name
, "netr_PacInfo");
1684 ndr_print_uint32(ndr
, "pac_size", r
->pac_size
);
1685 ndr_print_ptr(ndr
, "pac", r
->pac
);
1688 ndr_print_array_uint8(ndr
, "pac", r
->pac
, r
->pac_size
);
1691 ndr_print_lsa_String(ndr
, "logon_domain", &r
->logon_domain
);
1692 ndr_print_lsa_String(ndr
, "logon_server", &r
->logon_server
);
1693 ndr_print_lsa_String(ndr
, "principal_name", &r
->principal_name
);
1694 ndr_print_uint32(ndr
, "auth_size", r
->auth_size
);
1695 ndr_print_ptr(ndr
, "auth", r
->auth
);
1698 ndr_print_array_uint8(ndr
, "auth", r
->auth
, r
->auth_size
);
1701 ndr_print_netr_UserSessionKey(ndr
, "user_session_key", &r
->user_session_key
);
1702 ndr
->print(ndr
, "%s: ARRAY(%d)", "expansionroom", (int)10);
1704 for (cntr_expansionroom_0
=0;cntr_expansionroom_0
<10;cntr_expansionroom_0
++) {
1706 if (asprintf(&idx_0
, "[%d]", cntr_expansionroom_0
) != -1) {
1707 ndr_print_uint32(ndr
, "expansionroom", r
->expansionroom
[cntr_expansionroom_0
]);
1712 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1713 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1714 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1715 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1719 static enum ndr_err_code
ndr_push_netr_GenericInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GenericInfo2
*r
)
1722 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1723 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1724 if (ndr_flags
& NDR_SCALARS
) {
1725 NDR_CHECK(ndr_push_align(ndr
, 4));
1726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
1727 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
1729 if (ndr_flags
& NDR_BUFFERS
) {
1731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
1732 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
1735 ndr
->flags
= _flags_save_STRUCT
;
1737 return NDR_ERR_SUCCESS
;
1740 static enum ndr_err_code
ndr_pull_netr_GenericInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GenericInfo2
*r
)
1743 TALLOC_CTX
*_mem_save_data_0
;
1745 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1746 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1747 if (ndr_flags
& NDR_SCALARS
) {
1748 NDR_CHECK(ndr_pull_align(ndr
, 4));
1749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
1750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
1752 NDR_PULL_ALLOC(ndr
, r
->data
);
1757 if (ndr_flags
& NDR_BUFFERS
) {
1759 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1760 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
1761 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
1762 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
1763 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
1764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
1767 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
1770 ndr
->flags
= _flags_save_STRUCT
;
1772 return NDR_ERR_SUCCESS
;
1775 _PUBLIC_
void ndr_print_netr_GenericInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_GenericInfo2
*r
)
1777 ndr_print_struct(ndr
, name
, "netr_GenericInfo2");
1779 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1780 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1782 ndr_print_uint32(ndr
, "length", r
->length
);
1783 ndr_print_ptr(ndr
, "data", r
->data
);
1786 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
1790 ndr
->flags
= _flags_save_STRUCT
;
1794 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Validation(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Validation
*r
)
1796 if (ndr_flags
& NDR_SCALARS
) {
1797 int level
= ndr_push_get_switch_value(ndr
, r
);
1798 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
1800 case NetlogonValidationSamInfo
: {
1801 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam2
));
1804 case NetlogonValidationSamInfo2
: {
1805 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam3
));
1809 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1812 case NetlogonValidationGenericInfo2
: {
1813 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
1816 case NetlogonValidationSamInfo4
: {
1817 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam6
));
1821 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1824 if (ndr_flags
& NDR_BUFFERS
) {
1825 int level
= ndr_push_get_switch_value(ndr
, r
);
1827 case NetlogonValidationSamInfo
:
1829 NDR_CHECK(ndr_push_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1833 case NetlogonValidationSamInfo2
:
1835 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1841 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1845 case NetlogonValidationGenericInfo2
:
1847 NDR_CHECK(ndr_push_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1851 case NetlogonValidationSamInfo4
:
1853 NDR_CHECK(ndr_push_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1858 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1861 return NDR_ERR_SUCCESS
;
1864 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Validation(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Validation
*r
)
1868 TALLOC_CTX
*_mem_save_sam2_0
;
1869 TALLOC_CTX
*_mem_save_sam3_0
;
1870 TALLOC_CTX
*_mem_save_pac_0
;
1871 TALLOC_CTX
*_mem_save_generic_0
;
1872 TALLOC_CTX
*_mem_save_sam6_0
;
1873 level
= ndr_pull_get_switch_value(ndr
, r
);
1874 if (ndr_flags
& NDR_SCALARS
) {
1875 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1876 if (_level
!= level
) {
1877 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
1880 case NetlogonValidationSamInfo
: {
1882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam2
));
1884 NDR_PULL_ALLOC(ndr
, r
->sam2
);
1890 case NetlogonValidationSamInfo2
: {
1892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam3
));
1894 NDR_PULL_ALLOC(ndr
, r
->sam3
);
1902 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1904 NDR_PULL_ALLOC(ndr
, r
->pac
);
1910 case NetlogonValidationGenericInfo2
: {
1911 uint32_t _ptr_generic
;
1912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
1914 NDR_PULL_ALLOC(ndr
, r
->generic
);
1920 case NetlogonValidationSamInfo4
: {
1922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam6
));
1924 NDR_PULL_ALLOC(ndr
, r
->sam6
);
1931 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1934 if (ndr_flags
& NDR_BUFFERS
) {
1936 case NetlogonValidationSamInfo
:
1938 _mem_save_sam2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1939 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam2
, 0);
1940 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1941 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam2_0
, 0);
1945 case NetlogonValidationSamInfo2
:
1947 _mem_save_sam3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1948 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam3
, 0);
1949 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam3_0
, 0);
1956 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1957 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1958 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1963 case NetlogonValidationGenericInfo2
:
1965 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1966 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
1967 NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
1972 case NetlogonValidationSamInfo4
:
1974 _mem_save_sam6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1975 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam6
, 0);
1976 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam6_0
, 0);
1982 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1985 return NDR_ERR_SUCCESS
;
1988 _PUBLIC_
void ndr_print_netr_Validation(struct ndr_print
*ndr
, const char *name
, const union netr_Validation
*r
)
1991 level
= ndr_print_get_switch_value(ndr
, r
);
1992 ndr_print_union(ndr
, name
, level
, "netr_Validation");
1994 case NetlogonValidationSamInfo
:
1995 ndr_print_ptr(ndr
, "sam2", r
->sam2
);
1998 ndr_print_netr_SamInfo2(ndr
, "sam2", r
->sam2
);
2003 case NetlogonValidationSamInfo2
:
2004 ndr_print_ptr(ndr
, "sam3", r
->sam3
);
2007 ndr_print_netr_SamInfo3(ndr
, "sam3", r
->sam3
);
2013 ndr_print_ptr(ndr
, "pac", r
->pac
);
2016 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
2021 case NetlogonValidationGenericInfo2
:
2022 ndr_print_ptr(ndr
, "generic", r
->generic
);
2025 ndr_print_netr_GenericInfo2(ndr
, "generic", r
->generic
);
2030 case NetlogonValidationSamInfo4
:
2031 ndr_print_ptr(ndr
, "sam6", r
->sam6
);
2034 ndr_print_netr_SamInfo6(ndr
, "sam6", r
->sam6
);
2040 ndr_print_bad_level(ndr
, name
, level
);
2044 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Credential(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Credential
*r
)
2047 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2048 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2049 if (ndr_flags
& NDR_SCALARS
) {
2050 NDR_CHECK(ndr_push_align(ndr
, 1));
2051 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
2053 if (ndr_flags
& NDR_BUFFERS
) {
2055 ndr
->flags
= _flags_save_STRUCT
;
2057 return NDR_ERR_SUCCESS
;
2060 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Credential(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Credential
*r
)
2063 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2064 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2065 if (ndr_flags
& NDR_SCALARS
) {
2066 NDR_CHECK(ndr_pull_align(ndr
, 1));
2067 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
2069 if (ndr_flags
& NDR_BUFFERS
) {
2071 ndr
->flags
= _flags_save_STRUCT
;
2073 return NDR_ERR_SUCCESS
;
2076 _PUBLIC_
void ndr_print_netr_Credential(struct ndr_print
*ndr
, const char *name
, const struct netr_Credential
*r
)
2078 ndr_print_struct(ndr
, name
, "netr_Credential");
2080 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2081 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2083 ndr_print_array_uint8(ndr
, "data", r
->data
, 8);
2085 ndr
->flags
= _flags_save_STRUCT
;
2089 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Authenticator(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Authenticator
*r
)
2091 if (ndr_flags
& NDR_SCALARS
) {
2092 NDR_CHECK(ndr_push_align(ndr
, 4));
2093 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2094 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
2096 if (ndr_flags
& NDR_BUFFERS
) {
2098 return NDR_ERR_SUCCESS
;
2101 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Authenticator(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Authenticator
*r
)
2103 if (ndr_flags
& NDR_SCALARS
) {
2104 NDR_CHECK(ndr_pull_align(ndr
, 4));
2105 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2106 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
2108 if (ndr_flags
& NDR_BUFFERS
) {
2110 return NDR_ERR_SUCCESS
;
2113 _PUBLIC_
void ndr_print_netr_Authenticator(struct ndr_print
*ndr
, const char *name
, const struct netr_Authenticator
*r
)
2115 ndr_print_struct(ndr
, name
, "netr_Authenticator");
2117 ndr_print_netr_Credential(ndr
, "cred", &r
->cred
);
2118 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
2122 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_USER
*r
)
2124 if (ndr_flags
& NDR_SCALARS
) {
2125 NDR_CHECK(ndr_push_align(ndr
, 4));
2126 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
2127 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2128 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2129 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2130 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2136 if (ndr_flags
& NDR_BUFFERS
) {
2137 if (r
->account_name
) {
2138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
2140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2141 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
2143 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2144 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2145 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2146 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2148 return NDR_ERR_SUCCESS
;
2151 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_USER
*r
)
2153 uint32_t _ptr_account_name
;
2154 TALLOC_CTX
*_mem_save_account_name_0
;
2155 if (ndr_flags
& NDR_SCALARS
) {
2156 NDR_CHECK(ndr_pull_align(ndr
, 4));
2157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
2158 if (_ptr_account_name
) {
2159 NDR_PULL_ALLOC(ndr
, r
->account_name
);
2161 r
->account_name
= NULL
;
2163 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2164 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2165 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2166 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2167 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2168 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2169 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2172 if (ndr_flags
& NDR_BUFFERS
) {
2173 if (r
->account_name
) {
2174 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2175 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
2176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
2177 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
2178 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
2179 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->account_name
), ndr_get_array_length(ndr
, &r
->account_name
));
2181 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
2182 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
2183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
2185 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2186 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2187 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2188 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2190 return NDR_ERR_SUCCESS
;
2193 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_USER
*r
)
2195 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_USER");
2197 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
2199 if (r
->account_name
) {
2200 ndr_print_string(ndr
, "account_name", r
->account_name
);
2203 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2204 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2205 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2206 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2207 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2208 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2209 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2210 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2214 static enum ndr_err_code
ndr_push_netr_USER_KEY16(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY16
*r
)
2216 if (ndr_flags
& NDR_SCALARS
) {
2217 NDR_CHECK(ndr_push_align(ndr
, 4));
2218 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2219 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
2221 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2223 if (ndr_flags
& NDR_BUFFERS
) {
2225 return NDR_ERR_SUCCESS
;
2228 static enum ndr_err_code
ndr_pull_netr_USER_KEY16(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY16
*r
)
2230 if (ndr_flags
& NDR_SCALARS
) {
2231 NDR_CHECK(ndr_pull_align(ndr
, 4));
2232 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
2233 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
2234 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
2235 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2237 if (ndr_flags
& NDR_BUFFERS
) {
2239 return NDR_ERR_SUCCESS
;
2242 _PUBLIC_
void ndr_print_netr_USER_KEY16(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY16
*r
)
2244 ndr_print_struct(ndr
, name
, "netr_USER_KEY16");
2246 ndr_print_uint16(ndr
, "length", r
->length
);
2247 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
2248 ndr_print_uint32(ndr
, "flags", r
->flags
);
2249 ndr_print_samr_Password(ndr
, "pwd", &r
->pwd
);
2253 static enum ndr_err_code
ndr_push_netr_PasswordHistory(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordHistory
*r
)
2255 if (ndr_flags
& NDR_SCALARS
) {
2256 NDR_CHECK(ndr_push_align(ndr
, 4));
2257 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2258 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nt_flags
));
2260 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2261 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lm_flags
));
2263 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2264 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2266 if (ndr_flags
& NDR_BUFFERS
) {
2268 return NDR_ERR_SUCCESS
;
2271 static enum ndr_err_code
ndr_pull_netr_PasswordHistory(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordHistory
*r
)
2273 if (ndr_flags
& NDR_SCALARS
) {
2274 NDR_CHECK(ndr_pull_align(ndr
, 4));
2275 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_length
));
2276 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_size
));
2277 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nt_flags
));
2278 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_length
));
2279 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_size
));
2280 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lm_flags
));
2281 NDR_PULL_ALLOC_N(ndr
, r
->nt_history
, r
->nt_length
);
2282 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2283 NDR_PULL_ALLOC_N(ndr
, r
->lm_history
, r
->lm_length
);
2284 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2286 if (ndr_flags
& NDR_BUFFERS
) {
2288 return NDR_ERR_SUCCESS
;
2291 _PUBLIC_
void ndr_print_netr_PasswordHistory(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordHistory
*r
)
2293 ndr_print_struct(ndr
, name
, "netr_PasswordHistory");
2295 ndr_print_uint16(ndr
, "nt_length", r
->nt_length
);
2296 ndr_print_uint16(ndr
, "nt_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->nt_length
:r
->nt_size
);
2297 ndr_print_uint32(ndr
, "nt_flags", r
->nt_flags
);
2298 ndr_print_uint16(ndr
, "lm_length", r
->lm_length
);
2299 ndr_print_uint16(ndr
, "lm_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->lm_length
:r
->lm_size
);
2300 ndr_print_uint32(ndr
, "lm_flags", r
->lm_flags
);
2301 ndr_print_array_uint8(ndr
, "nt_history", r
->nt_history
, r
->nt_length
);
2302 ndr_print_array_uint8(ndr
, "lm_history", r
->lm_history
, r
->lm_length
);
2306 static enum ndr_err_code
ndr_push_netr_USER_KEYS2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS2
*r
)
2308 if (ndr_flags
& NDR_SCALARS
) {
2309 NDR_CHECK(ndr_push_align(ndr
, 4));
2310 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2311 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2312 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2314 if (ndr_flags
& NDR_BUFFERS
) {
2316 return NDR_ERR_SUCCESS
;
2319 static enum ndr_err_code
ndr_pull_netr_USER_KEYS2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS2
*r
)
2321 if (ndr_flags
& NDR_SCALARS
) {
2322 NDR_CHECK(ndr_pull_align(ndr
, 4));
2323 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2324 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2325 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2327 if (ndr_flags
& NDR_BUFFERS
) {
2329 return NDR_ERR_SUCCESS
;
2332 _PUBLIC_
void ndr_print_netr_USER_KEYS2(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS2
*r
)
2334 ndr_print_struct(ndr
, name
, "netr_USER_KEYS2");
2336 ndr_print_netr_USER_KEY16(ndr
, "lmpassword", &r
->lmpassword
);
2337 ndr_print_netr_USER_KEY16(ndr
, "ntpassword", &r
->ntpassword
);
2338 ndr_print_netr_PasswordHistory(ndr
, "history", &r
->history
);
2342 static enum ndr_err_code
ndr_push_netr_USER_KEY_UNION(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY_UNION
*r
)
2344 if (ndr_flags
& NDR_SCALARS
) {
2345 NDR_CHECK(ndr_push_align(ndr
, 4));
2346 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2348 if (ndr_flags
& NDR_BUFFERS
) {
2350 return NDR_ERR_SUCCESS
;
2353 static enum ndr_err_code
ndr_pull_netr_USER_KEY_UNION(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY_UNION
*r
)
2355 if (ndr_flags
& NDR_SCALARS
) {
2356 NDR_CHECK(ndr_pull_align(ndr
, 4));
2357 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2359 if (ndr_flags
& NDR_BUFFERS
) {
2361 return NDR_ERR_SUCCESS
;
2364 _PUBLIC_
void ndr_print_netr_USER_KEY_UNION(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY_UNION
*r
)
2366 ndr_print_struct(ndr
, name
, "netr_USER_KEY_UNION");
2368 ndr_print_netr_USER_KEYS2(ndr
, "keys2", &r
->keys2
);
2372 _PUBLIC_
enum ndr_err_code
ndr_push_netr_USER_KEYS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS
*r
)
2374 if (ndr_flags
& NDR_SCALARS
) {
2375 NDR_CHECK(ndr_push_align(ndr
, 4));
2376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2377 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2379 if (ndr_flags
& NDR_BUFFERS
) {
2381 return NDR_ERR_SUCCESS
;
2384 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_USER_KEYS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS
*r
)
2386 if (ndr_flags
& NDR_SCALARS
) {
2387 NDR_CHECK(ndr_pull_align(ndr
, 4));
2388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2389 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2391 if (ndr_flags
& NDR_BUFFERS
) {
2393 return NDR_ERR_SUCCESS
;
2396 _PUBLIC_
void ndr_print_netr_USER_KEYS(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS
*r
)
2398 ndr_print_struct(ndr
, name
, "netr_USER_KEYS");
2400 ndr_print_uint32(ndr
, "version", r
->version
);
2401 ndr_print_netr_USER_KEY_UNION(ndr
, "keys", &r
->keys
);
2405 static enum ndr_err_code
ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_PRIVATE_INFO
*r
)
2407 if (ndr_flags
& NDR_SCALARS
) {
2408 NDR_CHECK(ndr_push_align(ndr
, 4));
2409 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->SensitiveDataFlag
));
2410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2412 uint32_t _flags_save_uint8
= ndr
->flags
;
2413 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2414 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->SensitiveData
));
2415 ndr
->flags
= _flags_save_uint8
;
2418 if (ndr_flags
& NDR_BUFFERS
) {
2420 uint32_t _flags_save_uint8
= ndr
->flags
;
2421 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2422 if (r
->SensitiveData
) {
2423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2424 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, r
->DataLength
));
2426 ndr
->flags
= _flags_save_uint8
;
2429 return NDR_ERR_SUCCESS
;
2432 static enum ndr_err_code
ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_PRIVATE_INFO
*r
)
2434 uint32_t _ptr_SensitiveData
;
2435 TALLOC_CTX
*_mem_save_SensitiveData_0
;
2436 if (ndr_flags
& NDR_SCALARS
) {
2437 NDR_CHECK(ndr_pull_align(ndr
, 4));
2438 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->SensitiveDataFlag
));
2439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->DataLength
));
2441 uint32_t _flags_save_uint8
= ndr
->flags
;
2442 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2443 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_SensitiveData
));
2444 if (_ptr_SensitiveData
) {
2445 NDR_PULL_ALLOC(ndr
, r
->SensitiveData
);
2447 r
->SensitiveData
= NULL
;
2449 ndr
->flags
= _flags_save_uint8
;
2452 if (ndr_flags
& NDR_BUFFERS
) {
2454 uint32_t _flags_save_uint8
= ndr
->flags
;
2455 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2456 if (r
->SensitiveData
) {
2457 _mem_save_SensitiveData_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2458 NDR_PULL_SET_MEM_CTX(ndr
, r
->SensitiveData
, 0);
2459 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->SensitiveData
));
2460 NDR_PULL_ALLOC_N(ndr
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
));
2461 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
)));
2462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_SensitiveData_0
, 0);
2464 ndr
->flags
= _flags_save_uint8
;
2466 if (r
->SensitiveData
) {
2467 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->SensitiveData
, r
->DataLength
));
2470 return NDR_ERR_SUCCESS
;
2473 _PUBLIC_
void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_PRIVATE_INFO
*r
)
2475 ndr_print_struct(ndr
, name
, "netr_USER_PRIVATE_INFO");
2477 ndr_print_uint8(ndr
, "SensitiveDataFlag", r
->SensitiveDataFlag
);
2478 ndr_print_uint32(ndr
, "DataLength", r
->DataLength
);
2479 ndr_print_ptr(ndr
, "SensitiveData", r
->SensitiveData
);
2481 if (r
->SensitiveData
) {
2482 ndr_print_array_uint8(ndr
, "SensitiveData", r
->SensitiveData
, r
->DataLength
);
2488 static enum ndr_err_code
ndr_push_netr_DELTA_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_USER
*r
)
2490 if (ndr_flags
& NDR_SCALARS
) {
2491 NDR_CHECK(ndr_push_align(ndr
, 4));
2492 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2493 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2496 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2497 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2498 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2499 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2500 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2501 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2502 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2503 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2504 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2505 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2506 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2507 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2508 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2509 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2510 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2511 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_present
));
2512 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_present
));
2513 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2514 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2515 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2516 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2517 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2518 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2520 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2521 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2522 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2523 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2524 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2530 if (ndr_flags
& NDR_BUFFERS
) {
2531 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2532 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2533 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2534 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2535 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2536 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2537 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2538 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2539 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2540 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2541 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2542 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2543 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2544 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2545 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2546 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2548 return NDR_ERR_SUCCESS
;
2551 static enum ndr_err_code
ndr_pull_netr_DELTA_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_USER
*r
)
2553 if (ndr_flags
& NDR_SCALARS
) {
2554 NDR_CHECK(ndr_pull_align(ndr
, 4));
2555 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2556 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2558 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2559 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2560 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2561 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2562 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2563 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2564 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2565 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2566 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2567 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2568 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2569 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2570 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2571 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2572 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2573 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2574 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_present
));
2575 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_present
));
2576 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2577 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2578 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2579 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2580 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2581 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2582 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2583 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2584 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2585 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2586 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2587 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2588 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2589 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2590 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2593 if (ndr_flags
& NDR_BUFFERS
) {
2594 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2595 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2596 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2597 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2598 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2599 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2600 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2601 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2602 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2603 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2604 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2605 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2606 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2607 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2608 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2609 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2611 return NDR_ERR_SUCCESS
;
2614 _PUBLIC_
void ndr_print_netr_DELTA_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_USER
*r
)
2616 ndr_print_struct(ndr
, name
, "netr_DELTA_USER");
2618 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2619 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2620 ndr_print_uint32(ndr
, "rid", r
->rid
);
2621 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2622 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2623 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2624 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2625 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2626 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2627 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2628 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2629 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2630 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2631 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2632 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2633 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2634 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2635 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
2636 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
2637 ndr_print_uint8(ndr
, "nt_password_present", r
->nt_password_present
);
2638 ndr_print_uint8(ndr
, "lm_password_present", r
->lm_password_present
);
2639 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2640 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2641 ndr_print_lsa_BinaryString(ndr
, "parameters", &r
->parameters
);
2642 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2643 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2644 ndr_print_netr_USER_PRIVATE_INFO(ndr
, "user_private_info", &r
->user_private_info
);
2645 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2646 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2647 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2648 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2649 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2650 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2651 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2652 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2653 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2654 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2658 static enum ndr_err_code
ndr_push_netr_DELTA_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DOMAIN
*r
)
2660 if (ndr_flags
& NDR_SCALARS
) {
2661 NDR_CHECK(ndr_push_align(ndr
, 4));
2662 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2663 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2664 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
2665 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
2666 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
2667 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
2668 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
2669 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2670 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
2671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2672 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2673 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2674 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2675 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2676 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_to_chgpass
));
2678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2682 if (ndr_flags
& NDR_BUFFERS
) {
2683 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2684 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2685 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2686 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2687 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2688 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2689 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2691 return NDR_ERR_SUCCESS
;
2694 static enum ndr_err_code
ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DOMAIN
*r
)
2696 if (ndr_flags
& NDR_SCALARS
) {
2697 NDR_CHECK(ndr_pull_align(ndr
, 4));
2698 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2699 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2700 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
2701 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
2702 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
2703 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
2704 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
2705 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
2706 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
2707 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2708 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2709 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2710 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2711 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2712 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_to_chgpass
));
2714 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2716 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2718 if (ndr_flags
& NDR_BUFFERS
) {
2719 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2720 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2721 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2722 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2723 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2724 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2725 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2727 return NDR_ERR_SUCCESS
;
2730 _PUBLIC_
void ndr_print_netr_DELTA_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DOMAIN
*r
)
2732 ndr_print_struct(ndr
, name
, "netr_DELTA_DOMAIN");
2734 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
2735 ndr_print_lsa_String(ndr
, "oem_information", &r
->oem_information
);
2736 ndr_print_dlong(ndr
, "force_logoff_time", r
->force_logoff_time
);
2737 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
2738 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
2739 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
2740 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
2741 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
2742 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
2743 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2744 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2745 ndr_print_lsa_BinaryString(ndr
, "account_lockout", &r
->account_lockout
);
2746 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2747 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2748 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2749 ndr_print_uint32(ndr
, "logon_to_chgpass", r
->logon_to_chgpass
);
2750 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2751 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2752 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2756 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP
*r
)
2758 if (ndr_flags
& NDR_SCALARS
) {
2759 NDR_CHECK(ndr_push_align(ndr
, 4));
2760 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
2763 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2765 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2766 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2767 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2768 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2769 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2775 if (ndr_flags
& NDR_BUFFERS
) {
2776 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2777 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2778 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2779 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2780 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2781 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2782 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2784 return NDR_ERR_SUCCESS
;
2787 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP
*r
)
2789 if (ndr_flags
& NDR_SCALARS
) {
2790 NDR_CHECK(ndr_pull_align(ndr
, 4));
2791 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2793 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
2794 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2795 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2796 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2797 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2798 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2799 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2800 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2801 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2802 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2803 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2804 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2806 if (ndr_flags
& NDR_BUFFERS
) {
2807 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2808 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2809 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2810 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2811 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2812 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2813 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2815 return NDR_ERR_SUCCESS
;
2818 _PUBLIC_
void ndr_print_netr_DELTA_GROUP(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP
*r
)
2820 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP");
2822 ndr_print_lsa_String(ndr
, "group_name", &r
->group_name
);
2823 ndr_print_uint32(ndr
, "rid", r
->rid
);
2824 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
2825 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2826 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2827 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2828 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2829 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2830 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2831 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2832 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2833 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2834 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2835 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2839 static enum ndr_err_code
ndr_push_netr_DELTA_RENAME(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_RENAME
*r
)
2841 if (ndr_flags
& NDR_SCALARS
) {
2842 NDR_CHECK(ndr_push_align(ndr
, 4));
2843 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2844 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2845 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2846 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2847 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2848 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2854 if (ndr_flags
& NDR_BUFFERS
) {
2855 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2856 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2857 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2858 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2859 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2860 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2862 return NDR_ERR_SUCCESS
;
2865 static enum ndr_err_code
ndr_pull_netr_DELTA_RENAME(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_RENAME
*r
)
2867 if (ndr_flags
& NDR_SCALARS
) {
2868 NDR_CHECK(ndr_pull_align(ndr
, 4));
2869 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2870 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2871 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2872 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2873 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2874 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2877 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2878 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2880 if (ndr_flags
& NDR_BUFFERS
) {
2881 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2882 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2883 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2884 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2885 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2886 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2888 return NDR_ERR_SUCCESS
;
2891 _PUBLIC_
void ndr_print_netr_DELTA_RENAME(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_RENAME
*r
)
2893 ndr_print_struct(ndr
, name
, "netr_DELTA_RENAME");
2895 ndr_print_lsa_String(ndr
, "OldName", &r
->OldName
);
2896 ndr_print_lsa_String(ndr
, "NewName", &r
->NewName
);
2897 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2898 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2899 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2900 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2901 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2902 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2903 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2904 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2908 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP_MEMBER
*r
)
2910 uint32_t cntr_rids_1
;
2911 uint32_t cntr_attribs_1
;
2912 if (ndr_flags
& NDR_SCALARS
) {
2913 NDR_CHECK(ndr_push_align(ndr
, 4));
2914 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
2915 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribs
));
2916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2918 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2922 if (ndr_flags
& NDR_BUFFERS
) {
2924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2925 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
2930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2931 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribs
[cntr_attribs_1
]));
2936 return NDR_ERR_SUCCESS
;
2939 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP_MEMBER
*r
)
2942 uint32_t cntr_rids_1
;
2943 TALLOC_CTX
*_mem_save_rids_0
;
2944 TALLOC_CTX
*_mem_save_rids_1
;
2945 uint32_t _ptr_attribs
;
2946 uint32_t cntr_attribs_1
;
2947 TALLOC_CTX
*_mem_save_attribs_0
;
2948 TALLOC_CTX
*_mem_save_attribs_1
;
2949 if (ndr_flags
& NDR_SCALARS
) {
2950 NDR_CHECK(ndr_pull_align(ndr
, 4));
2951 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
2953 NDR_PULL_ALLOC(ndr
, r
->rids
);
2957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribs
));
2959 NDR_PULL_ALLOC(ndr
, r
->attribs
);
2963 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_rids
));
2964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2965 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2966 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2967 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2969 if (ndr_flags
& NDR_BUFFERS
) {
2971 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2972 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2973 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
2974 NDR_PULL_ALLOC_N(ndr
, r
->rids
, ndr_get_array_size(ndr
, &r
->rids
));
2975 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2976 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2977 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2978 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
2980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
2981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
2984 _mem_save_attribs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2985 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2986 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribs
));
2987 NDR_PULL_ALLOC_N(ndr
, r
->attribs
, ndr_get_array_size(ndr
, &r
->attribs
));
2988 _mem_save_attribs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2989 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2990 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribs
[cntr_attribs_1
]));
2993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_1
, 0);
2994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_0
, 0);
2997 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->num_rids
));
3000 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attribs
, r
->num_rids
));
3003 return NDR_ERR_SUCCESS
;
3006 _PUBLIC_
void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP_MEMBER
*r
)
3008 uint32_t cntr_rids_1
;
3009 uint32_t cntr_attribs_1
;
3010 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP_MEMBER");
3012 ndr_print_ptr(ndr
, "rids", r
->rids
);
3015 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->num_rids
);
3017 for (cntr_rids_1
=0;cntr_rids_1
<r
->num_rids
;cntr_rids_1
++) {
3019 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
3020 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
3027 ndr_print_ptr(ndr
, "attribs", r
->attribs
);
3030 ndr
->print(ndr
, "%s: ARRAY(%d)", "attribs", (int)r
->num_rids
);
3032 for (cntr_attribs_1
=0;cntr_attribs_1
<r
->num_rids
;cntr_attribs_1
++) {
3034 if (asprintf(&idx_1
, "[%d]", cntr_attribs_1
) != -1) {
3035 ndr_print_uint32(ndr
, "attribs", r
->attribs
[cntr_attribs_1
]);
3042 ndr_print_uint32(ndr
, "num_rids", r
->num_rids
);
3043 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3044 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3045 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3046 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3050 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS
*r
)
3052 if (ndr_flags
& NDR_SCALARS
) {
3053 NDR_CHECK(ndr_push_align(ndr
, 4));
3054 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
3056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3057 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3058 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3059 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3060 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3061 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3067 if (ndr_flags
& NDR_BUFFERS
) {
3068 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3069 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3070 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3071 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3072 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3073 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3075 return NDR_ERR_SUCCESS
;
3078 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS
*r
)
3080 if (ndr_flags
& NDR_SCALARS
) {
3081 NDR_CHECK(ndr_pull_align(ndr
, 4));
3082 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3083 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
3084 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3085 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3086 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3087 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3088 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3089 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3090 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3091 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3093 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3095 if (ndr_flags
& NDR_BUFFERS
) {
3096 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3097 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3098 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3099 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3100 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3101 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3103 return NDR_ERR_SUCCESS
;
3106 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS
*r
)
3108 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS");
3110 ndr_print_lsa_String(ndr
, "alias_name", &r
->alias_name
);
3111 ndr_print_uint32(ndr
, "rid", r
->rid
);
3112 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3113 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3114 ndr_print_lsa_String(ndr
, "description", &r
->description
);
3115 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3116 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3117 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3118 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3119 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3120 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3121 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3125 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
3127 if (ndr_flags
& NDR_SCALARS
) {
3128 NDR_CHECK(ndr_push_align(ndr
, 4));
3129 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
3131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
3132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
3133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
3135 if (ndr_flags
& NDR_BUFFERS
) {
3136 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3138 return NDR_ERR_SUCCESS
;
3141 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS_MEMBER
*r
)
3143 if (ndr_flags
& NDR_SCALARS
) {
3144 NDR_CHECK(ndr_pull_align(ndr
, 4));
3145 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3146 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
3147 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
3148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
3149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
3151 if (ndr_flags
& NDR_BUFFERS
) {
3152 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3154 return NDR_ERR_SUCCESS
;
3157 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
3159 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS_MEMBER");
3161 ndr_print_lsa_SidArray(ndr
, "sids", &r
->sids
);
3162 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3163 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3164 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3165 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3169 static enum ndr_err_code
ndr_push_netr_QUOTA_LIMITS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_QUOTA_LIMITS
*r
)
3171 if (ndr_flags
& NDR_SCALARS
) {
3172 NDR_CHECK(ndr_push_align(ndr
, 4));
3173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagedpoollimit
));
3174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nonpagedpoollimit
));
3175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minimumworkingsetsize
));
3176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maximumworkingsetsize
));
3177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagefilelimit
));
3178 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timelimit
));
3180 if (ndr_flags
& NDR_BUFFERS
) {
3182 return NDR_ERR_SUCCESS
;
3185 static enum ndr_err_code
ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_QUOTA_LIMITS
*r
)
3187 if (ndr_flags
& NDR_SCALARS
) {
3188 NDR_CHECK(ndr_pull_align(ndr
, 4));
3189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagedpoollimit
));
3190 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nonpagedpoollimit
));
3191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minimumworkingsetsize
));
3192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maximumworkingsetsize
));
3193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagefilelimit
));
3194 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timelimit
));
3196 if (ndr_flags
& NDR_BUFFERS
) {
3198 return NDR_ERR_SUCCESS
;
3201 _PUBLIC_
void ndr_print_netr_QUOTA_LIMITS(struct ndr_print
*ndr
, const char *name
, const struct netr_QUOTA_LIMITS
*r
)
3203 ndr_print_struct(ndr
, name
, "netr_QUOTA_LIMITS");
3205 ndr_print_uint32(ndr
, "pagedpoollimit", r
->pagedpoollimit
);
3206 ndr_print_uint32(ndr
, "nonpagedpoollimit", r
->nonpagedpoollimit
);
3207 ndr_print_uint32(ndr
, "minimumworkingsetsize", r
->minimumworkingsetsize
);
3208 ndr_print_uint32(ndr
, "maximumworkingsetsize", r
->maximumworkingsetsize
);
3209 ndr_print_uint32(ndr
, "pagefilelimit", r
->pagefilelimit
);
3210 ndr_print_NTTIME(ndr
, "timelimit", r
->timelimit
);
3214 static enum ndr_err_code
ndr_push_netr_DELTA_POLICY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_POLICY
*r
)
3216 uint32_t cntr_eventauditoptions_1
;
3217 if (ndr_flags
& NDR_SCALARS
) {
3218 NDR_CHECK(ndr_push_align(ndr
, 4));
3219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlogsize
));
3220 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->auditretentionperiod
));
3221 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auditingmode
));
3222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
));
3223 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eventauditoptions
));
3224 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3225 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
3226 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3227 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
3228 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->db_create_time
));
3229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3230 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3231 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3232 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3233 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3234 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3240 if (ndr_flags
& NDR_BUFFERS
) {
3241 if (r
->eventauditoptions
) {
3242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
+ 1));
3243 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3247 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3249 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3251 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3252 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3253 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3254 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3255 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3257 return NDR_ERR_SUCCESS
;
3260 static enum ndr_err_code
ndr_pull_netr_DELTA_POLICY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_POLICY
*r
)
3262 uint32_t _ptr_eventauditoptions
;
3263 uint32_t cntr_eventauditoptions_1
;
3264 TALLOC_CTX
*_mem_save_eventauditoptions_0
;
3265 TALLOC_CTX
*_mem_save_eventauditoptions_1
;
3267 TALLOC_CTX
*_mem_save_sid_0
;
3268 if (ndr_flags
& NDR_SCALARS
) {
3269 NDR_CHECK(ndr_pull_align(ndr
, 4));
3270 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlogsize
));
3271 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->auditretentionperiod
));
3272 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auditingmode
));
3273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxauditeventcount
));
3274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eventauditoptions
));
3275 if (_ptr_eventauditoptions
) {
3276 NDR_PULL_ALLOC(ndr
, r
->eventauditoptions
);
3278 r
->eventauditoptions
= NULL
;
3280 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3281 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
3283 NDR_PULL_ALLOC(ndr
, r
->sid
);
3287 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3288 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
3289 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->db_create_time
));
3290 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3291 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3292 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3293 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3294 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3295 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3296 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3297 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3298 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3301 if (ndr_flags
& NDR_BUFFERS
) {
3302 if (r
->eventauditoptions
) {
3303 _mem_save_eventauditoptions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3304 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eventauditoptions
));
3306 NDR_PULL_ALLOC_N(ndr
, r
->eventauditoptions
, ndr_get_array_size(ndr
, &r
->eventauditoptions
));
3307 _mem_save_eventauditoptions_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3308 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3309 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3310 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_1
, 0);
3313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_0
, 0);
3315 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3317 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3318 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
3319 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
3322 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3323 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3324 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3325 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3326 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3327 if (r
->eventauditoptions
) {
3328 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eventauditoptions
, r
->maxauditeventcount
+ 1));
3331 return NDR_ERR_SUCCESS
;
3334 _PUBLIC_
void ndr_print_netr_DELTA_POLICY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_POLICY
*r
)
3336 uint32_t cntr_eventauditoptions_1
;
3337 ndr_print_struct(ndr
, name
, "netr_DELTA_POLICY");
3339 ndr_print_uint32(ndr
, "maxlogsize", r
->maxlogsize
);
3340 ndr_print_NTTIME(ndr
, "auditretentionperiod", r
->auditretentionperiod
);
3341 ndr_print_uint8(ndr
, "auditingmode", r
->auditingmode
);
3342 ndr_print_uint32(ndr
, "maxauditeventcount", r
->maxauditeventcount
);
3343 ndr_print_ptr(ndr
, "eventauditoptions", r
->eventauditoptions
);
3345 if (r
->eventauditoptions
) {
3346 ndr
->print(ndr
, "%s: ARRAY(%d)", "eventauditoptions", (int)r
->maxauditeventcount
+ 1);
3348 for (cntr_eventauditoptions_1
=0;cntr_eventauditoptions_1
<r
->maxauditeventcount
+ 1;cntr_eventauditoptions_1
++) {
3350 if (asprintf(&idx_1
, "[%d]", cntr_eventauditoptions_1
) != -1) {
3351 ndr_print_uint32(ndr
, "eventauditoptions", r
->eventauditoptions
[cntr_eventauditoptions_1
]);
3358 ndr_print_lsa_String(ndr
, "primary_domain_name", &r
->primary_domain_name
);
3359 ndr_print_ptr(ndr
, "sid", r
->sid
);
3362 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
3365 ndr_print_netr_QUOTA_LIMITS(ndr
, "quota_limits", &r
->quota_limits
);
3366 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
3367 ndr_print_NTTIME(ndr
, "db_create_time", r
->db_create_time
);
3368 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3369 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3370 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3371 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3372 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3373 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3374 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3375 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3376 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3377 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3381 static enum ndr_err_code
ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3383 uint32_t cntr_controller_names_1
;
3384 if (ndr_flags
& NDR_SCALARS
) {
3385 NDR_CHECK(ndr_push_align(ndr
, 4));
3386 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3388 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->controller_names
));
3389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3390 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3391 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3392 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3393 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3394 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->posix_offset
));
3396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3400 if (ndr_flags
& NDR_BUFFERS
) {
3401 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3402 if (r
->controller_names
) {
3403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3404 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3405 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3407 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3408 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3411 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3412 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3413 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3414 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3415 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3417 return NDR_ERR_SUCCESS
;
3420 static enum ndr_err_code
ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3422 uint32_t _ptr_controller_names
;
3423 uint32_t cntr_controller_names_1
;
3424 TALLOC_CTX
*_mem_save_controller_names_0
;
3425 TALLOC_CTX
*_mem_save_controller_names_1
;
3426 if (ndr_flags
& NDR_SCALARS
) {
3427 NDR_CHECK(ndr_pull_align(ndr
, 4));
3428 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_controllers
));
3430 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_controller_names
));
3431 if (_ptr_controller_names
) {
3432 NDR_PULL_ALLOC(ndr
, r
->controller_names
);
3434 r
->controller_names
= NULL
;
3436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3437 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3438 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3439 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3440 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3441 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->posix_offset
));
3443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3445 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3447 if (ndr_flags
& NDR_BUFFERS
) {
3448 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3449 if (r
->controller_names
) {
3450 _mem_save_controller_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3451 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3452 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->controller_names
));
3453 NDR_PULL_ALLOC_N(ndr
, r
->controller_names
, ndr_get_array_size(ndr
, &r
->controller_names
));
3454 _mem_save_controller_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3455 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3456 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3457 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3459 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3460 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_1
, 0);
3463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_0
, 0);
3465 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3466 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3467 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3468 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3469 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3470 if (r
->controller_names
) {
3471 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->controller_names
, r
->num_controllers
));
3474 return NDR_ERR_SUCCESS
;
3477 _PUBLIC_
void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3479 uint32_t cntr_controller_names_1
;
3480 ndr_print_struct(ndr
, name
, "netr_DELTA_TRUSTED_DOMAIN");
3482 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
3483 ndr_print_uint32(ndr
, "num_controllers", r
->num_controllers
);
3484 ndr_print_ptr(ndr
, "controller_names", r
->controller_names
);
3486 if (r
->controller_names
) {
3487 ndr
->print(ndr
, "%s: ARRAY(%d)", "controller_names", (int)r
->num_controllers
);
3489 for (cntr_controller_names_1
=0;cntr_controller_names_1
<r
->num_controllers
;cntr_controller_names_1
++) {
3491 if (asprintf(&idx_1
, "[%d]", cntr_controller_names_1
) != -1) {
3492 ndr_print_lsa_String(ndr
, "controller_names", &r
->controller_names
[cntr_controller_names_1
]);
3499 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3500 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3501 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3502 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3503 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3504 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3505 ndr_print_uint32(ndr
, "posix_offset", r
->posix_offset
);
3506 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3507 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3508 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3512 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_TRUST
*r
)
3514 if (ndr_flags
& NDR_SCALARS
) {
3515 NDR_CHECK(ndr_push_align(ndr
, 2));
3516 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3518 if (ndr_flags
& NDR_BUFFERS
) {
3520 return NDR_ERR_SUCCESS
;
3523 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_TRUST
*r
)
3525 if (ndr_flags
& NDR_SCALARS
) {
3526 NDR_CHECK(ndr_pull_align(ndr
, 2));
3527 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3529 if (ndr_flags
& NDR_BUFFERS
) {
3531 return NDR_ERR_SUCCESS
;
3534 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_TRUST
*r
)
3536 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_TRUST");
3538 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3542 static enum ndr_err_code
ndr_push_netr_DELTA_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ACCOUNT
*r
)
3544 uint32_t cntr_privilege_attrib_1
;
3545 uint32_t cntr_privilege_name_1
;
3546 if (ndr_flags
& NDR_SCALARS
) {
3547 NDR_CHECK(ndr_push_align(ndr
, 4));
3548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_control
));
3550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_attrib
));
3551 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_name
));
3552 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->system_flags
));
3554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3555 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3556 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3557 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3558 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3559 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3562 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3565 if (ndr_flags
& NDR_BUFFERS
) {
3566 if (r
->privilege_attrib
) {
3567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3568 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3572 if (r
->privilege_name
) {
3573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3574 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3575 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3577 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3578 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3581 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3582 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3583 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3584 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3585 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3587 return NDR_ERR_SUCCESS
;
3590 static enum ndr_err_code
ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ACCOUNT
*r
)
3592 uint32_t _ptr_privilege_attrib
;
3593 uint32_t cntr_privilege_attrib_1
;
3594 TALLOC_CTX
*_mem_save_privilege_attrib_0
;
3595 TALLOC_CTX
*_mem_save_privilege_attrib_1
;
3596 uint32_t _ptr_privilege_name
;
3597 uint32_t cntr_privilege_name_1
;
3598 TALLOC_CTX
*_mem_save_privilege_name_0
;
3599 TALLOC_CTX
*_mem_save_privilege_name_1
;
3600 if (ndr_flags
& NDR_SCALARS
) {
3601 NDR_CHECK(ndr_pull_align(ndr
, 4));
3602 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_entries
));
3603 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_control
));
3604 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_attrib
));
3605 if (_ptr_privilege_attrib
) {
3606 NDR_PULL_ALLOC(ndr
, r
->privilege_attrib
);
3608 r
->privilege_attrib
= NULL
;
3610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_name
));
3611 if (_ptr_privilege_name
) {
3612 NDR_PULL_ALLOC(ndr
, r
->privilege_name
);
3614 r
->privilege_name
= NULL
;
3616 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3617 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->system_flags
));
3618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3619 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3620 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3621 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3622 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3623 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3624 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3625 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3626 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3627 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3629 if (ndr_flags
& NDR_BUFFERS
) {
3630 if (r
->privilege_attrib
) {
3631 _mem_save_privilege_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3632 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3633 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_attrib
));
3634 NDR_PULL_ALLOC_N(ndr
, r
->privilege_attrib
, ndr_get_array_size(ndr
, &r
->privilege_attrib
));
3635 _mem_save_privilege_attrib_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3636 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3637 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_1
, 0);
3641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_0
, 0);
3643 if (r
->privilege_name
) {
3644 _mem_save_privilege_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3645 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3646 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_name
));
3647 NDR_PULL_ALLOC_N(ndr
, r
->privilege_name
, ndr_get_array_size(ndr
, &r
->privilege_name
));
3648 _mem_save_privilege_name_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3649 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3650 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3651 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3653 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3654 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_1
, 0);
3657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_0
, 0);
3659 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3660 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3661 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3662 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3663 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3664 if (r
->privilege_attrib
) {
3665 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_attrib
, r
->privilege_entries
));
3667 if (r
->privilege_name
) {
3668 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_name
, r
->privilege_entries
));
3671 return NDR_ERR_SUCCESS
;
3674 _PUBLIC_
void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ACCOUNT
*r
)
3676 uint32_t cntr_privilege_attrib_1
;
3677 uint32_t cntr_privilege_name_1
;
3678 ndr_print_struct(ndr
, name
, "netr_DELTA_ACCOUNT");
3680 ndr_print_uint32(ndr
, "privilege_entries", r
->privilege_entries
);
3681 ndr_print_uint32(ndr
, "privilege_control", r
->privilege_control
);
3682 ndr_print_ptr(ndr
, "privilege_attrib", r
->privilege_attrib
);
3684 if (r
->privilege_attrib
) {
3685 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_attrib", (int)r
->privilege_entries
);
3687 for (cntr_privilege_attrib_1
=0;cntr_privilege_attrib_1
<r
->privilege_entries
;cntr_privilege_attrib_1
++) {
3689 if (asprintf(&idx_1
, "[%d]", cntr_privilege_attrib_1
) != -1) {
3690 ndr_print_uint32(ndr
, "privilege_attrib", r
->privilege_attrib
[cntr_privilege_attrib_1
]);
3697 ndr_print_ptr(ndr
, "privilege_name", r
->privilege_name
);
3699 if (r
->privilege_name
) {
3700 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_name", (int)r
->privilege_entries
);
3702 for (cntr_privilege_name_1
=0;cntr_privilege_name_1
<r
->privilege_entries
;cntr_privilege_name_1
++) {
3704 if (asprintf(&idx_1
, "[%d]", cntr_privilege_name_1
) != -1) {
3705 ndr_print_lsa_String(ndr
, "privilege_name", &r
->privilege_name
[cntr_privilege_name_1
]);
3712 ndr_print_netr_QUOTA_LIMITS(ndr
, "quotalimits", &r
->quotalimits
);
3713 ndr_print_uint32(ndr
, "system_flags", r
->system_flags
);
3714 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3715 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3716 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3717 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3718 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3719 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3720 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3721 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3722 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3723 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3727 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3729 if (ndr_flags
& NDR_SCALARS
) {
3730 NDR_CHECK(ndr_push_align(ndr
, 2));
3731 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3733 if (ndr_flags
& NDR_BUFFERS
) {
3735 return NDR_ERR_SUCCESS
;
3738 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_ACCOUNT
*r
)
3740 if (ndr_flags
& NDR_SCALARS
) {
3741 NDR_CHECK(ndr_pull_align(ndr
, 2));
3742 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3744 if (ndr_flags
& NDR_BUFFERS
) {
3746 return NDR_ERR_SUCCESS
;
3749 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3751 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_ACCOUNT");
3753 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3757 static enum ndr_err_code
ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_SECRET
*r
)
3759 if (ndr_flags
& NDR_SCALARS
) {
3760 NDR_CHECK(ndr_push_align(ndr
, 2));
3761 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3763 if (ndr_flags
& NDR_BUFFERS
) {
3765 return NDR_ERR_SUCCESS
;
3768 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_SECRET
*r
)
3770 if (ndr_flags
& NDR_SCALARS
) {
3771 NDR_CHECK(ndr_pull_align(ndr
, 2));
3772 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3774 if (ndr_flags
& NDR_BUFFERS
) {
3776 return NDR_ERR_SUCCESS
;
3779 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_SECRET
*r
)
3781 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_SECRET");
3783 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3787 static enum ndr_err_code
ndr_push_netr_CIPHER_VALUE(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CIPHER_VALUE
*r
)
3789 if (ndr_flags
& NDR_SCALARS
) {
3790 NDR_CHECK(ndr_push_align(ndr
, 4));
3791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3793 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cipher_data
));
3795 if (ndr_flags
& NDR_BUFFERS
) {
3796 if (r
->cipher_data
) {
3797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3800 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, r
->len
));
3803 return NDR_ERR_SUCCESS
;
3806 static enum ndr_err_code
ndr_pull_netr_CIPHER_VALUE(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CIPHER_VALUE
*r
)
3808 uint32_t _ptr_cipher_data
;
3809 TALLOC_CTX
*_mem_save_cipher_data_0
;
3810 if (ndr_flags
& NDR_SCALARS
) {
3811 NDR_CHECK(ndr_pull_align(ndr
, 4));
3812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
3813 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlen
));
3814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cipher_data
));
3815 if (_ptr_cipher_data
) {
3816 NDR_PULL_ALLOC(ndr
, r
->cipher_data
);
3818 r
->cipher_data
= NULL
;
3821 if (ndr_flags
& NDR_BUFFERS
) {
3822 if (r
->cipher_data
) {
3823 _mem_save_cipher_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3824 NDR_PULL_SET_MEM_CTX(ndr
, r
->cipher_data
, 0);
3825 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cipher_data
));
3826 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->cipher_data
));
3827 if (ndr_get_array_length(ndr
, &r
->cipher_data
) > ndr_get_array_size(ndr
, &r
->cipher_data
)) {
3828 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->cipher_data
), ndr_get_array_length(ndr
, &r
->cipher_data
));
3830 NDR_PULL_ALLOC_N(ndr
, r
->cipher_data
, ndr_get_array_size(ndr
, &r
->cipher_data
));
3831 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, ndr_get_array_length(ndr
, &r
->cipher_data
)));
3832 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cipher_data_0
, 0);
3834 if (r
->cipher_data
) {
3835 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cipher_data
, r
->maxlen
));
3837 if (r
->cipher_data
) {
3838 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->cipher_data
, r
->len
));
3841 return NDR_ERR_SUCCESS
;
3844 _PUBLIC_
void ndr_print_netr_CIPHER_VALUE(struct ndr_print
*ndr
, const char *name
, const struct netr_CIPHER_VALUE
*r
)
3846 ndr_print_struct(ndr
, name
, "netr_CIPHER_VALUE");
3848 ndr_print_uint32(ndr
, "len", r
->len
);
3849 ndr_print_uint32(ndr
, "maxlen", r
->maxlen
);
3850 ndr_print_ptr(ndr
, "cipher_data", r
->cipher_data
);
3852 if (r
->cipher_data
) {
3853 ndr_print_array_uint8(ndr
, "cipher_data", r
->cipher_data
, r
->len
);
3859 static enum ndr_err_code
ndr_push_netr_DELTA_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_SECRET
*r
)
3861 if (ndr_flags
& NDR_SCALARS
) {
3862 NDR_CHECK(ndr_push_align(ndr
, 4));
3863 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3864 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->current_cipher_set_time
));
3865 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3866 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->old_cipher_set_time
));
3867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3868 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3869 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3870 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3871 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3872 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3873 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3878 if (ndr_flags
& NDR_BUFFERS
) {
3879 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3880 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3881 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3882 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3883 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3884 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3885 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3887 return NDR_ERR_SUCCESS
;
3890 static enum ndr_err_code
ndr_pull_netr_DELTA_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_SECRET
*r
)
3892 if (ndr_flags
& NDR_SCALARS
) {
3893 NDR_CHECK(ndr_pull_align(ndr
, 4));
3894 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3895 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->current_cipher_set_time
));
3896 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3897 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->old_cipher_set_time
));
3898 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3899 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3900 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3901 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3902 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3903 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3904 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3905 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3909 if (ndr_flags
& NDR_BUFFERS
) {
3910 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3911 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3912 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3913 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3914 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3915 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3916 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3918 return NDR_ERR_SUCCESS
;
3921 _PUBLIC_
void ndr_print_netr_DELTA_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_SECRET
*r
)
3923 ndr_print_struct(ndr
, name
, "netr_DELTA_SECRET");
3925 ndr_print_netr_CIPHER_VALUE(ndr
, "current_cipher", &r
->current_cipher
);
3926 ndr_print_NTTIME(ndr
, "current_cipher_set_time", r
->current_cipher_set_time
);
3927 ndr_print_netr_CIPHER_VALUE(ndr
, "old_cipher", &r
->old_cipher
);
3928 ndr_print_NTTIME(ndr
, "old_cipher_set_time", r
->old_cipher_set_time
);
3929 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3930 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3931 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3932 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3933 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3934 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3935 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3936 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3937 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3938 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3942 static enum ndr_err_code
ndr_push_netr_DeltaEnum(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DeltaEnum r
)
3944 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
3945 return NDR_ERR_SUCCESS
;
3948 static enum ndr_err_code
ndr_pull_netr_DeltaEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DeltaEnum
*r
)
3951 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
3953 return NDR_ERR_SUCCESS
;
3956 _PUBLIC_
void ndr_print_netr_DeltaEnum(struct ndr_print
*ndr
, const char *name
, enum netr_DeltaEnum r
)
3958 const char *val
= NULL
;
3961 case NETR_DELTA_DOMAIN
: val
= "NETR_DELTA_DOMAIN"; break;
3962 case NETR_DELTA_GROUP
: val
= "NETR_DELTA_GROUP"; break;
3963 case NETR_DELTA_DELETE_GROUP
: val
= "NETR_DELTA_DELETE_GROUP"; break;
3964 case NETR_DELTA_RENAME_GROUP
: val
= "NETR_DELTA_RENAME_GROUP"; break;
3965 case NETR_DELTA_USER
: val
= "NETR_DELTA_USER"; break;
3966 case NETR_DELTA_DELETE_USER
: val
= "NETR_DELTA_DELETE_USER"; break;
3967 case NETR_DELTA_RENAME_USER
: val
= "NETR_DELTA_RENAME_USER"; break;
3968 case NETR_DELTA_GROUP_MEMBER
: val
= "NETR_DELTA_GROUP_MEMBER"; break;
3969 case NETR_DELTA_ALIAS
: val
= "NETR_DELTA_ALIAS"; break;
3970 case NETR_DELTA_DELETE_ALIAS
: val
= "NETR_DELTA_DELETE_ALIAS"; break;
3971 case NETR_DELTA_RENAME_ALIAS
: val
= "NETR_DELTA_RENAME_ALIAS"; break;
3972 case NETR_DELTA_ALIAS_MEMBER
: val
= "NETR_DELTA_ALIAS_MEMBER"; break;
3973 case NETR_DELTA_POLICY
: val
= "NETR_DELTA_POLICY"; break;
3974 case NETR_DELTA_TRUSTED_DOMAIN
: val
= "NETR_DELTA_TRUSTED_DOMAIN"; break;
3975 case NETR_DELTA_DELETE_TRUST
: val
= "NETR_DELTA_DELETE_TRUST"; break;
3976 case NETR_DELTA_ACCOUNT
: val
= "NETR_DELTA_ACCOUNT"; break;
3977 case NETR_DELTA_DELETE_ACCOUNT
: val
= "NETR_DELTA_DELETE_ACCOUNT"; break;
3978 case NETR_DELTA_SECRET
: val
= "NETR_DELTA_SECRET"; break;
3979 case NETR_DELTA_DELETE_SECRET
: val
= "NETR_DELTA_DELETE_SECRET"; break;
3980 case NETR_DELTA_DELETE_GROUP2
: val
= "NETR_DELTA_DELETE_GROUP2"; break;
3981 case NETR_DELTA_DELETE_USER2
: val
= "NETR_DELTA_DELETE_USER2"; break;
3982 case NETR_DELTA_MODIFY_COUNT
: val
= "NETR_DELTA_MODIFY_COUNT"; break;
3984 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3987 static enum ndr_err_code
ndr_push_netr_DELTA_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_UNION
*r
)
3989 if (ndr_flags
& NDR_SCALARS
) {
3990 int level
= ndr_push_get_switch_value(ndr
, r
);
3991 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
3993 case NETR_DELTA_DOMAIN
: {
3994 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
3997 case NETR_DELTA_GROUP
: {
3998 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group
));
4001 case NETR_DELTA_DELETE_GROUP
: {
4004 case NETR_DELTA_RENAME_GROUP
: {
4005 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_group
));
4008 case NETR_DELTA_USER
: {
4009 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
4012 case NETR_DELTA_DELETE_USER
: {
4015 case NETR_DELTA_RENAME_USER
: {
4016 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_user
));
4019 case NETR_DELTA_GROUP_MEMBER
: {
4020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_member
));
4023 case NETR_DELTA_ALIAS
: {
4024 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias
));
4027 case NETR_DELTA_DELETE_ALIAS
: {
4030 case NETR_DELTA_RENAME_ALIAS
: {
4031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_alias
));
4034 case NETR_DELTA_ALIAS_MEMBER
: {
4035 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias_member
));
4038 case NETR_DELTA_POLICY
: {
4039 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
4042 case NETR_DELTA_TRUSTED_DOMAIN
: {
4043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain
));
4046 case NETR_DELTA_DELETE_TRUST
: {
4047 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4050 case NETR_DELTA_ACCOUNT
: {
4051 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account
));
4054 case NETR_DELTA_DELETE_ACCOUNT
: {
4055 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4058 case NETR_DELTA_SECRET
: {
4059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secret
));
4062 case NETR_DELTA_DELETE_SECRET
: {
4063 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4066 case NETR_DELTA_DELETE_GROUP2
: {
4067 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_group
));
4070 case NETR_DELTA_DELETE_USER2
: {
4071 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_user
));
4074 case NETR_DELTA_MODIFY_COUNT
: {
4075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->modified_count
));
4079 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4082 if (ndr_flags
& NDR_BUFFERS
) {
4083 int level
= ndr_push_get_switch_value(ndr
, r
);
4085 case NETR_DELTA_DOMAIN
:
4087 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4091 case NETR_DELTA_GROUP
:
4093 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4097 case NETR_DELTA_DELETE_GROUP
:
4100 case NETR_DELTA_RENAME_GROUP
:
4101 if (r
->rename_group
) {
4102 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4106 case NETR_DELTA_USER
:
4108 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4112 case NETR_DELTA_DELETE_USER
:
4115 case NETR_DELTA_RENAME_USER
:
4116 if (r
->rename_user
) {
4117 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4121 case NETR_DELTA_GROUP_MEMBER
:
4122 if (r
->group_member
) {
4123 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4127 case NETR_DELTA_ALIAS
:
4129 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4133 case NETR_DELTA_DELETE_ALIAS
:
4136 case NETR_DELTA_RENAME_ALIAS
:
4137 if (r
->rename_alias
) {
4138 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4142 case NETR_DELTA_ALIAS_MEMBER
:
4143 if (r
->alias_member
) {
4144 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4148 case NETR_DELTA_POLICY
:
4150 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4154 case NETR_DELTA_TRUSTED_DOMAIN
:
4155 if (r
->trusted_domain
) {
4156 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4160 case NETR_DELTA_DELETE_TRUST
:
4163 case NETR_DELTA_ACCOUNT
:
4165 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4169 case NETR_DELTA_DELETE_ACCOUNT
:
4172 case NETR_DELTA_SECRET
:
4174 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4178 case NETR_DELTA_DELETE_SECRET
:
4181 case NETR_DELTA_DELETE_GROUP2
:
4182 if (r
->delete_group
) {
4183 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4187 case NETR_DELTA_DELETE_USER2
:
4188 if (r
->delete_user
) {
4189 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4193 case NETR_DELTA_MODIFY_COUNT
:
4194 if (r
->modified_count
) {
4195 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->modified_count
));
4200 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4203 return NDR_ERR_SUCCESS
;
4206 static enum ndr_err_code
ndr_pull_netr_DELTA_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_UNION
*r
)
4210 TALLOC_CTX
*_mem_save_domain_0
;
4211 TALLOC_CTX
*_mem_save_group_0
;
4212 TALLOC_CTX
*_mem_save_rename_group_0
;
4213 TALLOC_CTX
*_mem_save_user_0
;
4214 TALLOC_CTX
*_mem_save_rename_user_0
;
4215 TALLOC_CTX
*_mem_save_group_member_0
;
4216 TALLOC_CTX
*_mem_save_alias_0
;
4217 TALLOC_CTX
*_mem_save_rename_alias_0
;
4218 TALLOC_CTX
*_mem_save_alias_member_0
;
4219 TALLOC_CTX
*_mem_save_policy_0
;
4220 TALLOC_CTX
*_mem_save_trusted_domain_0
;
4221 TALLOC_CTX
*_mem_save_account_0
;
4222 TALLOC_CTX
*_mem_save_secret_0
;
4223 TALLOC_CTX
*_mem_save_delete_group_0
;
4224 TALLOC_CTX
*_mem_save_delete_user_0
;
4225 TALLOC_CTX
*_mem_save_modified_count_0
;
4226 level
= ndr_pull_get_switch_value(ndr
, r
);
4227 if (ndr_flags
& NDR_SCALARS
) {
4228 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4229 if (_level
!= level
) {
4230 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4233 case NETR_DELTA_DOMAIN
: {
4234 uint32_t _ptr_domain
;
4235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
4237 NDR_PULL_ALLOC(ndr
, r
->domain
);
4243 case NETR_DELTA_GROUP
: {
4244 uint32_t _ptr_group
;
4245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group
));
4247 NDR_PULL_ALLOC(ndr
, r
->group
);
4253 case NETR_DELTA_DELETE_GROUP
: {
4256 case NETR_DELTA_RENAME_GROUP
: {
4257 uint32_t _ptr_rename_group
;
4258 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_group
));
4259 if (_ptr_rename_group
) {
4260 NDR_PULL_ALLOC(ndr
, r
->rename_group
);
4262 r
->rename_group
= NULL
;
4266 case NETR_DELTA_USER
: {
4268 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
4270 NDR_PULL_ALLOC(ndr
, r
->user
);
4276 case NETR_DELTA_DELETE_USER
: {
4279 case NETR_DELTA_RENAME_USER
: {
4280 uint32_t _ptr_rename_user
;
4281 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_user
));
4282 if (_ptr_rename_user
) {
4283 NDR_PULL_ALLOC(ndr
, r
->rename_user
);
4285 r
->rename_user
= NULL
;
4289 case NETR_DELTA_GROUP_MEMBER
: {
4290 uint32_t _ptr_group_member
;
4291 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_member
));
4292 if (_ptr_group_member
) {
4293 NDR_PULL_ALLOC(ndr
, r
->group_member
);
4295 r
->group_member
= NULL
;
4299 case NETR_DELTA_ALIAS
: {
4300 uint32_t _ptr_alias
;
4301 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias
));
4303 NDR_PULL_ALLOC(ndr
, r
->alias
);
4309 case NETR_DELTA_DELETE_ALIAS
: {
4312 case NETR_DELTA_RENAME_ALIAS
: {
4313 uint32_t _ptr_rename_alias
;
4314 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_alias
));
4315 if (_ptr_rename_alias
) {
4316 NDR_PULL_ALLOC(ndr
, r
->rename_alias
);
4318 r
->rename_alias
= NULL
;
4322 case NETR_DELTA_ALIAS_MEMBER
: {
4323 uint32_t _ptr_alias_member
;
4324 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias_member
));
4325 if (_ptr_alias_member
) {
4326 NDR_PULL_ALLOC(ndr
, r
->alias_member
);
4328 r
->alias_member
= NULL
;
4332 case NETR_DELTA_POLICY
: {
4333 uint32_t _ptr_policy
;
4334 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
4336 NDR_PULL_ALLOC(ndr
, r
->policy
);
4342 case NETR_DELTA_TRUSTED_DOMAIN
: {
4343 uint32_t _ptr_trusted_domain
;
4344 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain
));
4345 if (_ptr_trusted_domain
) {
4346 NDR_PULL_ALLOC(ndr
, r
->trusted_domain
);
4348 r
->trusted_domain
= NULL
;
4352 case NETR_DELTA_DELETE_TRUST
: {
4353 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4356 case NETR_DELTA_ACCOUNT
: {
4357 uint32_t _ptr_account
;
4358 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account
));
4360 NDR_PULL_ALLOC(ndr
, r
->account
);
4366 case NETR_DELTA_DELETE_ACCOUNT
: {
4367 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4370 case NETR_DELTA_SECRET
: {
4371 uint32_t _ptr_secret
;
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secret
));
4374 NDR_PULL_ALLOC(ndr
, r
->secret
);
4380 case NETR_DELTA_DELETE_SECRET
: {
4381 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4384 case NETR_DELTA_DELETE_GROUP2
: {
4385 uint32_t _ptr_delete_group
;
4386 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_group
));
4387 if (_ptr_delete_group
) {
4388 NDR_PULL_ALLOC(ndr
, r
->delete_group
);
4390 r
->delete_group
= NULL
;
4394 case NETR_DELTA_DELETE_USER2
: {
4395 uint32_t _ptr_delete_user
;
4396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_user
));
4397 if (_ptr_delete_user
) {
4398 NDR_PULL_ALLOC(ndr
, r
->delete_user
);
4400 r
->delete_user
= NULL
;
4404 case NETR_DELTA_MODIFY_COUNT
: {
4405 uint32_t _ptr_modified_count
;
4406 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_modified_count
));
4407 if (_ptr_modified_count
) {
4408 NDR_PULL_ALLOC(ndr
, r
->modified_count
);
4410 r
->modified_count
= NULL
;
4415 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4418 if (ndr_flags
& NDR_BUFFERS
) {
4420 case NETR_DELTA_DOMAIN
:
4422 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4423 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4424 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4429 case NETR_DELTA_GROUP
:
4431 _mem_save_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4432 NDR_PULL_SET_MEM_CTX(ndr
, r
->group
, 0);
4433 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_0
, 0);
4438 case NETR_DELTA_DELETE_GROUP
:
4441 case NETR_DELTA_RENAME_GROUP
:
4442 if (r
->rename_group
) {
4443 _mem_save_rename_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4444 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_group
, 0);
4445 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4446 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_group_0
, 0);
4450 case NETR_DELTA_USER
:
4452 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4453 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
4454 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
4459 case NETR_DELTA_DELETE_USER
:
4462 case NETR_DELTA_RENAME_USER
:
4463 if (r
->rename_user
) {
4464 _mem_save_rename_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4465 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_user
, 0);
4466 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_user_0
, 0);
4471 case NETR_DELTA_GROUP_MEMBER
:
4472 if (r
->group_member
) {
4473 _mem_save_group_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4474 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_member
, 0);
4475 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4476 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_member_0
, 0);
4480 case NETR_DELTA_ALIAS
:
4482 _mem_save_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4483 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias
, 0);
4484 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_0
, 0);
4489 case NETR_DELTA_DELETE_ALIAS
:
4492 case NETR_DELTA_RENAME_ALIAS
:
4493 if (r
->rename_alias
) {
4494 _mem_save_rename_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4495 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_alias
, 0);
4496 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_alias_0
, 0);
4501 case NETR_DELTA_ALIAS_MEMBER
:
4502 if (r
->alias_member
) {
4503 _mem_save_alias_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4504 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias_member
, 0);
4505 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_member_0
, 0);
4510 case NETR_DELTA_POLICY
:
4512 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4513 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
4514 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
4519 case NETR_DELTA_TRUSTED_DOMAIN
:
4520 if (r
->trusted_domain
) {
4521 _mem_save_trusted_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4522 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain
, 0);
4523 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_0
, 0);
4528 case NETR_DELTA_DELETE_TRUST
:
4531 case NETR_DELTA_ACCOUNT
:
4533 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4534 NDR_PULL_SET_MEM_CTX(ndr
, r
->account
, 0);
4535 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, 0);
4540 case NETR_DELTA_DELETE_ACCOUNT
:
4543 case NETR_DELTA_SECRET
:
4545 _mem_save_secret_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4546 NDR_PULL_SET_MEM_CTX(ndr
, r
->secret
, 0);
4547 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secret_0
, 0);
4552 case NETR_DELTA_DELETE_SECRET
:
4555 case NETR_DELTA_DELETE_GROUP2
:
4556 if (r
->delete_group
) {
4557 _mem_save_delete_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4558 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_group
, 0);
4559 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_group_0
, 0);
4564 case NETR_DELTA_DELETE_USER2
:
4565 if (r
->delete_user
) {
4566 _mem_save_delete_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4567 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_user
, 0);
4568 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_user_0
, 0);
4573 case NETR_DELTA_MODIFY_COUNT
:
4574 if (r
->modified_count
) {
4575 _mem_save_modified_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4576 NDR_PULL_SET_MEM_CTX(ndr
, r
->modified_count
, 0);
4577 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->modified_count
));
4578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_modified_count_0
, 0);
4583 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4586 return NDR_ERR_SUCCESS
;
4589 _PUBLIC_
void ndr_print_netr_DELTA_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_UNION
*r
)
4592 level
= ndr_print_get_switch_value(ndr
, r
);
4593 ndr_print_union(ndr
, name
, level
, "netr_DELTA_UNION");
4595 case NETR_DELTA_DOMAIN
:
4596 ndr_print_ptr(ndr
, "domain", r
->domain
);
4599 ndr_print_netr_DELTA_DOMAIN(ndr
, "domain", r
->domain
);
4604 case NETR_DELTA_GROUP
:
4605 ndr_print_ptr(ndr
, "group", r
->group
);
4608 ndr_print_netr_DELTA_GROUP(ndr
, "group", r
->group
);
4613 case NETR_DELTA_DELETE_GROUP
:
4616 case NETR_DELTA_RENAME_GROUP
:
4617 ndr_print_ptr(ndr
, "rename_group", r
->rename_group
);
4619 if (r
->rename_group
) {
4620 ndr_print_netr_DELTA_RENAME(ndr
, "rename_group", r
->rename_group
);
4625 case NETR_DELTA_USER
:
4626 ndr_print_ptr(ndr
, "user", r
->user
);
4629 ndr_print_netr_DELTA_USER(ndr
, "user", r
->user
);
4634 case NETR_DELTA_DELETE_USER
:
4637 case NETR_DELTA_RENAME_USER
:
4638 ndr_print_ptr(ndr
, "rename_user", r
->rename_user
);
4640 if (r
->rename_user
) {
4641 ndr_print_netr_DELTA_RENAME(ndr
, "rename_user", r
->rename_user
);
4646 case NETR_DELTA_GROUP_MEMBER
:
4647 ndr_print_ptr(ndr
, "group_member", r
->group_member
);
4649 if (r
->group_member
) {
4650 ndr_print_netr_DELTA_GROUP_MEMBER(ndr
, "group_member", r
->group_member
);
4655 case NETR_DELTA_ALIAS
:
4656 ndr_print_ptr(ndr
, "alias", r
->alias
);
4659 ndr_print_netr_DELTA_ALIAS(ndr
, "alias", r
->alias
);
4664 case NETR_DELTA_DELETE_ALIAS
:
4667 case NETR_DELTA_RENAME_ALIAS
:
4668 ndr_print_ptr(ndr
, "rename_alias", r
->rename_alias
);
4670 if (r
->rename_alias
) {
4671 ndr_print_netr_DELTA_RENAME(ndr
, "rename_alias", r
->rename_alias
);
4676 case NETR_DELTA_ALIAS_MEMBER
:
4677 ndr_print_ptr(ndr
, "alias_member", r
->alias_member
);
4679 if (r
->alias_member
) {
4680 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr
, "alias_member", r
->alias_member
);
4685 case NETR_DELTA_POLICY
:
4686 ndr_print_ptr(ndr
, "policy", r
->policy
);
4689 ndr_print_netr_DELTA_POLICY(ndr
, "policy", r
->policy
);
4694 case NETR_DELTA_TRUSTED_DOMAIN
:
4695 ndr_print_ptr(ndr
, "trusted_domain", r
->trusted_domain
);
4697 if (r
->trusted_domain
) {
4698 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr
, "trusted_domain", r
->trusted_domain
);
4703 case NETR_DELTA_DELETE_TRUST
:
4704 ndr_print_netr_DELTA_DELETE_TRUST(ndr
, "delete_trust", &r
->delete_trust
);
4707 case NETR_DELTA_ACCOUNT
:
4708 ndr_print_ptr(ndr
, "account", r
->account
);
4711 ndr_print_netr_DELTA_ACCOUNT(ndr
, "account", r
->account
);
4716 case NETR_DELTA_DELETE_ACCOUNT
:
4717 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr
, "delete_account", &r
->delete_account
);
4720 case NETR_DELTA_SECRET
:
4721 ndr_print_ptr(ndr
, "secret", r
->secret
);
4724 ndr_print_netr_DELTA_SECRET(ndr
, "secret", r
->secret
);
4729 case NETR_DELTA_DELETE_SECRET
:
4730 ndr_print_netr_DELTA_DELETE_SECRET(ndr
, "delete_secret", &r
->delete_secret
);
4733 case NETR_DELTA_DELETE_GROUP2
:
4734 ndr_print_ptr(ndr
, "delete_group", r
->delete_group
);
4736 if (r
->delete_group
) {
4737 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_group", r
->delete_group
);
4742 case NETR_DELTA_DELETE_USER2
:
4743 ndr_print_ptr(ndr
, "delete_user", r
->delete_user
);
4745 if (r
->delete_user
) {
4746 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_user", r
->delete_user
);
4751 case NETR_DELTA_MODIFY_COUNT
:
4752 ndr_print_ptr(ndr
, "modified_count", r
->modified_count
);
4754 if (r
->modified_count
) {
4755 ndr_print_udlong(ndr
, "modified_count", *r
->modified_count
);
4761 ndr_print_bad_level(ndr
, name
, level
);
4765 static enum ndr_err_code
ndr_push_netr_DELTA_ID_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_ID_UNION
*r
)
4767 if (ndr_flags
& NDR_SCALARS
) {
4768 int level
= ndr_push_get_switch_value(ndr
, r
);
4769 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4771 case NETR_DELTA_DOMAIN
: {
4772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4775 case NETR_DELTA_GROUP
: {
4776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4779 case NETR_DELTA_DELETE_GROUP
: {
4780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4783 case NETR_DELTA_RENAME_GROUP
: {
4784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4787 case NETR_DELTA_USER
: {
4788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4791 case NETR_DELTA_DELETE_USER
: {
4792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4795 case NETR_DELTA_RENAME_USER
: {
4796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4799 case NETR_DELTA_GROUP_MEMBER
: {
4800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4803 case NETR_DELTA_ALIAS
: {
4804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4807 case NETR_DELTA_DELETE_ALIAS
: {
4808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4811 case NETR_DELTA_RENAME_ALIAS
: {
4812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4815 case NETR_DELTA_ALIAS_MEMBER
: {
4816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4819 case NETR_DELTA_POLICY
: {
4820 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4823 case NETR_DELTA_TRUSTED_DOMAIN
: {
4824 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4827 case NETR_DELTA_DELETE_TRUST
: {
4828 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4831 case NETR_DELTA_ACCOUNT
: {
4832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4835 case NETR_DELTA_DELETE_ACCOUNT
: {
4836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4839 case NETR_DELTA_SECRET
: {
4840 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4843 case NETR_DELTA_DELETE_SECRET
: {
4844 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4847 case NETR_DELTA_DELETE_GROUP2
: {
4848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4851 case NETR_DELTA_DELETE_USER2
: {
4852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4855 case NETR_DELTA_MODIFY_COUNT
: {
4859 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4862 if (ndr_flags
& NDR_BUFFERS
) {
4863 int level
= ndr_push_get_switch_value(ndr
, r
);
4865 case NETR_DELTA_DOMAIN
:
4868 case NETR_DELTA_GROUP
:
4871 case NETR_DELTA_DELETE_GROUP
:
4874 case NETR_DELTA_RENAME_GROUP
:
4877 case NETR_DELTA_USER
:
4880 case NETR_DELTA_DELETE_USER
:
4883 case NETR_DELTA_RENAME_USER
:
4886 case NETR_DELTA_GROUP_MEMBER
:
4889 case NETR_DELTA_ALIAS
:
4892 case NETR_DELTA_DELETE_ALIAS
:
4895 case NETR_DELTA_RENAME_ALIAS
:
4898 case NETR_DELTA_ALIAS_MEMBER
:
4901 case NETR_DELTA_POLICY
:
4903 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4907 case NETR_DELTA_TRUSTED_DOMAIN
:
4909 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4913 case NETR_DELTA_DELETE_TRUST
:
4915 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4919 case NETR_DELTA_ACCOUNT
:
4921 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4925 case NETR_DELTA_DELETE_ACCOUNT
:
4927 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4931 case NETR_DELTA_SECRET
:
4933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4936 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4940 case NETR_DELTA_DELETE_SECRET
:
4942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4945 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4949 case NETR_DELTA_DELETE_GROUP2
:
4952 case NETR_DELTA_DELETE_USER2
:
4955 case NETR_DELTA_MODIFY_COUNT
:
4959 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4962 return NDR_ERR_SUCCESS
;
4965 static enum ndr_err_code
ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_ID_UNION
*r
)
4969 TALLOC_CTX
*_mem_save_sid_0
;
4970 TALLOC_CTX
*_mem_save_name_0
;
4971 level
= ndr_pull_get_switch_value(ndr
, r
);
4972 if (ndr_flags
& NDR_SCALARS
) {
4973 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4974 if (_level
!= level
) {
4975 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4978 case NETR_DELTA_DOMAIN
: {
4979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4982 case NETR_DELTA_GROUP
: {
4983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4986 case NETR_DELTA_DELETE_GROUP
: {
4987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4990 case NETR_DELTA_RENAME_GROUP
: {
4991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4994 case NETR_DELTA_USER
: {
4995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4998 case NETR_DELTA_DELETE_USER
: {
4999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5002 case NETR_DELTA_RENAME_USER
: {
5003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5006 case NETR_DELTA_GROUP_MEMBER
: {
5007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5010 case NETR_DELTA_ALIAS
: {
5011 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5014 case NETR_DELTA_DELETE_ALIAS
: {
5015 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5018 case NETR_DELTA_RENAME_ALIAS
: {
5019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5022 case NETR_DELTA_ALIAS_MEMBER
: {
5023 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5026 case NETR_DELTA_POLICY
: {
5028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5030 NDR_PULL_ALLOC(ndr
, r
->sid
);
5036 case NETR_DELTA_TRUSTED_DOMAIN
: {
5038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5040 NDR_PULL_ALLOC(ndr
, r
->sid
);
5046 case NETR_DELTA_DELETE_TRUST
: {
5048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5050 NDR_PULL_ALLOC(ndr
, r
->sid
);
5056 case NETR_DELTA_ACCOUNT
: {
5058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5060 NDR_PULL_ALLOC(ndr
, r
->sid
);
5066 case NETR_DELTA_DELETE_ACCOUNT
: {
5068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5070 NDR_PULL_ALLOC(ndr
, r
->sid
);
5076 case NETR_DELTA_SECRET
: {
5078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5080 NDR_PULL_ALLOC(ndr
, r
->name
);
5086 case NETR_DELTA_DELETE_SECRET
: {
5088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5090 NDR_PULL_ALLOC(ndr
, r
->name
);
5096 case NETR_DELTA_DELETE_GROUP2
: {
5097 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5100 case NETR_DELTA_DELETE_USER2
: {
5101 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5104 case NETR_DELTA_MODIFY_COUNT
: {
5108 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5111 if (ndr_flags
& NDR_BUFFERS
) {
5113 case NETR_DELTA_DOMAIN
:
5116 case NETR_DELTA_GROUP
:
5119 case NETR_DELTA_DELETE_GROUP
:
5122 case NETR_DELTA_RENAME_GROUP
:
5125 case NETR_DELTA_USER
:
5128 case NETR_DELTA_DELETE_USER
:
5131 case NETR_DELTA_RENAME_USER
:
5134 case NETR_DELTA_GROUP_MEMBER
:
5137 case NETR_DELTA_ALIAS
:
5140 case NETR_DELTA_DELETE_ALIAS
:
5143 case NETR_DELTA_RENAME_ALIAS
:
5146 case NETR_DELTA_ALIAS_MEMBER
:
5149 case NETR_DELTA_POLICY
:
5151 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5152 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5153 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5158 case NETR_DELTA_TRUSTED_DOMAIN
:
5160 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5161 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5162 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5167 case NETR_DELTA_DELETE_TRUST
:
5169 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5170 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5171 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5176 case NETR_DELTA_ACCOUNT
:
5178 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5179 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5180 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5185 case NETR_DELTA_DELETE_ACCOUNT
:
5187 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5188 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5189 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5190 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5194 case NETR_DELTA_SECRET
:
5196 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5197 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5198 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5199 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5200 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5201 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
5203 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5204 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5209 case NETR_DELTA_DELETE_SECRET
:
5211 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5212 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5213 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5214 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5215 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5216 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
5218 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5219 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5224 case NETR_DELTA_DELETE_GROUP2
:
5227 case NETR_DELTA_DELETE_USER2
:
5230 case NETR_DELTA_MODIFY_COUNT
:
5234 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5237 return NDR_ERR_SUCCESS
;
5240 _PUBLIC_
void ndr_print_netr_DELTA_ID_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_ID_UNION
*r
)
5243 level
= ndr_print_get_switch_value(ndr
, r
);
5244 ndr_print_union(ndr
, name
, level
, "netr_DELTA_ID_UNION");
5246 case NETR_DELTA_DOMAIN
:
5247 ndr_print_uint32(ndr
, "rid", r
->rid
);
5250 case NETR_DELTA_GROUP
:
5251 ndr_print_uint32(ndr
, "rid", r
->rid
);
5254 case NETR_DELTA_DELETE_GROUP
:
5255 ndr_print_uint32(ndr
, "rid", r
->rid
);
5258 case NETR_DELTA_RENAME_GROUP
:
5259 ndr_print_uint32(ndr
, "rid", r
->rid
);
5262 case NETR_DELTA_USER
:
5263 ndr_print_uint32(ndr
, "rid", r
->rid
);
5266 case NETR_DELTA_DELETE_USER
:
5267 ndr_print_uint32(ndr
, "rid", r
->rid
);
5270 case NETR_DELTA_RENAME_USER
:
5271 ndr_print_uint32(ndr
, "rid", r
->rid
);
5274 case NETR_DELTA_GROUP_MEMBER
:
5275 ndr_print_uint32(ndr
, "rid", r
->rid
);
5278 case NETR_DELTA_ALIAS
:
5279 ndr_print_uint32(ndr
, "rid", r
->rid
);
5282 case NETR_DELTA_DELETE_ALIAS
:
5283 ndr_print_uint32(ndr
, "rid", r
->rid
);
5286 case NETR_DELTA_RENAME_ALIAS
:
5287 ndr_print_uint32(ndr
, "rid", r
->rid
);
5290 case NETR_DELTA_ALIAS_MEMBER
:
5291 ndr_print_uint32(ndr
, "rid", r
->rid
);
5294 case NETR_DELTA_POLICY
:
5295 ndr_print_ptr(ndr
, "sid", r
->sid
);
5298 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5303 case NETR_DELTA_TRUSTED_DOMAIN
:
5304 ndr_print_ptr(ndr
, "sid", r
->sid
);
5307 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5312 case NETR_DELTA_DELETE_TRUST
:
5313 ndr_print_ptr(ndr
, "sid", r
->sid
);
5316 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5321 case NETR_DELTA_ACCOUNT
:
5322 ndr_print_ptr(ndr
, "sid", r
->sid
);
5325 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5330 case NETR_DELTA_DELETE_ACCOUNT
:
5331 ndr_print_ptr(ndr
, "sid", r
->sid
);
5334 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5339 case NETR_DELTA_SECRET
:
5340 ndr_print_ptr(ndr
, "name", r
->name
);
5343 ndr_print_string(ndr
, "name", r
->name
);
5348 case NETR_DELTA_DELETE_SECRET
:
5349 ndr_print_ptr(ndr
, "name", r
->name
);
5352 ndr_print_string(ndr
, "name", r
->name
);
5357 case NETR_DELTA_DELETE_GROUP2
:
5358 ndr_print_uint32(ndr
, "rid", r
->rid
);
5361 case NETR_DELTA_DELETE_USER2
:
5362 ndr_print_uint32(ndr
, "rid", r
->rid
);
5365 case NETR_DELTA_MODIFY_COUNT
:
5369 ndr_print_bad_level(ndr
, name
, level
);
5373 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM
*r
)
5375 if (ndr_flags
& NDR_SCALARS
) {
5376 NDR_CHECK(ndr_push_align(ndr
, 4));
5377 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, r
->delta_type
));
5378 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5379 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5380 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5381 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5383 if (ndr_flags
& NDR_BUFFERS
) {
5384 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5385 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5387 return NDR_ERR_SUCCESS
;
5390 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM
*r
)
5392 if (ndr_flags
& NDR_SCALARS
) {
5393 NDR_CHECK(ndr_pull_align(ndr
, 4));
5394 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr
, NDR_SCALARS
, &r
->delta_type
));
5395 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5396 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5397 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5398 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5400 if (ndr_flags
& NDR_BUFFERS
) {
5401 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5402 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5404 return NDR_ERR_SUCCESS
;
5407 _PUBLIC_
void ndr_print_netr_DELTA_ENUM(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM
*r
)
5409 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM");
5411 ndr_print_netr_DeltaEnum(ndr
, "delta_type", r
->delta_type
);
5412 ndr_print_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
);
5413 ndr_print_netr_DELTA_ID_UNION(ndr
, "delta_id_union", &r
->delta_id_union
);
5414 ndr_print_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
);
5415 ndr_print_netr_DELTA_UNION(ndr
, "delta_union", &r
->delta_union
);
5419 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5421 uint32_t cntr_delta_enum_1
;
5422 if (ndr_flags
& NDR_SCALARS
) {
5423 NDR_CHECK(ndr_push_align(ndr
, 4));
5424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5425 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delta_enum
));
5427 if (ndr_flags
& NDR_BUFFERS
) {
5428 if (r
->delta_enum
) {
5429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5430 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5431 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5433 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5434 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5438 return NDR_ERR_SUCCESS
;
5441 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM_ARRAY
*r
)
5443 uint32_t _ptr_delta_enum
;
5444 uint32_t cntr_delta_enum_1
;
5445 TALLOC_CTX
*_mem_save_delta_enum_0
;
5446 TALLOC_CTX
*_mem_save_delta_enum_1
;
5447 if (ndr_flags
& NDR_SCALARS
) {
5448 NDR_CHECK(ndr_pull_align(ndr
, 4));
5449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_deltas
));
5450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum
));
5451 if (_ptr_delta_enum
) {
5452 NDR_PULL_ALLOC(ndr
, r
->delta_enum
);
5454 r
->delta_enum
= NULL
;
5457 if (ndr_flags
& NDR_BUFFERS
) {
5458 if (r
->delta_enum
) {
5459 _mem_save_delta_enum_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5460 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5461 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->delta_enum
));
5462 NDR_PULL_ALLOC_N(ndr
, r
->delta_enum
, ndr_get_array_size(ndr
, &r
->delta_enum
));
5463 _mem_save_delta_enum_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5464 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5465 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5466 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5468 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5469 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_1
, 0);
5472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_0
, 0);
5474 if (r
->delta_enum
) {
5475 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->delta_enum
, r
->num_deltas
));
5478 return NDR_ERR_SUCCESS
;
5481 _PUBLIC_
void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5483 uint32_t cntr_delta_enum_1
;
5484 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM_ARRAY");
5486 ndr_print_uint32(ndr
, "num_deltas", r
->num_deltas
);
5487 ndr_print_ptr(ndr
, "delta_enum", r
->delta_enum
);
5489 if (r
->delta_enum
) {
5490 ndr
->print(ndr
, "%s: ARRAY(%d)", "delta_enum", (int)r
->num_deltas
);
5492 for (cntr_delta_enum_1
=0;cntr_delta_enum_1
<r
->num_deltas
;cntr_delta_enum_1
++) {
5494 if (asprintf(&idx_1
, "[%d]", cntr_delta_enum_1
) != -1) {
5495 ndr_print_netr_DELTA_ENUM(ndr
, "delta_enum", &r
->delta_enum
[cntr_delta_enum_1
]);
5505 static enum ndr_err_code
ndr_push_netr_UAS_INFO_0(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UAS_INFO_0
*r
)
5508 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5509 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5510 if (ndr_flags
& NDR_SCALARS
) {
5511 NDR_CHECK(ndr_push_align(ndr
, 4));
5512 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timecreated
));
5514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number
));
5516 if (ndr_flags
& NDR_BUFFERS
) {
5518 ndr
->flags
= _flags_save_STRUCT
;
5520 return NDR_ERR_SUCCESS
;
5523 static enum ndr_err_code
ndr_pull_netr_UAS_INFO_0(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UAS_INFO_0
*r
)
5526 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5527 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5528 if (ndr_flags
& NDR_SCALARS
) {
5529 NDR_CHECK(ndr_pull_align(ndr
, 4));
5530 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5531 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timecreated
));
5532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number
));
5534 if (ndr_flags
& NDR_BUFFERS
) {
5536 ndr
->flags
= _flags_save_STRUCT
;
5538 return NDR_ERR_SUCCESS
;
5541 _PUBLIC_
void ndr_print_netr_UAS_INFO_0(struct ndr_print
*ndr
, const char *name
, const struct netr_UAS_INFO_0
*r
)
5543 ndr_print_struct(ndr
, name
, "netr_UAS_INFO_0");
5545 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5546 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5548 ndr_print_array_uint8(ndr
, "computer_name", r
->computer_name
, 16);
5549 ndr_print_uint32(ndr
, "timecreated", r
->timecreated
);
5550 ndr_print_uint32(ndr
, "serial_number", r
->serial_number
);
5552 ndr
->flags
= _flags_save_STRUCT
;
5556 static enum ndr_err_code
ndr_push_netr_AccountBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AccountBuffer
*r
)
5558 if (ndr_flags
& NDR_SCALARS
) {
5559 NDR_CHECK(ndr_push_align(ndr
, 4));
5561 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5562 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5563 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
5564 ndr
->flags
= _flags_save_DATA_BLOB
;
5567 if (ndr_flags
& NDR_BUFFERS
) {
5569 return NDR_ERR_SUCCESS
;
5572 static enum ndr_err_code
ndr_pull_netr_AccountBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AccountBuffer
*r
)
5574 if (ndr_flags
& NDR_SCALARS
) {
5575 NDR_CHECK(ndr_pull_align(ndr
, 4));
5577 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5579 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->blob
));
5580 ndr
->flags
= _flags_save_DATA_BLOB
;
5583 if (ndr_flags
& NDR_BUFFERS
) {
5585 return NDR_ERR_SUCCESS
;
5588 _PUBLIC_
void ndr_print_netr_AccountBuffer(struct ndr_print
*ndr
, const char *name
, const struct netr_AccountBuffer
*r
)
5590 ndr_print_struct(ndr
, name
, "netr_AccountBuffer");
5592 ndr_print_DATA_BLOB(ndr
, "blob", r
->blob
);
5596 static enum ndr_err_code
ndr_push_netr_InfoFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5599 return NDR_ERR_SUCCESS
;
5602 static enum ndr_err_code
ndr_pull_netr_InfoFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5607 return NDR_ERR_SUCCESS
;
5610 _PUBLIC_
void ndr_print_netr_InfoFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5612 ndr_print_uint32(ndr
, name
, r
);
5614 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REPLICATION_NEEDED", NETLOGON_REPLICATION_NEEDED
, r
);
5615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REPLICATION_IN_PROGRESS", NETLOGON_REPLICATION_IN_PROGRESS
, r
);
5616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_FULL_SYNC_REPLICATION", NETLOGON_FULL_SYNC_REPLICATION
, r
);
5617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REDO_NEEDED", NETLOGON_REDO_NEEDED
, r
);
5618 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_HAS_IP", NETLOGON_HAS_IP
, r
);
5619 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_HAS_TIMESERV", NETLOGON_HAS_TIMESERV
, r
);
5620 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_DNS_UPDATE_FAILURE", NETLOGON_DNS_UPDATE_FAILURE
, r
);
5621 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERIFY_STATUS_RETURNED", NETLOGON_VERIFY_STATUS_RETURNED
, r
);
5625 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_1
*r
)
5627 if (ndr_flags
& NDR_SCALARS
) {
5628 NDR_CHECK(ndr_push_align(ndr
, 4));
5629 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5630 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5632 if (ndr_flags
& NDR_BUFFERS
) {
5634 return NDR_ERR_SUCCESS
;
5637 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5639 if (ndr_flags
& NDR_SCALARS
) {
5640 NDR_CHECK(ndr_pull_align(ndr
, 4));
5641 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5642 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5644 if (ndr_flags
& NDR_BUFFERS
) {
5646 return NDR_ERR_SUCCESS
;
5649 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5651 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5653 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5654 ndr_print_WERROR(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5658 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_2
*r
)
5660 if (ndr_flags
& NDR_SCALARS
) {
5661 NDR_CHECK(ndr_push_align(ndr
, 4));
5662 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5663 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5664 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5665 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5667 if (ndr_flags
& NDR_BUFFERS
) {
5668 if (r
->trusted_dc_name
) {
5669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5670 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5672 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_dc_name
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5675 return NDR_ERR_SUCCESS
;
5678 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5680 uint32_t _ptr_trusted_dc_name
;
5681 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5682 if (ndr_flags
& NDR_SCALARS
) {
5683 NDR_CHECK(ndr_pull_align(ndr
, 4));
5684 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5685 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5686 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5687 if (_ptr_trusted_dc_name
) {
5688 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5690 r
->trusted_dc_name
= NULL
;
5692 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5694 if (ndr_flags
& NDR_BUFFERS
) {
5695 if (r
->trusted_dc_name
) {
5696 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5697 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5698 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5699 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5700 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5701 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->trusted_dc_name
), ndr_get_array_length(ndr
, &r
->trusted_dc_name
));
5703 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5704 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_dc_name
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t), CH_UTF16
));
5705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5708 return NDR_ERR_SUCCESS
;
5711 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5713 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5715 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5716 ndr_print_WERROR(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5717 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5719 if (r
->trusted_dc_name
) {
5720 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5723 ndr_print_WERROR(ndr
, "tc_connection_status", r
->tc_connection_status
);
5727 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_3
*r
)
5729 if (ndr_flags
& NDR_SCALARS
) {
5730 NDR_CHECK(ndr_push_align(ndr
, 4));
5731 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5739 if (ndr_flags
& NDR_BUFFERS
) {
5741 return NDR_ERR_SUCCESS
;
5744 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5746 if (ndr_flags
& NDR_SCALARS
) {
5747 NDR_CHECK(ndr_pull_align(ndr
, 4));
5748 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5750 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5751 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5753 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5756 if (ndr_flags
& NDR_BUFFERS
) {
5758 return NDR_ERR_SUCCESS
;
5761 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5763 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5765 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5766 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5767 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5768 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5769 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5770 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5771 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5775 static enum ndr_err_code
ndr_push_netr_NETLOGON_INFO_4(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_4
*r
)
5777 if (ndr_flags
& NDR_SCALARS
) {
5778 NDR_CHECK(ndr_push_align(ndr
, 4));
5779 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain_name
));
5782 if (ndr_flags
& NDR_BUFFERS
) {
5783 if (r
->trusted_dc_name
) {
5784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5787 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_dc_name
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5789 if (r
->trusted_domain_name
) {
5790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5793 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_domain_name
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5796 return NDR_ERR_SUCCESS
;
5799 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_4
*r
)
5801 uint32_t _ptr_trusted_dc_name
;
5802 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5803 uint32_t _ptr_trusted_domain_name
;
5804 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
5805 if (ndr_flags
& NDR_SCALARS
) {
5806 NDR_CHECK(ndr_pull_align(ndr
, 4));
5807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5808 if (_ptr_trusted_dc_name
) {
5809 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5811 r
->trusted_dc_name
= NULL
;
5813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
5814 if (_ptr_trusted_domain_name
) {
5815 NDR_PULL_ALLOC(ndr
, r
->trusted_domain_name
);
5817 r
->trusted_domain_name
= NULL
;
5820 if (ndr_flags
& NDR_BUFFERS
) {
5821 if (r
->trusted_dc_name
) {
5822 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5823 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5824 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5825 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5826 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5827 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->trusted_dc_name
), ndr_get_array_length(ndr
, &r
->trusted_dc_name
));
5829 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5830 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_dc_name
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t), CH_UTF16
));
5831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5833 if (r
->trusted_domain_name
) {
5834 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5835 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain_name
, 0);
5836 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domain_name
));
5837 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_domain_name
));
5838 if (ndr_get_array_length(ndr
, &r
->trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->trusted_domain_name
)) {
5839 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->trusted_domain_name
), ndr_get_array_length(ndr
, &r
->trusted_domain_name
));
5841 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_domain_name
), sizeof(uint16_t)));
5842 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_domain_name
, ndr_get_array_length(ndr
, &r
->trusted_domain_name
), sizeof(uint16_t), CH_UTF16
));
5843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
5846 return NDR_ERR_SUCCESS
;
5849 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_4
*r
)
5851 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_4");
5853 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5855 if (r
->trusted_dc_name
) {
5856 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5859 ndr_print_ptr(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5861 if (r
->trusted_domain_name
) {
5862 ndr_print_string(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5868 static enum ndr_err_code
ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
5870 if (ndr_flags
& NDR_SCALARS
) {
5871 int level
= ndr_push_get_switch_value(ndr
, r
);
5872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5875 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5879 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5883 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5887 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5895 if (ndr_flags
& NDR_BUFFERS
) {
5896 int level
= ndr_push_get_switch_value(ndr
, r
);
5900 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5906 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5912 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5918 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5927 return NDR_ERR_SUCCESS
;
5930 static enum ndr_err_code
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5934 TALLOC_CTX
*_mem_save_info1_0
;
5935 TALLOC_CTX
*_mem_save_info2_0
;
5936 TALLOC_CTX
*_mem_save_info3_0
;
5937 TALLOC_CTX
*_mem_save_info4_0
;
5938 level
= ndr_pull_get_switch_value(ndr
, r
);
5939 if (ndr_flags
& NDR_SCALARS
) {
5940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5941 if (_level
!= level
) {
5942 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5946 uint32_t _ptr_info1
;
5947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5949 NDR_PULL_ALLOC(ndr
, r
->info1
);
5956 uint32_t _ptr_info2
;
5957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5959 NDR_PULL_ALLOC(ndr
, r
->info2
);
5966 uint32_t _ptr_info3
;
5967 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5969 NDR_PULL_ALLOC(ndr
, r
->info3
);
5976 uint32_t _ptr_info4
;
5977 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5979 NDR_PULL_ALLOC(ndr
, r
->info4
);
5990 if (ndr_flags
& NDR_BUFFERS
) {
5994 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5995 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5996 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6003 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6004 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6005 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6012 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6013 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6014 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
6015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6021 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6022 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6023 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6024 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6033 return NDR_ERR_SUCCESS
;
6036 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
6039 level
= ndr_print_get_switch_value(ndr
, r
);
6040 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
6043 ndr_print_ptr(ndr
, "info1", r
->info1
);
6046 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
6052 ndr_print_ptr(ndr
, "info2", r
->info2
);
6055 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
6061 ndr_print_ptr(ndr
, "info3", r
->info3
);
6064 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
6070 ndr_print_ptr(ndr
, "info4", r
->info4
);
6073 ndr_print_netr_NETLOGON_INFO_4(ndr
, "info4", r
->info4
);
6084 static enum ndr_err_code
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
6086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6087 return NDR_ERR_SUCCESS
;
6090 static enum ndr_err_code
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
6093 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6095 return NDR_ERR_SUCCESS
;
6098 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
6100 const char *val
= NULL
;
6103 case NETLOGON_CONTROL_QUERY
: val
= "NETLOGON_CONTROL_QUERY"; break;
6104 case NETLOGON_CONTROL_REPLICATE
: val
= "NETLOGON_CONTROL_REPLICATE"; break;
6105 case NETLOGON_CONTROL_SYNCHRONIZE
: val
= "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6106 case NETLOGON_CONTROL_PDC_REPLICATE
: val
= "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6107 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
6108 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
6109 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6110 case NETLOGON_CONTROL_FIND_USER
: val
= "NETLOGON_CONTROL_FIND_USER"; break;
6111 case NETLOGON_CONTROL_CHANGE_PASSWORD
: val
= "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6112 case NETLOGON_CONTROL_TC_VERIFY
: val
= "NETLOGON_CONTROL_TC_VERIFY"; break;
6113 case NETLOGON_CONTROL_FORCE_DNS_REG
: val
= "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6114 case NETLOGON_CONTROL_QUERY_DNS_REG
: val
= "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6115 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG
: val
= "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6116 case NETLOGON_CONTROL_TRUNCATE_LOG
: val
= "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6117 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
6118 case NETLOGON_CONTROL_BREAKPOINT
: val
= "NETLOGON_CONTROL_BREAKPOINT"; break;
6120 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6123 static enum ndr_err_code
ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_DATA_INFORMATION
*r
)
6125 if (ndr_flags
& NDR_SCALARS
) {
6126 int level
= ndr_push_get_switch_value(ndr
, r
);
6127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6129 case NETLOGON_CONTROL_REDISCOVER
: {
6130 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6133 case NETLOGON_CONTROL_TC_QUERY
: {
6134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6137 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6138 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6141 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6142 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6145 case NETLOGON_CONTROL_TC_VERIFY
: {
6146 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6149 case NETLOGON_CONTROL_FIND_USER
: {
6150 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
6153 case NETLOGON_CONTROL_SET_DBFLAG
: {
6154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
6162 if (ndr_flags
& NDR_BUFFERS
) {
6163 int level
= ndr_push_get_switch_value(ndr
, r
);
6165 case NETLOGON_CONTROL_REDISCOVER
:
6167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6174 case NETLOGON_CONTROL_TC_QUERY
:
6176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6179 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6183 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6186 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6187 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6188 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6192 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6197 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6201 case NETLOGON_CONTROL_TC_VERIFY
:
6203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6206 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6210 case NETLOGON_CONTROL_FIND_USER
:
6212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6215 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6219 case NETLOGON_CONTROL_SET_DBFLAG
:
6227 return NDR_ERR_SUCCESS
;
6230 static enum ndr_err_code
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
6234 TALLOC_CTX
*_mem_save_domain_0
;
6235 TALLOC_CTX
*_mem_save_user_0
;
6236 level
= ndr_pull_get_switch_value(ndr
, r
);
6237 if (ndr_flags
& NDR_SCALARS
) {
6238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6239 if (_level
!= level
) {
6240 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6243 case NETLOGON_CONTROL_REDISCOVER
: {
6244 uint32_t _ptr_domain
;
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6247 NDR_PULL_ALLOC(ndr
, r
->domain
);
6253 case NETLOGON_CONTROL_TC_QUERY
: {
6254 uint32_t _ptr_domain
;
6255 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6257 NDR_PULL_ALLOC(ndr
, r
->domain
);
6263 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6264 uint32_t _ptr_domain
;
6265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6267 NDR_PULL_ALLOC(ndr
, r
->domain
);
6273 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6274 uint32_t _ptr_domain
;
6275 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6277 NDR_PULL_ALLOC(ndr
, r
->domain
);
6283 case NETLOGON_CONTROL_TC_VERIFY
: {
6284 uint32_t _ptr_domain
;
6285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6287 NDR_PULL_ALLOC(ndr
, r
->domain
);
6293 case NETLOGON_CONTROL_FIND_USER
: {
6295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
6297 NDR_PULL_ALLOC(ndr
, r
->user
);
6303 case NETLOGON_CONTROL_SET_DBFLAG
: {
6304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
6312 if (ndr_flags
& NDR_BUFFERS
) {
6314 case NETLOGON_CONTROL_REDISCOVER
:
6316 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6317 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6318 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6319 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6320 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6321 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
6323 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6324 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6325 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6329 case NETLOGON_CONTROL_TC_QUERY
:
6331 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6332 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6333 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6334 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6335 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6336 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
6338 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6339 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6344 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6346 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6347 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6349 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6350 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6351 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
6353 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6359 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6361 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6362 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6365 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6366 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
6368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6369 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6374 case NETLOGON_CONTROL_TC_VERIFY
:
6376 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6377 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6380 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6381 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
6383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6389 case NETLOGON_CONTROL_FIND_USER
:
6391 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6392 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
6393 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
6394 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
6395 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
6396 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user
), ndr_get_array_length(ndr
, &r
->user
));
6398 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
6399 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
6400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
6404 case NETLOGON_CONTROL_SET_DBFLAG
:
6412 return NDR_ERR_SUCCESS
;
6415 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
6418 level
= ndr_print_get_switch_value(ndr
, r
);
6419 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
6421 case NETLOGON_CONTROL_REDISCOVER
:
6422 ndr_print_ptr(ndr
, "domain", r
->domain
);
6425 ndr_print_string(ndr
, "domain", r
->domain
);
6430 case NETLOGON_CONTROL_TC_QUERY
:
6431 ndr_print_ptr(ndr
, "domain", r
->domain
);
6434 ndr_print_string(ndr
, "domain", r
->domain
);
6439 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6440 ndr_print_ptr(ndr
, "domain", r
->domain
);
6443 ndr_print_string(ndr
, "domain", r
->domain
);
6448 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6449 ndr_print_ptr(ndr
, "domain", r
->domain
);
6452 ndr_print_string(ndr
, "domain", r
->domain
);
6457 case NETLOGON_CONTROL_TC_VERIFY
:
6458 ndr_print_ptr(ndr
, "domain", r
->domain
);
6461 ndr_print_string(ndr
, "domain", r
->domain
);
6466 case NETLOGON_CONTROL_FIND_USER
:
6467 ndr_print_ptr(ndr
, "user", r
->user
);
6470 ndr_print_string(ndr
, "user", r
->user
);
6475 case NETLOGON_CONTROL_SET_DBFLAG
:
6476 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
6485 _PUBLIC_
enum ndr_err_code
ndr_push_netr_NegotiateFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6488 return NDR_ERR_SUCCESS
;
6491 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_NegotiateFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6494 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6496 return NDR_ERR_SUCCESS
;
6499 _PUBLIC_
void ndr_print_netr_NegotiateFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6501 ndr_print_uint32(ndr
, name
, r
);
6503 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT
, r
);
6504 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL
, r
);
6505 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR
, r
);
6506 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT
, r
);
6507 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC
, r
);
6508 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL
, r
);
6509 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS
, r
);
6510 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO
, r
);
6511 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL
, r
);
6512 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC
, r
);
6513 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH
, r
);
6514 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC
, r
);
6515 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL
, r
);
6516 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL
, r
);
6517 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS
, r
);
6518 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS
, r
);
6519 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS
, r
);
6520 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2
, r
);
6521 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO
, r
);
6522 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS
, r
);
6523 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION
, r
);
6524 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH
, r
);
6525 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2
, r
);
6526 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES", NETLOGON_NEG_SUPPORTS_AES
, r
);
6527 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS
, r
);
6528 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC
, r
);
6532 static enum ndr_err_code
ndr_push_SyncStateEnum(struct ndr_push
*ndr
, int ndr_flags
, enum SyncStateEnum r
)
6534 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6535 return NDR_ERR_SUCCESS
;
6538 static enum ndr_err_code
ndr_pull_SyncStateEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum SyncStateEnum
*r
)
6541 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6543 return NDR_ERR_SUCCESS
;
6546 _PUBLIC_
void ndr_print_SyncStateEnum(struct ndr_print
*ndr
, const char *name
, enum SyncStateEnum r
)
6548 const char *val
= NULL
;
6551 case SYNCSTATE_NORMAL_STATE
: val
= "SYNCSTATE_NORMAL_STATE"; break;
6552 case SYNCSTATE_DOMAIN_STATE
: val
= "SYNCSTATE_DOMAIN_STATE"; break;
6553 case SYNCSTATE_GROUP_STATE
: val
= "SYNCSTATE_GROUP_STATE"; break;
6554 case SYNCSTATE_UAS_BUILT_IN_GROUP_STATE
: val
= "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE"; break;
6555 case SYNCSTATE_USER_STATE
: val
= "SYNCSTATE_USER_STATE"; break;
6556 case SYNCSTATE_GROUP_MEMBER_STATE
: val
= "SYNCSTATE_GROUP_MEMBER_STATE"; break;
6557 case SYNCSTATE_ALIAS_STATE
: val
= "SYNCSTATE_ALIAS_STATE"; break;
6558 case SYNCSTATE_ALIAS_MEMBER_STATE
: val
= "SYNCSTATE_ALIAS_MEMBER_STATE"; break;
6559 case SYNCSTATE_SAM_DONE_STATE
: val
= "SYNCSTATE_SAM_DONE_STATE"; break;
6561 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6564 static enum ndr_err_code
ndr_push_netr_ChangeLogFlags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
6566 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6567 return NDR_ERR_SUCCESS
;
6570 static enum ndr_err_code
ndr_pull_netr_ChangeLogFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
6573 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6575 return NDR_ERR_SUCCESS
;
6578 _PUBLIC_
void ndr_print_netr_ChangeLogFlags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
6580 ndr_print_uint16(ndr
, name
, r
);
6582 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED
, r
);
6583 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD
, r
);
6584 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED
, r
);
6585 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED
, r
);
6586 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ
, r
);
6590 static enum ndr_err_code
ndr_push_netr_ChangeLogObject(struct ndr_push
*ndr
, int ndr_flags
, const union netr_ChangeLogObject
*r
)
6592 if (ndr_flags
& NDR_SCALARS
) {
6593 int level
= ndr_push_get_switch_value(ndr
, r
);
6595 case NETR_CHANGELOG_SID_INCLUDED
: {
6596 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6599 case NETR_CHANGELOG_NAME_INCLUDED
: {
6601 uint32_t _flags_save_string
= ndr
->flags
;
6602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6603 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->object_name
));
6604 ndr
->flags
= _flags_save_string
;
6613 if (ndr_flags
& NDR_BUFFERS
) {
6614 int level
= ndr_push_get_switch_value(ndr
, r
);
6616 case NETR_CHANGELOG_SID_INCLUDED
:
6619 case NETR_CHANGELOG_NAME_INCLUDED
:
6627 return NDR_ERR_SUCCESS
;
6630 static enum ndr_err_code
ndr_pull_netr_ChangeLogObject(struct ndr_pull
*ndr
, int ndr_flags
, union netr_ChangeLogObject
*r
)
6633 level
= ndr_pull_get_switch_value(ndr
, r
);
6634 if (ndr_flags
& NDR_SCALARS
) {
6636 case NETR_CHANGELOG_SID_INCLUDED
: {
6637 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6640 case NETR_CHANGELOG_NAME_INCLUDED
: {
6642 uint32_t _flags_save_string
= ndr
->flags
;
6643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6644 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->object_name
));
6645 ndr
->flags
= _flags_save_string
;
6654 if (ndr_flags
& NDR_BUFFERS
) {
6656 case NETR_CHANGELOG_SID_INCLUDED
:
6659 case NETR_CHANGELOG_NAME_INCLUDED
:
6667 return NDR_ERR_SUCCESS
;
6670 _PUBLIC_
void ndr_print_netr_ChangeLogObject(struct ndr_print
*ndr
, const char *name
, const union netr_ChangeLogObject
*r
)
6673 level
= ndr_print_get_switch_value(ndr
, r
);
6674 ndr_print_union(ndr
, name
, level
, "netr_ChangeLogObject");
6676 case NETR_CHANGELOG_SID_INCLUDED
:
6677 ndr_print_dom_sid(ndr
, "object_sid", &r
->object_sid
);
6680 case NETR_CHANGELOG_NAME_INCLUDED
:
6681 ndr_print_string(ndr
, "object_name", r
->object_name
);
6690 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ChangeLogEntry(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChangeLogEntry
*r
)
6692 if (ndr_flags
& NDR_SCALARS
) {
6693 NDR_CHECK(ndr_push_align(ndr
, 4));
6694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number1
));
6695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number2
));
6696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_rid
));
6697 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, r
->flags
));
6698 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, r
->db_index
));
6699 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, r
->delta_type
));
6700 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6701 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6703 if (ndr_flags
& NDR_BUFFERS
) {
6704 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6706 return NDR_ERR_SUCCESS
;
6709 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ChangeLogEntry(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChangeLogEntry
*r
)
6711 if (ndr_flags
& NDR_SCALARS
) {
6712 NDR_CHECK(ndr_pull_align(ndr
, 4));
6713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number1
));
6714 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number2
));
6715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_rid
));
6716 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6717 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, &r
->db_index
));
6718 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, &r
->delta_type
));
6719 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6720 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6722 if (ndr_flags
& NDR_BUFFERS
) {
6723 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6725 return NDR_ERR_SUCCESS
;
6728 _PUBLIC_
void ndr_print_netr_ChangeLogEntry(struct ndr_print
*ndr
, const char *name
, const struct netr_ChangeLogEntry
*r
)
6730 ndr_print_struct(ndr
, name
, "netr_ChangeLogEntry");
6732 ndr_print_uint32(ndr
, "serial_number1", r
->serial_number1
);
6733 ndr_print_uint32(ndr
, "serial_number2", r
->serial_number2
);
6734 ndr_print_uint32(ndr
, "object_rid", r
->object_rid
);
6735 ndr_print_netr_ChangeLogFlags(ndr
, "flags", r
->flags
);
6736 ndr_print_netr_SamDatabaseID8Bit(ndr
, "db_index", r
->db_index
);
6737 ndr_print_netr_DeltaEnum8Bit(ndr
, "delta_type", r
->delta_type
);
6738 ndr_print_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
));
6739 ndr_print_netr_ChangeLogObject(ndr
, "object", &r
->object
);
6743 _PUBLIC_
size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry
*r
, struct smb_iconv_convenience
*ic
, int flags
)
6745 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_netr_ChangeLogEntry
, ic
);
6748 static enum ndr_err_code
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
6750 if (ndr_flags
& NDR_SCALARS
) {
6751 NDR_CHECK(ndr_push_align(ndr
, 4));
6752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6753 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6755 if (ndr_flags
& NDR_BUFFERS
) {
6757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6758 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6761 return NDR_ERR_SUCCESS
;
6764 static enum ndr_err_code
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6767 TALLOC_CTX
*_mem_save_data_0
;
6768 if (ndr_flags
& NDR_SCALARS
) {
6769 NDR_CHECK(ndr_pull_align(ndr
, 4));
6770 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6771 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6773 NDR_PULL_ALLOC(ndr
, r
->data
);
6778 if (ndr_flags
& NDR_BUFFERS
) {
6780 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6781 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6782 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6783 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6784 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
6785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6788 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6791 return NDR_ERR_SUCCESS
;
6794 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6796 ndr_print_struct(ndr
, name
, "netr_Blob");
6798 ndr_print_uint32(ndr
, "length", r
->length
);
6799 ndr_print_ptr(ndr
, "data", r
->data
);
6802 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6808 static enum ndr_err_code
ndr_push_netr_DsRGetDCName_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6811 return NDR_ERR_SUCCESS
;
6814 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6819 return NDR_ERR_SUCCESS
;
6822 _PUBLIC_
void ndr_print_netr_DsRGetDCName_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6824 ndr_print_uint32(ndr
, name
, r
);
6826 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY
, r
);
6827 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED
, r
);
6828 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED
, r
);
6829 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED
, r
);
6830 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED
, r
);
6831 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY
, r
);
6832 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED
, r
);
6833 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED
, r
);
6834 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED
, r
);
6835 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED
, r
);
6836 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED
, r
);
6837 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF
, r
);
6838 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED
, r
);
6839 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME
, r
);
6840 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME
, r
);
6841 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE
, r
);
6842 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED
, r
);
6843 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WEB_SERVICE_REQUIRED", DS_WEB_SERVICE_REQUIRED
, r
);
6844 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME
, r
);
6845 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME
, r
);
6849 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType r
)
6851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6852 return NDR_ERR_SUCCESS
;
6855 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType
*r
)
6858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6860 return NDR_ERR_SUCCESS
;
6863 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print
*ndr
, const char *name
, enum netr_DsRGetDCNameInfo_AddressType r
)
6865 const char *val
= NULL
;
6868 case DS_ADDRESS_TYPE_INET
: val
= "DS_ADDRESS_TYPE_INET"; break;
6869 case DS_ADDRESS_TYPE_NETBIOS
: val
= "DS_ADDRESS_TYPE_NETBIOS"; break;
6871 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6874 static enum ndr_err_code
ndr_push_netr_DsR_DcFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6877 return NDR_ERR_SUCCESS
;
6880 static enum ndr_err_code
ndr_pull_netr_DsR_DcFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6885 return NDR_ERR_SUCCESS
;
6888 _PUBLIC_
void ndr_print_netr_DsR_DcFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6890 ndr_print_uint32(ndr
, name
, r
);
6892 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC
, r
);
6893 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC
, r
);
6894 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP
, r
);
6895 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS
, r
);
6896 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC
, r
);
6897 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV
, r
);
6898 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST
, r
);
6899 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE
, r
);
6900 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV
, r
);
6901 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC
, r
);
6902 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
6903 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6
, r
);
6904 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER
, r
);
6905 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN
, r
);
6906 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST
, r
);
6910 _PUBLIC_
enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
6912 if (ndr_flags
& NDR_SCALARS
) {
6913 NDR_CHECK(ndr_push_align(ndr
, 4));
6914 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
6915 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
6916 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, r
->dc_address_type
));
6917 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6918 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6919 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
6920 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, r
->dc_flags
));
6921 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
6922 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
6924 if (ndr_flags
& NDR_BUFFERS
) {
6926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6929 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6931 if (r
->dc_address
) {
6932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6935 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6937 if (r
->domain_name
) {
6938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6941 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6943 if (r
->forest_name
) {
6944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6947 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6949 if (r
->dc_site_name
) {
6950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6953 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_site_name
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6955 if (r
->client_site_name
) {
6956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6959 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client_site_name
, ndr_charset_length(r
->client_site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6962 return NDR_ERR_SUCCESS
;
6965 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
6967 uint32_t _ptr_dc_unc
;
6968 TALLOC_CTX
*_mem_save_dc_unc_0
;
6969 uint32_t _ptr_dc_address
;
6970 TALLOC_CTX
*_mem_save_dc_address_0
;
6971 uint32_t _ptr_domain_name
;
6972 TALLOC_CTX
*_mem_save_domain_name_0
;
6973 uint32_t _ptr_forest_name
;
6974 TALLOC_CTX
*_mem_save_forest_name_0
;
6975 uint32_t _ptr_dc_site_name
;
6976 TALLOC_CTX
*_mem_save_dc_site_name_0
;
6977 uint32_t _ptr_client_site_name
;
6978 TALLOC_CTX
*_mem_save_client_site_name_0
;
6979 if (ndr_flags
& NDR_SCALARS
) {
6980 NDR_CHECK(ndr_pull_align(ndr
, 4));
6981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
6983 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
6987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
6988 if (_ptr_dc_address
) {
6989 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
6991 r
->dc_address
= NULL
;
6993 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
6994 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6995 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
6996 if (_ptr_domain_name
) {
6997 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
6999 r
->domain_name
= NULL
;
7001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
7002 if (_ptr_forest_name
) {
7003 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
7005 r
->forest_name
= NULL
;
7007 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, &r
->dc_flags
));
7008 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
7009 if (_ptr_dc_site_name
) {
7010 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
7012 r
->dc_site_name
= NULL
;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
7015 if (_ptr_client_site_name
) {
7016 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
7018 r
->client_site_name
= NULL
;
7021 if (ndr_flags
& NDR_BUFFERS
) {
7023 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7024 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
7025 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
7026 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
7027 if (ndr_get_array_length(ndr
, &r
->dc_unc
) > ndr_get_array_size(ndr
, &r
->dc_unc
)) {
7028 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_unc
), ndr_get_array_length(ndr
, &r
->dc_unc
));
7030 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t)));
7031 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t), CH_UTF16
));
7032 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
7034 if (r
->dc_address
) {
7035 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7036 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
7037 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
7038 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
7039 if (ndr_get_array_length(ndr
, &r
->dc_address
) > ndr_get_array_size(ndr
, &r
->dc_address
)) {
7040 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_address
), ndr_get_array_length(ndr
, &r
->dc_address
));
7042 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t)));
7043 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t), CH_UTF16
));
7044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
7046 if (r
->domain_name
) {
7047 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7048 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
7049 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
7050 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
7051 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
7052 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain_name
), ndr_get_array_length(ndr
, &r
->domain_name
));
7054 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
7055 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
7056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
7058 if (r
->forest_name
) {
7059 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7060 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
7061 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
7062 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
7063 if (ndr_get_array_length(ndr
, &r
->forest_name
) > ndr_get_array_size(ndr
, &r
->forest_name
)) {
7064 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->forest_name
), ndr_get_array_length(ndr
, &r
->forest_name
));
7066 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t)));
7067 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t), CH_UTF16
));
7068 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
7070 if (r
->dc_site_name
) {
7071 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7072 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
7073 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
7074 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
7075 if (ndr_get_array_length(ndr
, &r
->dc_site_name
) > ndr_get_array_size(ndr
, &r
->dc_site_name
)) {
7076 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_site_name
), ndr_get_array_length(ndr
, &r
->dc_site_name
));
7078 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t)));
7079 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_site_name
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t), CH_UTF16
));
7080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
7082 if (r
->client_site_name
) {
7083 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7084 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
7085 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
7086 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
7087 if (ndr_get_array_length(ndr
, &r
->client_site_name
) > ndr_get_array_size(ndr
, &r
->client_site_name
)) {
7088 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client_site_name
), ndr_get_array_length(ndr
, &r
->client_site_name
));
7090 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t)));
7091 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client_site_name
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t), CH_UTF16
));
7092 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
7095 return NDR_ERR_SUCCESS
;
7098 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
7100 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
7102 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
7105 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
7108 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
7110 if (r
->dc_address
) {
7111 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
7114 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr
, "dc_address_type", r
->dc_address_type
);
7115 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
7116 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
7118 if (r
->domain_name
) {
7119 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
7122 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
7124 if (r
->forest_name
) {
7125 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
7128 ndr_print_netr_DsR_DcFlags(ndr
, "dc_flags", r
->dc_flags
);
7129 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
7131 if (r
->dc_site_name
) {
7132 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
7135 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
7137 if (r
->client_site_name
) {
7138 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
7144 static enum ndr_err_code
ndr_push_netr_Capabilities(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Capabilities
*r
)
7146 if (ndr_flags
& NDR_SCALARS
) {
7147 int level
= ndr_push_get_switch_value(ndr
, r
);
7148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7151 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->server_capabilities
));
7155 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7158 if (ndr_flags
& NDR_BUFFERS
) {
7159 int level
= ndr_push_get_switch_value(ndr
, r
);
7165 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7168 return NDR_ERR_SUCCESS
;
7171 static enum ndr_err_code
ndr_pull_netr_Capabilities(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Capabilities
*r
)
7175 level
= ndr_pull_get_switch_value(ndr
, r
);
7176 if (ndr_flags
& NDR_SCALARS
) {
7177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7178 if (_level
!= level
) {
7179 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7183 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->server_capabilities
));
7187 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7190 if (ndr_flags
& NDR_BUFFERS
) {
7196 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7199 return NDR_ERR_SUCCESS
;
7202 _PUBLIC_
void ndr_print_netr_Capabilities(struct ndr_print
*ndr
, const char *name
, const union netr_Capabilities
*r
)
7205 level
= ndr_print_get_switch_value(ndr
, r
);
7206 ndr_print_union(ndr
, name
, level
, "netr_Capabilities");
7209 ndr_print_netr_NegotiateFlags(ndr
, "server_capabilities", r
->server_capabilities
);
7213 ndr_print_bad_level(ndr
, name
, level
);
7217 static enum ndr_err_code
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7220 return NDR_ERR_SUCCESS
;
7223 static enum ndr_err_code
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7228 return NDR_ERR_SUCCESS
;
7231 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7233 ndr_print_uint32(ndr
, name
, r
);
7235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5
, r
);
7242 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES
, r
);
7246 static enum ndr_err_code
ndr_push_netr_WorkstationFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7249 return NDR_ERR_SUCCESS
;
7252 static enum ndr_err_code
ndr_pull_netr_WorkstationFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7257 return NDR_ERR_SUCCESS
;
7260 _PUBLIC_
void ndr_print_netr_WorkstationFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7262 ndr_print_uint32(ndr
, name
, r
);
7264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS
, r
);
7265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE
, r
);
7269 static enum ndr_err_code
ndr_push_netr_SuiteMask(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
7271 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
7272 return NDR_ERR_SUCCESS
;
7275 static enum ndr_err_code
ndr_pull_netr_SuiteMask(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
7278 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
7280 return NDR_ERR_SUCCESS
;
7283 _PUBLIC_
void ndr_print_netr_SuiteMask(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
7285 ndr_print_uint16(ndr
, name
, r
);
7287 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE
, r
);
7288 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE
, r
);
7289 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER
, r
);
7290 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER
, r
);
7291 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE
, r
);
7292 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT
, r
);
7293 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL
, r
);
7294 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS
, r
);
7295 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS
, r
);
7296 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED
, r
);
7297 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER
, r
);
7298 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL
, r
);
7299 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER
, r
);
7303 static enum ndr_err_code
ndr_push_netr_ProductType(struct ndr_push
*ndr
, int ndr_flags
, uint8_t r
)
7305 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
7306 return NDR_ERR_SUCCESS
;
7309 static enum ndr_err_code
ndr_pull_netr_ProductType(struct ndr_pull
*ndr
, int ndr_flags
, uint8_t *r
)
7312 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
7314 return NDR_ERR_SUCCESS
;
7317 _PUBLIC_
void ndr_print_netr_ProductType(struct ndr_print
*ndr
, const char *name
, uint8_t r
)
7319 ndr_print_uint8(ndr
, name
, r
);
7321 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER
, r
);
7322 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER
, r
);
7323 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION
, r
);
7327 static enum ndr_err_code
ndr_push_netr_LsaPolicyInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LsaPolicyInformation
*r
)
7329 if (ndr_flags
& NDR_SCALARS
) {
7330 NDR_CHECK(ndr_push_align(ndr
, 4));
7331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7332 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
7334 if (ndr_flags
& NDR_BUFFERS
) {
7336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7337 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, r
->policy_size
));
7340 return NDR_ERR_SUCCESS
;
7343 static enum ndr_err_code
ndr_pull_netr_LsaPolicyInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LsaPolicyInformation
*r
)
7345 uint32_t _ptr_policy
;
7346 TALLOC_CTX
*_mem_save_policy_0
;
7347 if (ndr_flags
& NDR_SCALARS
) {
7348 NDR_CHECK(ndr_pull_align(ndr
, 4));
7349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->policy_size
));
7350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
7352 NDR_PULL_ALLOC(ndr
, r
->policy
);
7357 if (ndr_flags
& NDR_BUFFERS
) {
7359 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7360 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
7361 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->policy
));
7362 NDR_PULL_ALLOC_N(ndr
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
));
7363 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
)));
7364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
7367 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->policy
, r
->policy_size
));
7370 return NDR_ERR_SUCCESS
;
7373 _PUBLIC_
void ndr_print_netr_LsaPolicyInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_LsaPolicyInformation
*r
)
7375 ndr_print_struct(ndr
, name
, "netr_LsaPolicyInformation");
7377 ndr_print_uint32(ndr
, "policy_size", r
->policy_size
);
7378 ndr_print_ptr(ndr
, "policy", r
->policy
);
7381 ndr_print_array_uint8(ndr
, "policy", r
->policy
, r
->policy_size
);
7387 static enum ndr_err_code
ndr_push_netr_OsVersionInfoEx(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionInfoEx
*r
)
7389 if (ndr_flags
& NDR_SCALARS
) {
7390 NDR_CHECK(ndr_push_align(ndr
, 4));
7391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 284));
7392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MajorVersion
));
7393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MinorVersion
));
7394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->BuildNumber
));
7395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->PlatformId
));
7396 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->CSDVersion
, 128, sizeof(uint16_t), CH_UTF16
));
7397 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMajor
));
7398 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMinor
));
7399 NDR_CHECK(ndr_push_netr_SuiteMask(ndr
, NDR_SCALARS
, r
->SuiteMask
));
7400 NDR_CHECK(ndr_push_netr_ProductType(ndr
, NDR_SCALARS
, r
->ProductType
));
7401 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Reserved
));
7403 if (ndr_flags
& NDR_BUFFERS
) {
7405 return NDR_ERR_SUCCESS
;
7408 static enum ndr_err_code
ndr_pull_netr_OsVersionInfoEx(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionInfoEx
*r
)
7410 if (ndr_flags
& NDR_SCALARS
) {
7411 NDR_CHECK(ndr_pull_align(ndr
, 4));
7412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->OSVersionInfoSize
));
7413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MajorVersion
));
7414 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MinorVersion
));
7415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->BuildNumber
));
7416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->PlatformId
));
7417 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->CSDVersion
, 128, sizeof(uint16_t), CH_UTF16
));
7418 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMajor
));
7419 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMinor
));
7420 NDR_CHECK(ndr_pull_netr_SuiteMask(ndr
, NDR_SCALARS
, &r
->SuiteMask
));
7421 NDR_CHECK(ndr_pull_netr_ProductType(ndr
, NDR_SCALARS
, &r
->ProductType
));
7422 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Reserved
));
7424 if (ndr_flags
& NDR_BUFFERS
) {
7426 return NDR_ERR_SUCCESS
;
7429 _PUBLIC_
void ndr_print_netr_OsVersionInfoEx(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionInfoEx
*r
)
7431 ndr_print_struct(ndr
, name
, "netr_OsVersionInfoEx");
7433 ndr_print_uint32(ndr
, "OSVersionInfoSize", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?284:r
->OSVersionInfoSize
);
7434 ndr_print_uint32(ndr
, "MajorVersion", r
->MajorVersion
);
7435 ndr_print_uint32(ndr
, "MinorVersion", r
->MinorVersion
);
7436 ndr_print_uint32(ndr
, "BuildNumber", r
->BuildNumber
);
7437 ndr_print_uint32(ndr
, "PlatformId", r
->PlatformId
);
7438 ndr_print_string(ndr
, "CSDVersion", r
->CSDVersion
);
7439 ndr_print_uint16(ndr
, "ServicePackMajor", r
->ServicePackMajor
);
7440 ndr_print_uint16(ndr
, "ServicePackMinor", r
->ServicePackMinor
);
7441 ndr_print_netr_SuiteMask(ndr
, "SuiteMask", r
->SuiteMask
);
7442 ndr_print_netr_ProductType(ndr
, "ProductType", r
->ProductType
);
7443 ndr_print_uint8(ndr
, "Reserved", r
->Reserved
);
7447 static enum ndr_err_code
ndr_push_netr_OsVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersion
*r
)
7449 if (ndr_flags
& NDR_SCALARS
) {
7450 NDR_CHECK(ndr_push_align(ndr
, 4));
7451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7454 NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7456 if (ndr_flags
& NDR_BUFFERS
) {
7458 return NDR_ERR_SUCCESS
;
7461 static enum ndr_err_code
ndr_pull_netr_OsVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersion
*r
)
7463 if (ndr_flags
& NDR_SCALARS
) {
7464 NDR_CHECK(ndr_pull_align(ndr
, 4));
7465 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7466 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7468 NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7470 if (ndr_flags
& NDR_BUFFERS
) {
7472 return NDR_ERR_SUCCESS
;
7475 _PUBLIC_
void ndr_print_netr_OsVersion(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersion
*r
)
7477 ndr_print_struct(ndr
, name
, "netr_OsVersion");
7479 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->length
);
7480 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7481 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->size
);
7482 ndr_print_netr_OsVersionInfoEx(ndr
, "os", &r
->os
);
7486 static enum ndr_err_code
ndr_push_netr_OsVersionContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionContainer
*r
)
7488 if (ndr_flags
& NDR_SCALARS
) {
7489 NDR_CHECK(ndr_push_align(ndr
, 4));
7490 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7491 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7492 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->os
));
7494 if (ndr_flags
& NDR_BUFFERS
) {
7496 NDR_CHECK(ndr_push_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7499 return NDR_ERR_SUCCESS
;
7502 static enum ndr_err_code
ndr_pull_netr_OsVersionContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionContainer
*r
)
7505 TALLOC_CTX
*_mem_save_os_0
;
7506 if (ndr_flags
& NDR_SCALARS
) {
7507 NDR_CHECK(ndr_pull_align(ndr
, 4));
7508 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
7509 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
7510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_os
));
7512 NDR_PULL_ALLOC(ndr
, r
->os
);
7517 if (ndr_flags
& NDR_BUFFERS
) {
7519 _mem_save_os_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7520 NDR_PULL_SET_MEM_CTX(ndr
, r
->os
, 0);
7521 NDR_CHECK(ndr_pull_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_os_0
, 0);
7525 return NDR_ERR_SUCCESS
;
7528 _PUBLIC_
void ndr_print_netr_OsVersionContainer(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionContainer
*r
)
7530 ndr_print_struct(ndr
, name
, "netr_OsVersionContainer");
7532 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->length
);
7533 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->size
);
7534 ndr_print_ptr(ndr
, "os", r
->os
);
7537 ndr_print_netr_OsVersion(ndr
, "os", r
->os
);
7543 static enum ndr_err_code
ndr_push_netr_WorkstationInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_WorkstationInformation
*r
)
7545 if (ndr_flags
& NDR_SCALARS
) {
7546 NDR_CHECK(ndr_push_align(ndr
, 4));
7547 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7548 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_hostname
));
7549 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy1
));
7551 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy2
));
7552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy3
));
7553 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy4
));
7554 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7555 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7556 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7557 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7558 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
7559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
7560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
7561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
7563 if (ndr_flags
& NDR_BUFFERS
) {
7564 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7565 if (r
->dns_hostname
) {
7566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7568 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7569 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_hostname
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7575 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sitename
, ndr_charset_length(r
->sitename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7581 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy1
, ndr_charset_length(r
->dummy1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7584 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7586 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7587 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy2
, ndr_charset_length(r
->dummy2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7593 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy3
, ndr_charset_length(r
->dummy3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7599 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy4
, ndr_charset_length(r
->dummy4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7601 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7602 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7603 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7604 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7606 return NDR_ERR_SUCCESS
;
7609 static enum ndr_err_code
ndr_pull_netr_WorkstationInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_WorkstationInformation
*r
)
7611 uint32_t _ptr_dns_hostname
;
7612 TALLOC_CTX
*_mem_save_dns_hostname_0
;
7613 uint32_t _ptr_sitename
;
7614 TALLOC_CTX
*_mem_save_sitename_0
;
7615 uint32_t _ptr_dummy1
;
7616 TALLOC_CTX
*_mem_save_dummy1_0
;
7617 uint32_t _ptr_dummy2
;
7618 TALLOC_CTX
*_mem_save_dummy2_0
;
7619 uint32_t _ptr_dummy3
;
7620 TALLOC_CTX
*_mem_save_dummy3_0
;
7621 uint32_t _ptr_dummy4
;
7622 TALLOC_CTX
*_mem_save_dummy4_0
;
7623 if (ndr_flags
& NDR_SCALARS
) {
7624 NDR_CHECK(ndr_pull_align(ndr
, 4));
7625 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7626 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_hostname
));
7627 if (_ptr_dns_hostname
) {
7628 NDR_PULL_ALLOC(ndr
, r
->dns_hostname
);
7630 r
->dns_hostname
= NULL
;
7632 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
7633 if (_ptr_sitename
) {
7634 NDR_PULL_ALLOC(ndr
, r
->sitename
);
7638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy1
));
7640 NDR_PULL_ALLOC(ndr
, r
->dummy1
);
7644 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy2
));
7646 NDR_PULL_ALLOC(ndr
, r
->dummy2
);
7650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy3
));
7652 NDR_PULL_ALLOC(ndr
, r
->dummy3
);
7656 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy4
));
7658 NDR_PULL_ALLOC(ndr
, r
->dummy4
);
7662 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7663 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7664 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7665 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7666 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
7667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
7668 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
7669 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
7671 if (ndr_flags
& NDR_BUFFERS
) {
7672 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7673 if (r
->dns_hostname
) {
7674 _mem_save_dns_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7675 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_hostname
, 0);
7676 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_hostname
));
7677 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_hostname
));
7678 if (ndr_get_array_length(ndr
, &r
->dns_hostname
) > ndr_get_array_size(ndr
, &r
->dns_hostname
)) {
7679 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
));
7681 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t)));
7682 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_hostname
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t), CH_UTF16
));
7683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_hostname_0
, 0);
7686 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7687 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7688 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
7689 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sitename
));
7690 if (ndr_get_array_length(ndr
, &r
->sitename
) > ndr_get_array_size(ndr
, &r
->sitename
)) {
7691 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
));
7693 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t)));
7694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sitename
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t), CH_UTF16
));
7695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
7698 _mem_save_dummy1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7699 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy1
, 0);
7700 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy1
));
7701 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy1
));
7702 if (ndr_get_array_length(ndr
, &r
->dummy1
) > ndr_get_array_size(ndr
, &r
->dummy1
)) {
7703 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
));
7705 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t)));
7706 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy1
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t), CH_UTF16
));
7707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy1_0
, 0);
7710 _mem_save_dummy2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7711 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy2
, 0);
7712 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy2
));
7713 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy2
));
7714 if (ndr_get_array_length(ndr
, &r
->dummy2
) > ndr_get_array_size(ndr
, &r
->dummy2
)) {
7715 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
));
7717 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t)));
7718 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy2
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t), CH_UTF16
));
7719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy2_0
, 0);
7722 _mem_save_dummy3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7723 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy3
, 0);
7724 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy3
));
7725 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy3
));
7726 if (ndr_get_array_length(ndr
, &r
->dummy3
) > ndr_get_array_size(ndr
, &r
->dummy3
)) {
7727 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
));
7729 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t)));
7730 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy3
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t), CH_UTF16
));
7731 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy3_0
, 0);
7734 _mem_save_dummy4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7735 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy4
, 0);
7736 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy4
));
7737 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy4
));
7738 if (ndr_get_array_length(ndr
, &r
->dummy4
) > ndr_get_array_size(ndr
, &r
->dummy4
)) {
7739 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
));
7741 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t)));
7742 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy4
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t), CH_UTF16
));
7743 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy4_0
, 0);
7745 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7746 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7747 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7748 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7750 return NDR_ERR_SUCCESS
;
7753 _PUBLIC_
void ndr_print_netr_WorkstationInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_WorkstationInformation
*r
)
7755 ndr_print_struct(ndr
, name
, "netr_WorkstationInformation");
7757 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
7758 ndr_print_ptr(ndr
, "dns_hostname", r
->dns_hostname
);
7760 if (r
->dns_hostname
) {
7761 ndr_print_string(ndr
, "dns_hostname", r
->dns_hostname
);
7764 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
7767 ndr_print_string(ndr
, "sitename", r
->sitename
);
7770 ndr_print_ptr(ndr
, "dummy1", r
->dummy1
);
7773 ndr_print_string(ndr
, "dummy1", r
->dummy1
);
7776 ndr_print_ptr(ndr
, "dummy2", r
->dummy2
);
7779 ndr_print_string(ndr
, "dummy2", r
->dummy2
);
7782 ndr_print_ptr(ndr
, "dummy3", r
->dummy3
);
7785 ndr_print_string(ndr
, "dummy3", r
->dummy3
);
7788 ndr_print_ptr(ndr
, "dummy4", r
->dummy4
);
7791 ndr_print_string(ndr
, "dummy4", r
->dummy4
);
7794 ndr_print_netr_OsVersionContainer(ndr
, "os_version", &r
->os_version
);
7795 ndr_print_lsa_String(ndr
, "os_name", &r
->os_name
);
7796 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
7797 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
7798 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
7799 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
7800 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
7801 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
7805 static enum ndr_err_code
ndr_push_netr_WorkstationInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_WorkstationInfo
*r
)
7807 if (ndr_flags
& NDR_SCALARS
) {
7808 int level
= ndr_push_get_switch_value(ndr
, r
);
7809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7812 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_info
));
7816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
7820 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7823 if (ndr_flags
& NDR_BUFFERS
) {
7824 int level
= ndr_push_get_switch_value(ndr
, r
);
7827 if (r
->workstation_info
) {
7828 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7833 if (r
->lsa_policy_info
) {
7834 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7839 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7842 return NDR_ERR_SUCCESS
;
7845 static enum ndr_err_code
ndr_pull_netr_WorkstationInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_WorkstationInfo
*r
)
7849 TALLOC_CTX
*_mem_save_workstation_info_0
;
7850 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
7851 level
= ndr_pull_get_switch_value(ndr
, r
);
7852 if (ndr_flags
& NDR_SCALARS
) {
7853 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7854 if (_level
!= level
) {
7855 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7859 uint32_t _ptr_workstation_info
;
7860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_info
));
7861 if (_ptr_workstation_info
) {
7862 NDR_PULL_ALLOC(ndr
, r
->workstation_info
);
7864 r
->workstation_info
= NULL
;
7869 uint32_t _ptr_lsa_policy_info
;
7870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
7871 if (_ptr_lsa_policy_info
) {
7872 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
7874 r
->lsa_policy_info
= NULL
;
7879 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7882 if (ndr_flags
& NDR_BUFFERS
) {
7885 if (r
->workstation_info
) {
7886 _mem_save_workstation_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7887 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_info
, 0);
7888 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_info_0
, 0);
7894 if (r
->lsa_policy_info
) {
7895 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7896 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
7897 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
7903 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7906 return NDR_ERR_SUCCESS
;
7909 _PUBLIC_
void ndr_print_netr_WorkstationInfo(struct ndr_print
*ndr
, const char *name
, const union netr_WorkstationInfo
*r
)
7912 level
= ndr_print_get_switch_value(ndr
, r
);
7913 ndr_print_union(ndr
, name
, level
, "netr_WorkstationInfo");
7916 ndr_print_ptr(ndr
, "workstation_info", r
->workstation_info
);
7918 if (r
->workstation_info
) {
7919 ndr_print_netr_WorkstationInformation(ndr
, "workstation_info", r
->workstation_info
);
7925 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7927 if (r
->lsa_policy_info
) {
7928 ndr_print_netr_WorkstationInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7934 ndr_print_bad_level(ndr
, name
, level
);
7938 static enum ndr_err_code
ndr_push_netr_trust_extension(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_trust_extension
*r
)
7940 if (ndr_flags
& NDR_SCALARS
) {
7941 NDR_CHECK(ndr_push_align(ndr
, 4));
7942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7945 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->flags
));
7946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_type
));
7948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7950 if (ndr_flags
& NDR_BUFFERS
) {
7952 return NDR_ERR_SUCCESS
;
7955 static enum ndr_err_code
ndr_pull_netr_trust_extension(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension
*r
)
7957 if (ndr_flags
& NDR_SCALARS
) {
7958 NDR_CHECK(ndr_pull_align(ndr
, 4));
7959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7961 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7962 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->flags
));
7963 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
7964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_type
));
7965 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
7967 if (ndr_flags
& NDR_BUFFERS
) {
7969 return NDR_ERR_SUCCESS
;
7972 _PUBLIC_
void ndr_print_netr_trust_extension(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension
*r
)
7974 ndr_print_struct(ndr
, name
, "netr_trust_extension");
7976 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->length
);
7977 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7978 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->size
);
7979 ndr_print_netr_TrustFlags(ndr
, "flags", r
->flags
);
7980 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
7981 ndr_print_uint32(ndr
, "trust_type", r
->trust_type
);
7982 ndr_print_uint32(ndr
, "trust_attributes", r
->trust_attributes
);
7986 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
)
7988 if (ndr_flags
& NDR_SCALARS
) {
7989 NDR_CHECK(ndr_push_align(ndr
, 4));
7990 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
7991 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
7992 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
7994 if (ndr_flags
& NDR_BUFFERS
) {
7996 NDR_CHECK(ndr_push_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
7999 return NDR_ERR_SUCCESS
;
8002 static enum ndr_err_code
ndr_pull_netr_trust_extension_container(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension_container
*r
)
8005 TALLOC_CTX
*_mem_save_info_0
;
8006 if (ndr_flags
& NDR_SCALARS
) {
8007 NDR_CHECK(ndr_pull_align(ndr
, 4));
8008 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
8009 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
8010 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
8012 NDR_PULL_ALLOC(ndr
, r
->info
);
8017 if (ndr_flags
& NDR_BUFFERS
) {
8019 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8020 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
8021 NDR_CHECK(ndr_pull_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
8022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
8025 return NDR_ERR_SUCCESS
;
8028 _PUBLIC_
void ndr_print_netr_trust_extension_container(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension_container
*r
)
8030 ndr_print_struct(ndr
, name
, "netr_trust_extension_container");
8032 ndr_print_uint16(ndr
, "length", r
->length
);
8033 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
8034 ndr_print_ptr(ndr
, "info", r
->info
);
8037 ndr_print_netr_trust_extension(ndr
, "info", r
->info
);
8043 static enum ndr_err_code
ndr_push_netr_OneDomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OneDomainInfo
*r
)
8045 if (ndr_flags
& NDR_SCALARS
) {
8046 NDR_CHECK(ndr_push_align(ndr
, 4));
8047 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
8048 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8049 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8050 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8051 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
8052 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8053 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8054 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8055 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long1
));
8057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
8058 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8061 if (ndr_flags
& NDR_BUFFERS
) {
8062 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
8063 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8064 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8065 if (r
->domain_sid
) {
8066 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8068 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8069 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8070 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8071 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8073 return NDR_ERR_SUCCESS
;
8076 static enum ndr_err_code
ndr_pull_netr_OneDomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OneDomainInfo
*r
)
8078 uint32_t _ptr_domain_sid
;
8079 TALLOC_CTX
*_mem_save_domain_sid_0
;
8080 if (ndr_flags
& NDR_SCALARS
) {
8081 NDR_CHECK(ndr_pull_align(ndr
, 4));
8082 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
8083 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8084 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8085 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8086 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
8087 if (_ptr_domain_sid
) {
8088 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
8090 r
->domain_sid
= NULL
;
8092 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8093 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8094 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8095 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8096 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long1
));
8097 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
8098 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8099 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8101 if (ndr_flags
& NDR_BUFFERS
) {
8102 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
8103 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8104 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8105 if (r
->domain_sid
) {
8106 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8107 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
8108 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
8111 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8112 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8113 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8114 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8116 return NDR_ERR_SUCCESS
;
8119 _PUBLIC_
void ndr_print_netr_OneDomainInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_OneDomainInfo
*r
)
8121 ndr_print_struct(ndr
, name
, "netr_OneDomainInfo");
8123 ndr_print_lsa_String(ndr
, "domainname", &r
->domainname
);
8124 ndr_print_lsa_String(ndr
, "dns_domainname", &r
->dns_domainname
);
8125 ndr_print_lsa_String(ndr
, "dns_forestname", &r
->dns_forestname
);
8126 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
8127 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
8129 if (r
->domain_sid
) {
8130 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
8133 ndr_print_netr_trust_extension_container(ndr
, "trust_extension", &r
->trust_extension
);
8134 ndr_print_lsa_String(ndr
, "dummy_string2", &r
->dummy_string2
);
8135 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
8136 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
8137 ndr_print_uint32(ndr
, "dummy_long1", r
->dummy_long1
);
8138 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
8139 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8140 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8144 static enum ndr_err_code
ndr_push_netr_DomainInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInformation
*r
)
8146 uint32_t cntr_trusted_domains_1
;
8147 if (ndr_flags
& NDR_SCALARS
) {
8148 NDR_CHECK(ndr_push_align(ndr
, 4));
8149 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8151 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domains
));
8152 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8153 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8154 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8155 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8156 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8157 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
8158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->supported_enc_types
));
8159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8162 if (ndr_flags
& NDR_BUFFERS
) {
8163 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8164 if (r
->trusted_domains
) {
8165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8166 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8167 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8169 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8170 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8173 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8174 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8175 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8176 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8177 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8179 return NDR_ERR_SUCCESS
;
8182 static enum ndr_err_code
ndr_pull_netr_DomainInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInformation
*r
)
8184 uint32_t _ptr_trusted_domains
;
8185 uint32_t cntr_trusted_domains_1
;
8186 TALLOC_CTX
*_mem_save_trusted_domains_0
;
8187 TALLOC_CTX
*_mem_save_trusted_domains_1
;
8188 if (ndr_flags
& NDR_SCALARS
) {
8189 NDR_CHECK(ndr_pull_align(ndr
, 4));
8190 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trusted_domain_count
));
8192 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domains
));
8193 if (_ptr_trusted_domains
) {
8194 NDR_PULL_ALLOC(ndr
, r
->trusted_domains
);
8196 r
->trusted_domains
= NULL
;
8198 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8199 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8200 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8201 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8202 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8203 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
8204 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->supported_enc_types
));
8205 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8206 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8208 if (ndr_flags
& NDR_BUFFERS
) {
8209 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8210 if (r
->trusted_domains
) {
8211 _mem_save_trusted_domains_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8212 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8213 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domains
));
8214 NDR_PULL_ALLOC_N(ndr
, r
->trusted_domains
, ndr_get_array_size(ndr
, &r
->trusted_domains
));
8215 _mem_save_trusted_domains_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8216 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8217 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8218 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8220 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8221 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8223 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_1
, 0);
8224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_0
, 0);
8226 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8227 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8228 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8229 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8230 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8231 if (r
->trusted_domains
) {
8232 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusted_domains
, r
->trusted_domain_count
));
8235 return NDR_ERR_SUCCESS
;
8238 _PUBLIC_
void ndr_print_netr_DomainInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInformation
*r
)
8240 uint32_t cntr_trusted_domains_1
;
8241 ndr_print_struct(ndr
, name
, "netr_DomainInformation");
8243 ndr_print_netr_OneDomainInfo(ndr
, "primary_domain", &r
->primary_domain
);
8244 ndr_print_uint32(ndr
, "trusted_domain_count", r
->trusted_domain_count
);
8245 ndr_print_ptr(ndr
, "trusted_domains", r
->trusted_domains
);
8247 if (r
->trusted_domains
) {
8248 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusted_domains", (int)r
->trusted_domain_count
);
8250 for (cntr_trusted_domains_1
=0;cntr_trusted_domains_1
<r
->trusted_domain_count
;cntr_trusted_domains_1
++) {
8252 if (asprintf(&idx_1
, "[%d]", cntr_trusted_domains_1
) != -1) {
8253 ndr_print_netr_OneDomainInfo(ndr
, "trusted_domains", &r
->trusted_domains
[cntr_trusted_domains_1
]);
8260 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
8261 ndr_print_lsa_String(ndr
, "dns_hostname", &r
->dns_hostname
);
8262 ndr_print_lsa_String(ndr
, "dummy_string2", &r
->dummy_string2
);
8263 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
8264 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
8265 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
8266 ndr_print_uint32(ndr
, "supported_enc_types", r
->supported_enc_types
);
8267 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8268 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8272 static enum ndr_err_code
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
8274 if (ndr_flags
& NDR_SCALARS
) {
8275 int level
= ndr_push_get_switch_value(ndr
, r
);
8276 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8279 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_info
));
8283 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
8287 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8290 if (ndr_flags
& NDR_BUFFERS
) {
8291 int level
= ndr_push_get_switch_value(ndr
, r
);
8294 if (r
->domain_info
) {
8295 NDR_CHECK(ndr_push_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8300 if (r
->lsa_policy_info
) {
8301 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8306 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8309 return NDR_ERR_SUCCESS
;
8312 static enum ndr_err_code
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
8316 TALLOC_CTX
*_mem_save_domain_info_0
;
8317 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
8318 level
= ndr_pull_get_switch_value(ndr
, r
);
8319 if (ndr_flags
& NDR_SCALARS
) {
8320 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8321 if (_level
!= level
) {
8322 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8326 uint32_t _ptr_domain_info
;
8327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_info
));
8328 if (_ptr_domain_info
) {
8329 NDR_PULL_ALLOC(ndr
, r
->domain_info
);
8331 r
->domain_info
= NULL
;
8336 uint32_t _ptr_lsa_policy_info
;
8337 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
8338 if (_ptr_lsa_policy_info
) {
8339 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
8341 r
->lsa_policy_info
= NULL
;
8346 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8349 if (ndr_flags
& NDR_BUFFERS
) {
8352 if (r
->domain_info
) {
8353 _mem_save_domain_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8354 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_info
, 0);
8355 NDR_CHECK(ndr_pull_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8356 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_info_0
, 0);
8361 if (r
->lsa_policy_info
) {
8362 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8363 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
8364 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
8370 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8373 return NDR_ERR_SUCCESS
;
8376 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
8379 level
= ndr_print_get_switch_value(ndr
, r
);
8380 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
8383 ndr_print_ptr(ndr
, "domain_info", r
->domain_info
);
8385 if (r
->domain_info
) {
8386 ndr_print_netr_DomainInformation(ndr
, "domain_info", r
->domain_info
);
8392 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8394 if (r
->lsa_policy_info
) {
8395 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8401 ndr_print_bad_level(ndr
, name
, level
);
8405 static enum ndr_err_code
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const 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_push_align(ndr
, 4));
8412 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
8415 if (ndr_flags
& NDR_BUFFERS
) {
8417 ndr
->flags
= _flags_save_STRUCT
;
8419 return NDR_ERR_SUCCESS
;
8422 static enum ndr_err_code
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
8425 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8426 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8427 if (ndr_flags
& NDR_SCALARS
) {
8428 NDR_CHECK(ndr_pull_align(ndr
, 4));
8429 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
8432 if (ndr_flags
& NDR_BUFFERS
) {
8434 ndr
->flags
= _flags_save_STRUCT
;
8436 return NDR_ERR_SUCCESS
;
8439 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
8441 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
8443 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8444 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8446 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
8447 ndr_print_uint32(ndr
, "length", r
->length
);
8449 ndr
->flags
= _flags_save_STRUCT
;
8453 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8455 uint32_t cntr_sitename_1
;
8456 if (ndr_flags
& NDR_SCALARS
) {
8457 NDR_CHECK(ndr_push_align(ndr
, 4));
8458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8461 if (ndr_flags
& NDR_BUFFERS
) {
8463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8464 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8465 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8467 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8468 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8472 return NDR_ERR_SUCCESS
;
8475 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesWCtr
*r
)
8477 uint32_t _ptr_sitename
;
8478 uint32_t cntr_sitename_1
;
8479 TALLOC_CTX
*_mem_save_sitename_0
;
8480 TALLOC_CTX
*_mem_save_sitename_1
;
8481 if (ndr_flags
& NDR_SCALARS
) {
8482 NDR_CHECK(ndr_pull_align(ndr
, 4));
8483 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8484 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8485 if (_ptr_sitename
) {
8486 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8491 if (ndr_flags
& NDR_BUFFERS
) {
8493 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8494 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8495 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8496 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8497 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8498 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8499 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8500 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8502 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8503 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8509 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8512 return NDR_ERR_SUCCESS
;
8515 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8517 uint32_t cntr_sitename_1
;
8518 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesWCtr");
8520 ndr_print_uint32(ndr
, "count", r
->count
);
8521 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8524 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8526 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8528 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8529 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8539 static enum ndr_err_code
ndr_push_netr_DsRAddress(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddress
*r
)
8541 if (ndr_flags
& NDR_SCALARS
) {
8542 NDR_CHECK(ndr_push_align(ndr
, 4));
8543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
8544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8546 if (ndr_flags
& NDR_BUFFERS
) {
8548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8549 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->size
));
8552 return NDR_ERR_SUCCESS
;
8555 static enum ndr_err_code
ndr_pull_netr_DsRAddress(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddress
*r
)
8557 uint32_t _ptr_buffer
;
8558 TALLOC_CTX
*_mem_save_buffer_0
;
8559 if (ndr_flags
& NDR_SCALARS
) {
8560 NDR_CHECK(ndr_pull_align(ndr
, 4));
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
8563 NDR_PULL_ALLOC(ndr
, r
->buffer
);
8567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
8569 if (ndr_flags
& NDR_BUFFERS
) {
8571 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8572 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
8573 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
8574 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
));
8575 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
)));
8576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
8579 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->size
));
8582 return NDR_ERR_SUCCESS
;
8585 _PUBLIC_
void ndr_print_netr_DsRAddress(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddress
*r
)
8587 ndr_print_struct(ndr
, name
, "netr_DsRAddress");
8589 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
8592 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->size
);
8595 ndr_print_uint32(ndr
, "size", r
->size
);
8599 static enum ndr_err_code
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
8601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8602 return NDR_ERR_SUCCESS
;
8605 static enum ndr_err_code
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
8608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8610 return NDR_ERR_SUCCESS
;
8613 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
8615 const char *val
= NULL
;
8618 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8619 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
8620 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
8621 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
8623 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8626 static enum ndr_err_code
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8629 return NDR_ERR_SUCCESS
;
8632 static enum ndr_err_code
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8635 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8637 return NDR_ERR_SUCCESS
;
8640 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8642 ndr_print_uint32(ndr
, name
, r
);
8644 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
8645 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
8646 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
8647 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
8648 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
8649 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
8650 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
8654 static enum ndr_err_code
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
8656 if (ndr_flags
& NDR_SCALARS
) {
8657 NDR_CHECK(ndr_push_align(ndr
, 4));
8658 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
8659 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
8660 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
8661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
8662 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
8663 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
8664 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
8665 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8667 if (ndr_flags
& NDR_BUFFERS
) {
8668 if (r
->netbios_name
) {
8669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8670 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8672 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8676 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8678 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8681 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8684 return NDR_ERR_SUCCESS
;
8687 static enum ndr_err_code
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
8689 uint32_t _ptr_netbios_name
;
8690 TALLOC_CTX
*_mem_save_netbios_name_0
;
8691 uint32_t _ptr_dns_name
;
8692 TALLOC_CTX
*_mem_save_dns_name_0
;
8694 TALLOC_CTX
*_mem_save_sid_0
;
8695 if (ndr_flags
& NDR_SCALARS
) {
8696 NDR_CHECK(ndr_pull_align(ndr
, 4));
8697 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
8698 if (_ptr_netbios_name
) {
8699 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
8701 r
->netbios_name
= NULL
;
8703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
8704 if (_ptr_dns_name
) {
8705 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
8709 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
8710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
8711 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
8712 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
8713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
8715 NDR_PULL_ALLOC(ndr
, r
->sid
);
8719 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8721 if (ndr_flags
& NDR_BUFFERS
) {
8722 if (r
->netbios_name
) {
8723 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8724 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
8725 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
8726 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
8727 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
8728 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
));
8730 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
8731 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
8732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
8735 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8736 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
8737 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
8738 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
8739 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
8740 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
));
8742 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
8743 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
8744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
8747 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8748 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
8749 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
8753 return NDR_ERR_SUCCESS
;
8756 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
8758 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
8760 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
8762 if (r
->netbios_name
) {
8763 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
8766 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
8769 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
8772 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
8773 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
8774 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
8775 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
8776 ndr_print_ptr(ndr
, "sid", r
->sid
);
8779 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
8782 ndr_print_GUID(ndr
, "guid", &r
->guid
);
8786 static enum ndr_err_code
ndr_push_netr_DomainTrustList(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustList
*r
)
8788 uint32_t cntr_array_1
;
8789 if (ndr_flags
& NDR_SCALARS
) {
8790 NDR_CHECK(ndr_push_align(ndr
, 4));
8791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8792 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
8794 if (ndr_flags
& NDR_BUFFERS
) {
8796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8797 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8798 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8800 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8801 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8805 return NDR_ERR_SUCCESS
;
8808 static enum ndr_err_code
ndr_pull_netr_DomainTrustList(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustList
*r
)
8810 uint32_t _ptr_array
;
8811 uint32_t cntr_array_1
;
8812 TALLOC_CTX
*_mem_save_array_0
;
8813 TALLOC_CTX
*_mem_save_array_1
;
8814 if (ndr_flags
& NDR_SCALARS
) {
8815 NDR_CHECK(ndr_pull_align(ndr
, 4));
8816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
8819 NDR_PULL_ALLOC(ndr
, r
->array
);
8824 if (ndr_flags
& NDR_BUFFERS
) {
8826 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8827 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8828 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
8829 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
8830 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8831 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8832 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8833 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8835 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8836 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8838 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
8839 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
8842 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
8845 return NDR_ERR_SUCCESS
;
8848 _PUBLIC_
void ndr_print_netr_DomainTrustList(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustList
*r
)
8850 uint32_t cntr_array_1
;
8851 ndr_print_struct(ndr
, name
, "netr_DomainTrustList");
8853 ndr_print_uint32(ndr
, "count", r
->count
);
8854 ndr_print_ptr(ndr
, "array", r
->array
);
8857 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
8859 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
8861 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
8862 ndr_print_netr_DomainTrust(ndr
, "array", &r
->array
[cntr_array_1
]);
8872 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8874 uint32_t cntr_sitename_1
;
8875 uint32_t cntr_subnetname_1
;
8876 if (ndr_flags
& NDR_SCALARS
) {
8877 NDR_CHECK(ndr_push_align(ndr
, 4));
8878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8879 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8880 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->subnetname
));
8882 if (ndr_flags
& NDR_BUFFERS
) {
8884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8885 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8886 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8888 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8889 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8892 if (r
->subnetname
) {
8893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8894 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8895 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8897 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8898 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8902 return NDR_ERR_SUCCESS
;
8905 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesExWCtr
*r
)
8907 uint32_t _ptr_sitename
;
8908 uint32_t cntr_sitename_1
;
8909 TALLOC_CTX
*_mem_save_sitename_0
;
8910 TALLOC_CTX
*_mem_save_sitename_1
;
8911 uint32_t _ptr_subnetname
;
8912 uint32_t cntr_subnetname_1
;
8913 TALLOC_CTX
*_mem_save_subnetname_0
;
8914 TALLOC_CTX
*_mem_save_subnetname_1
;
8915 if (ndr_flags
& NDR_SCALARS
) {
8916 NDR_CHECK(ndr_pull_align(ndr
, 4));
8917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8918 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8919 if (_ptr_sitename
) {
8920 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_subnetname
));
8925 if (_ptr_subnetname
) {
8926 NDR_PULL_ALLOC(ndr
, r
->subnetname
);
8928 r
->subnetname
= NULL
;
8931 if (ndr_flags
& NDR_BUFFERS
) {
8933 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8934 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8936 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8937 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8938 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8939 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8940 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8942 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8943 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8948 if (r
->subnetname
) {
8949 _mem_save_subnetname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8950 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8951 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->subnetname
));
8952 NDR_PULL_ALLOC_N(ndr
, r
->subnetname
, ndr_get_array_size(ndr
, &r
->subnetname
));
8953 _mem_save_subnetname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8954 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
8955 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8956 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8958 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8959 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_1
, 0);
8962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_0
, 0);
8965 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8967 if (r
->subnetname
) {
8968 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->subnetname
, r
->count
));
8971 return NDR_ERR_SUCCESS
;
8974 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8976 uint32_t cntr_sitename_1
;
8977 uint32_t cntr_subnetname_1
;
8978 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExWCtr");
8980 ndr_print_uint32(ndr
, "count", r
->count
);
8981 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8984 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8986 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8988 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8989 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8996 ndr_print_ptr(ndr
, "subnetname", r
->subnetname
);
8998 if (r
->subnetname
) {
8999 ndr
->print(ndr
, "%s: ARRAY(%d)", "subnetname", (int)r
->count
);
9001 for (cntr_subnetname_1
=0;cntr_subnetname_1
<r
->count
;cntr_subnetname_1
++) {
9003 if (asprintf(&idx_1
, "[%d]", cntr_subnetname_1
) != -1) {
9004 ndr_print_lsa_String(ndr
, "subnetname", &r
->subnetname
[cntr_subnetname_1
]);
9014 static enum ndr_err_code
ndr_push_DcSitesCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct DcSitesCtr
*r
)
9016 uint32_t cntr_sites_1
;
9017 if (ndr_flags
& NDR_SCALARS
) {
9018 NDR_CHECK(ndr_push_align(ndr
, 4));
9019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
9020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sites
));
9022 if (ndr_flags
& NDR_BUFFERS
) {
9024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
9025 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9026 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9028 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9029 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9033 return NDR_ERR_SUCCESS
;
9036 static enum ndr_err_code
ndr_pull_DcSitesCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct DcSitesCtr
*r
)
9038 uint32_t _ptr_sites
;
9039 uint32_t cntr_sites_1
;
9040 TALLOC_CTX
*_mem_save_sites_0
;
9041 TALLOC_CTX
*_mem_save_sites_1
;
9042 if (ndr_flags
& NDR_SCALARS
) {
9043 NDR_CHECK(ndr_pull_align(ndr
, 4));
9044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sites
));
9045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sites
));
9047 NDR_PULL_ALLOC(ndr
, r
->sites
);
9052 if (ndr_flags
& NDR_BUFFERS
) {
9054 _mem_save_sites_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9055 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9056 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sites
));
9057 NDR_PULL_ALLOC_N(ndr
, r
->sites
, ndr_get_array_size(ndr
, &r
->sites
));
9058 _mem_save_sites_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9059 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9060 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9061 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9063 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9064 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_1
, 0);
9067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_0
, 0);
9070 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sites
, r
->num_sites
));
9073 return NDR_ERR_SUCCESS
;
9076 _PUBLIC_
void ndr_print_DcSitesCtr(struct ndr_print
*ndr
, const char *name
, const struct DcSitesCtr
*r
)
9078 uint32_t cntr_sites_1
;
9079 ndr_print_struct(ndr
, name
, "DcSitesCtr");
9081 ndr_print_uint32(ndr
, "num_sites", r
->num_sites
);
9082 ndr_print_ptr(ndr
, "sites", r
->sites
);
9085 ndr
->print(ndr
, "%s: ARRAY(%d)", "sites", (int)r
->num_sites
);
9087 for (cntr_sites_1
=0;cntr_sites_1
<r
->num_sites
;cntr_sites_1
++) {
9089 if (asprintf(&idx_1
, "[%d]", cntr_sites_1
) != -1) {
9090 ndr_print_lsa_String(ndr
, "sites", &r
->sites
[cntr_sites_1
]);
9100 static enum ndr_err_code
ndr_push_netr_TrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_TrustInfo
*r
)
9102 uint32_t cntr_data_1
;
9103 uint32_t cntr_entries_1
;
9104 if (ndr_flags
& NDR_SCALARS
) {
9105 NDR_CHECK(ndr_push_align(ndr
, 4));
9106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9107 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
9108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->entry_count
));
9109 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
9111 if (ndr_flags
& NDR_BUFFERS
) {
9113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9114 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
9119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9120 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9121 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9123 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9124 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9128 return NDR_ERR_SUCCESS
;
9131 static enum ndr_err_code
ndr_pull_netr_TrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_TrustInfo
*r
)
9134 uint32_t cntr_data_1
;
9135 TALLOC_CTX
*_mem_save_data_0
;
9136 TALLOC_CTX
*_mem_save_data_1
;
9137 uint32_t _ptr_entries
;
9138 uint32_t cntr_entries_1
;
9139 TALLOC_CTX
*_mem_save_entries_0
;
9140 TALLOC_CTX
*_mem_save_entries_1
;
9141 if (ndr_flags
& NDR_SCALARS
) {
9142 NDR_CHECK(ndr_pull_align(ndr
, 4));
9143 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9144 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
9146 NDR_PULL_ALLOC(ndr
, r
->data
);
9150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->entry_count
));
9151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
9153 NDR_PULL_ALLOC(ndr
, r
->entries
);
9158 if (ndr_flags
& NDR_BUFFERS
) {
9160 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9161 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9162 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
9163 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
9164 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9165 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9166 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9167 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
9169 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
9170 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
9173 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9174 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9175 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
9176 NDR_PULL_ALLOC_N(ndr
, r
->entries
, ndr_get_array_size(ndr
, &r
->entries
));
9177 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9178 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9179 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9180 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9182 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9183 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
9186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
9189 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->count
));
9192 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
9195 return NDR_ERR_SUCCESS
;
9198 _PUBLIC_
void ndr_print_netr_TrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_TrustInfo
*r
)
9200 uint32_t cntr_data_1
;
9201 uint32_t cntr_entries_1
;
9202 ndr_print_struct(ndr
, name
, "netr_TrustInfo");
9204 ndr_print_uint32(ndr
, "count", r
->count
);
9205 ndr_print_ptr(ndr
, "data", r
->data
);
9208 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", (int)r
->count
);
9210 for (cntr_data_1
=0;cntr_data_1
<r
->count
;cntr_data_1
++) {
9212 if (asprintf(&idx_1
, "[%d]", cntr_data_1
) != -1) {
9213 ndr_print_uint32(ndr
, "data", r
->data
[cntr_data_1
]);
9220 ndr_print_uint32(ndr
, "entry_count", r
->entry_count
);
9221 ndr_print_ptr(ndr
, "entries", r
->entries
);
9224 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
9226 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
9228 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
9229 ndr_print_lsa_String(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
9239 static enum ndr_err_code
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
9241 if (flags
& NDR_IN
) {
9242 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9243 if (r
->in
.server_name
) {
9244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9247 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
));
9249 if (r
->in
.account_name
== NULL
) {
9250 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9255 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
));
9256 if (r
->in
.workstation
== NULL
) {
9257 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9262 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9264 if (flags
& NDR_OUT
) {
9265 if (r
->out
.info
== NULL
) {
9266 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9268 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
9270 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9272 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9274 return NDR_ERR_SUCCESS
;
9277 static enum ndr_err_code
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
9279 uint32_t _ptr_server_name
;
9281 TALLOC_CTX
*_mem_save_server_name_0
;
9282 TALLOC_CTX
*_mem_save_info_0
;
9283 TALLOC_CTX
*_mem_save_info_1
;
9284 if (flags
& NDR_IN
) {
9285 ZERO_STRUCT(r
->out
);
9287 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9288 if (_ptr_server_name
) {
9289 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9291 r
->in
.server_name
= NULL
;
9293 if (r
->in
.server_name
) {
9294 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9295 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9296 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9297 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9298 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9299 return 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
));
9301 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9302 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
));
9303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9307 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9308 return 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
));
9310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9311 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
));
9312 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9313 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9314 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9315 return 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
));
9317 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9318 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9319 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9320 ZERO_STRUCTP(r
->out
.info
);
9322 if (flags
& NDR_OUT
) {
9323 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9324 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9326 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9327 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9328 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
9330 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
9332 *r
->out
.info
= NULL
;
9335 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9336 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
9337 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
9340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9341 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9343 return NDR_ERR_SUCCESS
;
9346 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
9348 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
9350 if (flags
& NDR_SET_VALUES
) {
9351 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9353 if (flags
& NDR_IN
) {
9354 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
9356 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9358 if (r
->in
.server_name
) {
9359 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9362 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9364 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9366 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9368 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9372 if (flags
& NDR_OUT
) {
9373 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
9375 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9377 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
9380 ndr_print_netr_UasInfo(ndr
, "info", *r
->out
.info
);
9384 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9390 static enum ndr_err_code
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
9392 if (flags
& NDR_IN
) {
9393 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9394 if (r
->in
.server_name
) {
9395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9398 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
));
9400 if (r
->in
.account_name
== NULL
) {
9401 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9405 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9406 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
));
9407 if (r
->in
.workstation
== NULL
) {
9408 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9413 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9415 if (flags
& NDR_OUT
) {
9416 if (r
->out
.info
== NULL
) {
9417 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9419 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9420 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9422 return NDR_ERR_SUCCESS
;
9425 static enum ndr_err_code
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
9427 uint32_t _ptr_server_name
;
9428 TALLOC_CTX
*_mem_save_server_name_0
;
9429 TALLOC_CTX
*_mem_save_info_0
;
9430 if (flags
& NDR_IN
) {
9431 ZERO_STRUCT(r
->out
);
9433 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9434 if (_ptr_server_name
) {
9435 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9437 r
->in
.server_name
= NULL
;
9439 if (r
->in
.server_name
) {
9440 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9441 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9442 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9443 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9444 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9445 return 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
));
9447 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9448 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
));
9449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9451 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9452 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9453 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9454 return 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
));
9456 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9457 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
));
9458 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9459 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9460 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9461 return 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
));
9463 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9464 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9465 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9466 ZERO_STRUCTP(r
->out
.info
);
9468 if (flags
& NDR_OUT
) {
9469 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9470 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9472 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9473 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9474 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9476 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9478 return NDR_ERR_SUCCESS
;
9481 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
9483 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
9485 if (flags
& NDR_SET_VALUES
) {
9486 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9488 if (flags
& NDR_IN
) {
9489 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
9491 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9493 if (r
->in
.server_name
) {
9494 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9497 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9499 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9501 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9503 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9507 if (flags
& NDR_OUT
) {
9508 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
9510 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9512 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
9514 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9520 static enum ndr_err_code
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
9522 if (flags
& NDR_IN
) {
9523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9524 if (r
->in
.server_name
) {
9525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9528 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
));
9530 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9531 if (r
->in
.computer_name
) {
9532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9535 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
));
9537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9538 if (r
->in
.credential
) {
9539 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9541 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9542 if (r
->in
.return_authenticator
) {
9543 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9545 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9546 if (r
->in
.logon
== NULL
) {
9547 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9549 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9550 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9551 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
9553 if (flags
& NDR_OUT
) {
9554 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9555 if (r
->out
.return_authenticator
) {
9556 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9558 if (r
->out
.validation
== NULL
) {
9559 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9561 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9562 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9563 if (r
->out
.authoritative
== NULL
) {
9564 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9566 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
9567 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9569 return NDR_ERR_SUCCESS
;
9572 static enum ndr_err_code
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
9574 uint32_t _ptr_server_name
;
9575 uint32_t _ptr_computer_name
;
9576 uint32_t _ptr_credential
;
9577 uint32_t _ptr_return_authenticator
;
9578 TALLOC_CTX
*_mem_save_server_name_0
;
9579 TALLOC_CTX
*_mem_save_computer_name_0
;
9580 TALLOC_CTX
*_mem_save_credential_0
;
9581 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9582 TALLOC_CTX
*_mem_save_logon_0
;
9583 TALLOC_CTX
*_mem_save_validation_0
;
9584 TALLOC_CTX
*_mem_save_authoritative_0
;
9585 if (flags
& NDR_IN
) {
9586 ZERO_STRUCT(r
->out
);
9588 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9589 if (_ptr_server_name
) {
9590 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9592 r
->in
.server_name
= NULL
;
9594 if (r
->in
.server_name
) {
9595 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9596 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9597 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9598 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9599 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9600 return 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
));
9602 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9603 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
));
9604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9606 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9607 if (_ptr_computer_name
) {
9608 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9610 r
->in
.computer_name
= NULL
;
9612 if (r
->in
.computer_name
) {
9613 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9614 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9615 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9616 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9617 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9618 return 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
));
9620 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9621 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
));
9622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9624 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9625 if (_ptr_credential
) {
9626 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9628 r
->in
.credential
= NULL
;
9630 if (r
->in
.credential
) {
9631 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9632 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9633 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9636 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9637 if (_ptr_return_authenticator
) {
9638 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9640 r
->in
.return_authenticator
= NULL
;
9642 if (r
->in
.return_authenticator
) {
9643 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9644 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9645 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9648 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9649 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9650 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
9652 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9653 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
9654 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9655 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
9657 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
9658 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9659 ZERO_STRUCTP(r
->out
.validation
);
9660 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9661 ZERO_STRUCTP(r
->out
.authoritative
);
9663 if (flags
& NDR_OUT
) {
9664 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9665 if (_ptr_return_authenticator
) {
9666 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9668 r
->out
.return_authenticator
= NULL
;
9670 if (r
->out
.return_authenticator
) {
9671 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9672 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9673 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9674 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9676 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9677 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9679 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9680 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
9681 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9682 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
9684 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9685 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9687 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9688 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
9689 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
9690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
9691 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9693 return NDR_ERR_SUCCESS
;
9696 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
9698 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
9700 if (flags
& NDR_SET_VALUES
) {
9701 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9703 if (flags
& NDR_IN
) {
9704 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
9706 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9708 if (r
->in
.server_name
) {
9709 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9712 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9714 if (r
->in
.computer_name
) {
9715 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9718 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9720 if (r
->in
.credential
) {
9721 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9724 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9726 if (r
->in
.return_authenticator
) {
9727 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9730 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9731 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
9733 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
9734 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
9736 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
9739 if (flags
& NDR_OUT
) {
9740 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
9742 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9744 if (r
->out
.return_authenticator
) {
9745 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9748 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
9750 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
9751 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
9753 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
9755 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
9757 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9763 static enum ndr_err_code
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
9765 if (flags
& NDR_IN
) {
9766 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9767 if (r
->in
.server_name
) {
9768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9771 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
));
9773 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9774 if (r
->in
.computer_name
) {
9775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9778 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
));
9780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9781 if (r
->in
.credential
) {
9782 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9784 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9785 if (r
->in
.return_authenticator
) {
9786 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9788 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9789 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9790 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9792 if (flags
& NDR_OUT
) {
9793 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9794 if (r
->out
.return_authenticator
) {
9795 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9797 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9799 return NDR_ERR_SUCCESS
;
9802 static enum ndr_err_code
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
9804 uint32_t _ptr_server_name
;
9805 uint32_t _ptr_computer_name
;
9806 uint32_t _ptr_credential
;
9807 uint32_t _ptr_return_authenticator
;
9808 TALLOC_CTX
*_mem_save_server_name_0
;
9809 TALLOC_CTX
*_mem_save_computer_name_0
;
9810 TALLOC_CTX
*_mem_save_credential_0
;
9811 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9812 if (flags
& NDR_IN
) {
9813 ZERO_STRUCT(r
->out
);
9815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9816 if (_ptr_server_name
) {
9817 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9819 r
->in
.server_name
= NULL
;
9821 if (r
->in
.server_name
) {
9822 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9823 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9824 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9825 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9826 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9827 return 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
));
9829 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9830 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
));
9831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9834 if (_ptr_computer_name
) {
9835 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9837 r
->in
.computer_name
= NULL
;
9839 if (r
->in
.computer_name
) {
9840 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9841 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9842 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9843 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9844 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9845 return 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
));
9847 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9848 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
));
9849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9851 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9852 if (_ptr_credential
) {
9853 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9855 r
->in
.credential
= NULL
;
9857 if (r
->in
.credential
) {
9858 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9859 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9860 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9864 if (_ptr_return_authenticator
) {
9865 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9867 r
->in
.return_authenticator
= NULL
;
9869 if (r
->in
.return_authenticator
) {
9870 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9871 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9872 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9875 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9876 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9877 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9879 if (flags
& NDR_OUT
) {
9880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9881 if (_ptr_return_authenticator
) {
9882 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9884 r
->out
.return_authenticator
= NULL
;
9886 if (r
->out
.return_authenticator
) {
9887 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9888 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9889 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9892 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9894 return NDR_ERR_SUCCESS
;
9897 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
9899 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
9901 if (flags
& NDR_SET_VALUES
) {
9902 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9904 if (flags
& NDR_IN
) {
9905 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
9907 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9909 if (r
->in
.server_name
) {
9910 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9913 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9915 if (r
->in
.computer_name
) {
9916 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9919 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9921 if (r
->in
.credential
) {
9922 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9925 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9927 if (r
->in
.return_authenticator
) {
9928 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9931 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9932 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
9933 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
9936 if (flags
& NDR_OUT
) {
9937 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
9939 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9941 if (r
->out
.return_authenticator
) {
9942 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9945 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9951 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
9953 if (flags
& NDR_IN
) {
9954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9955 if (r
->in
.server_name
) {
9956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9959 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
));
9961 if (r
->in
.computer_name
== NULL
) {
9962 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9967 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
));
9968 if (r
->in
.credentials
== NULL
) {
9969 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9971 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
9973 if (flags
& NDR_OUT
) {
9974 if (r
->out
.return_credentials
== NULL
) {
9975 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9977 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
9978 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9980 return NDR_ERR_SUCCESS
;
9983 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
9985 uint32_t _ptr_server_name
;
9986 TALLOC_CTX
*_mem_save_server_name_0
;
9987 TALLOC_CTX
*_mem_save_credentials_0
;
9988 TALLOC_CTX
*_mem_save_return_credentials_0
;
9989 if (flags
& NDR_IN
) {
9990 ZERO_STRUCT(r
->out
);
9992 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9993 if (_ptr_server_name
) {
9994 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9996 r
->in
.server_name
= NULL
;
9998 if (r
->in
.server_name
) {
9999 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10000 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10001 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10002 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10003 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10004 return 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
));
10006 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10007 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
));
10008 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10010 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10011 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10012 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10013 return 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
));
10015 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10016 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
));
10017 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10018 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10020 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10021 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10022 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10023 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10024 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10025 ZERO_STRUCTP(r
->out
.return_credentials
);
10027 if (flags
& NDR_OUT
) {
10028 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10029 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10031 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10032 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10033 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10035 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10037 return NDR_ERR_SUCCESS
;
10040 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
10042 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
10044 if (flags
& NDR_SET_VALUES
) {
10045 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10047 if (flags
& NDR_IN
) {
10048 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
10050 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10052 if (r
->in
.server_name
) {
10053 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10056 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10058 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10060 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10062 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10066 if (flags
& NDR_OUT
) {
10067 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
10069 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10071 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10073 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10079 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
10081 if (flags
& NDR_IN
) {
10082 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10083 if (r
->in
.server_name
) {
10084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10087 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
));
10089 if (r
->in
.account_name
== NULL
) {
10090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10095 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
));
10096 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10097 if (r
->in
.computer_name
== NULL
) {
10098 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10103 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
));
10104 if (r
->in
.credentials
== NULL
) {
10105 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10107 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10109 if (flags
& NDR_OUT
) {
10110 if (r
->out
.return_credentials
== NULL
) {
10111 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10113 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10114 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10116 return NDR_ERR_SUCCESS
;
10119 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
10121 uint32_t _ptr_server_name
;
10122 TALLOC_CTX
*_mem_save_server_name_0
;
10123 TALLOC_CTX
*_mem_save_credentials_0
;
10124 TALLOC_CTX
*_mem_save_return_credentials_0
;
10125 if (flags
& NDR_IN
) {
10126 ZERO_STRUCT(r
->out
);
10128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10129 if (_ptr_server_name
) {
10130 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10132 r
->in
.server_name
= NULL
;
10134 if (r
->in
.server_name
) {
10135 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10136 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10137 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10138 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10139 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
10142 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10143 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
));
10144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10146 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10147 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10148 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10149 return 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
));
10151 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10152 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
));
10153 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10154 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10155 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10156 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10157 return 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
));
10159 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10160 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
));
10161 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10162 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10164 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10165 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10166 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10167 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10168 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10169 ZERO_STRUCTP(r
->out
.return_credentials
);
10171 if (flags
& NDR_OUT
) {
10172 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10173 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10175 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10176 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10177 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10178 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10179 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10181 return NDR_ERR_SUCCESS
;
10184 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
10186 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
10188 if (flags
& NDR_SET_VALUES
) {
10189 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10191 if (flags
& NDR_IN
) {
10192 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
10194 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10196 if (r
->in
.server_name
) {
10197 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10200 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10202 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10204 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10205 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10207 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10209 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10211 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10215 if (flags
& NDR_OUT
) {
10216 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
10218 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10220 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10222 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10228 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
10230 if (flags
& NDR_IN
) {
10231 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10232 if (r
->in
.server_name
) {
10233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10236 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
));
10238 if (r
->in
.account_name
== NULL
) {
10239 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10244 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
));
10245 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10246 if (r
->in
.computer_name
== NULL
) {
10247 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10252 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
));
10253 if (r
->in
.credential
== NULL
) {
10254 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10256 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10257 if (r
->in
.new_password
== NULL
) {
10258 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10260 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10262 if (flags
& NDR_OUT
) {
10263 if (r
->out
.return_authenticator
== NULL
) {
10264 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10266 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10267 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10269 return NDR_ERR_SUCCESS
;
10272 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
10274 uint32_t _ptr_server_name
;
10275 TALLOC_CTX
*_mem_save_server_name_0
;
10276 TALLOC_CTX
*_mem_save_credential_0
;
10277 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10278 TALLOC_CTX
*_mem_save_new_password_0
;
10279 if (flags
& NDR_IN
) {
10280 ZERO_STRUCT(r
->out
);
10282 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10283 if (_ptr_server_name
) {
10284 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10286 r
->in
.server_name
= NULL
;
10288 if (r
->in
.server_name
) {
10289 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10290 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10291 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10292 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10293 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
10296 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10297 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
));
10298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10300 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10301 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10302 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10303 return 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
));
10305 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10306 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
));
10307 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10308 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10309 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10310 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10311 return 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
));
10313 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10314 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
));
10315 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10316 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10318 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10319 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10320 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10322 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10323 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
10325 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10326 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
10327 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10328 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
10329 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10330 ZERO_STRUCTP(r
->out
.return_authenticator
);
10332 if (flags
& NDR_OUT
) {
10333 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10334 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10336 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10337 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10338 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10340 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10342 return NDR_ERR_SUCCESS
;
10345 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
10347 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
10349 if (flags
& NDR_SET_VALUES
) {
10350 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10352 if (flags
& NDR_IN
) {
10353 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
10355 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10357 if (r
->in
.server_name
) {
10358 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10361 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10363 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10365 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10366 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10368 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10370 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10372 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10374 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
10376 ndr_print_samr_Password(ndr
, "new_password", r
->in
.new_password
);
10380 if (flags
& NDR_OUT
) {
10381 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
10383 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10385 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10387 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10393 static enum ndr_err_code
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
10395 if (flags
& NDR_IN
) {
10396 if (r
->in
.logon_server
== NULL
) {
10397 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10402 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
));
10403 if (r
->in
.computername
== NULL
) {
10404 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10409 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10410 if (r
->in
.credential
== NULL
) {
10411 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10413 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10414 if (r
->in
.return_authenticator
== NULL
) {
10415 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10417 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10418 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10419 if (r
->in
.sequence_num
== NULL
) {
10420 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10422 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
10423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10425 if (flags
& NDR_OUT
) {
10426 if (r
->out
.return_authenticator
== NULL
) {
10427 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10429 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10430 if (r
->out
.sequence_num
== NULL
) {
10431 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10433 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
10434 if (r
->out
.delta_enum_array
== NULL
) {
10435 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10437 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10438 if (*r
->out
.delta_enum_array
) {
10439 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10441 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10443 return NDR_ERR_SUCCESS
;
10446 static enum ndr_err_code
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
10448 uint32_t _ptr_delta_enum_array
;
10449 TALLOC_CTX
*_mem_save_credential_0
;
10450 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10451 TALLOC_CTX
*_mem_save_sequence_num_0
;
10452 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10453 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10454 if (flags
& NDR_IN
) {
10455 ZERO_STRUCT(r
->out
);
10457 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10458 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10459 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10460 return 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
));
10462 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10463 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
));
10464 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10465 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10466 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10467 return 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
));
10469 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10470 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10471 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10472 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10474 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10475 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10476 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10478 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10479 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10481 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10482 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10483 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10485 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10486 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10487 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
10489 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10490 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10491 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
10492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10494 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10495 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10496 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10497 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
10498 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10499 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10501 if (flags
& NDR_OUT
) {
10502 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10503 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10505 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10506 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10507 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10509 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10510 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10512 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10513 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10514 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
10515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10516 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10517 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10519 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10520 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10522 if (_ptr_delta_enum_array
) {
10523 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10525 *r
->out
.delta_enum_array
= NULL
;
10527 if (*r
->out
.delta_enum_array
) {
10528 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10529 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10530 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10531 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10533 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10534 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10536 return NDR_ERR_SUCCESS
;
10539 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
10541 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
10543 if (flags
& NDR_SET_VALUES
) {
10544 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10546 if (flags
& NDR_IN
) {
10547 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
10549 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10551 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10553 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10555 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10557 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10559 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10561 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10563 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10565 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10566 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
10568 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
10570 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10573 if (flags
& NDR_OUT
) {
10574 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
10576 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10578 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10580 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
10582 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
10584 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10586 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10588 if (*r
->out
.delta_enum_array
) {
10589 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10593 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10599 static enum ndr_err_code
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
10601 if (flags
& NDR_IN
) {
10602 if (r
->in
.logon_server
== NULL
) {
10603 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10608 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
));
10609 if (r
->in
.computername
== NULL
) {
10610 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10615 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10616 if (r
->in
.credential
== NULL
) {
10617 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10619 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10620 if (r
->in
.return_authenticator
== NULL
) {
10621 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10623 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10624 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10625 if (r
->in
.sync_context
== NULL
) {
10626 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
10629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10631 if (flags
& NDR_OUT
) {
10632 if (r
->out
.return_authenticator
== NULL
) {
10633 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10635 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10636 if (r
->out
.sync_context
== NULL
) {
10637 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
10640 if (r
->out
.delta_enum_array
== NULL
) {
10641 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10643 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10644 if (*r
->out
.delta_enum_array
) {
10645 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10647 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10649 return NDR_ERR_SUCCESS
;
10652 static enum ndr_err_code
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
10654 uint32_t _ptr_delta_enum_array
;
10655 TALLOC_CTX
*_mem_save_credential_0
;
10656 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10657 TALLOC_CTX
*_mem_save_sync_context_0
;
10658 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10659 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10660 if (flags
& NDR_IN
) {
10661 ZERO_STRUCT(r
->out
);
10663 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10664 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10665 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10666 return 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
));
10668 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10669 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
));
10670 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10671 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10672 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10673 return 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
));
10675 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10676 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10677 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10678 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10680 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10681 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10682 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10684 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10685 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10687 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10688 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10689 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10691 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10692 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10693 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
10695 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10696 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
10698 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10699 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10700 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10701 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10702 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10703 *r
->out
.sync_context
= *r
->in
.sync_context
;
10704 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10705 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10707 if (flags
& NDR_OUT
) {
10708 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10709 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10711 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10712 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10713 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10715 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10716 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10718 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10719 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
10721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10722 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10723 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10725 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10726 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10728 if (_ptr_delta_enum_array
) {
10729 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10731 *r
->out
.delta_enum_array
= NULL
;
10733 if (*r
->out
.delta_enum_array
) {
10734 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10735 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10736 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10740 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10742 return NDR_ERR_SUCCESS
;
10745 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
10747 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
10749 if (flags
& NDR_SET_VALUES
) {
10750 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10752 if (flags
& NDR_IN
) {
10753 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
10755 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10757 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10759 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10761 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10763 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10765 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10767 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10769 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10771 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10772 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
10774 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
10776 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10779 if (flags
& NDR_OUT
) {
10780 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
10782 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10784 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10786 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
10788 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
10790 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10792 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10794 if (*r
->out
.delta_enum_array
) {
10795 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10799 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10805 static enum ndr_err_code
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
10807 if (flags
& NDR_IN
) {
10808 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10809 if (r
->in
.logon_server
) {
10810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10813 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
));
10815 if (r
->in
.computername
== NULL
) {
10816 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10821 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10822 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10823 if (r
->in
.return_authenticator
== NULL
) {
10824 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10826 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10827 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
10829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
10832 if (flags
& NDR_OUT
) {
10833 if (r
->out
.return_authenticator
== NULL
) {
10834 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10836 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10837 if (r
->out
.buffer
== NULL
) {
10838 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10841 struct ndr_push
*_ndr_buffer
;
10842 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10843 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10844 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10846 if (r
->out
.count_returned
== NULL
) {
10847 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
10850 if (r
->out
.total_entries
== NULL
) {
10851 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
10854 if (r
->out
.recordid
== NULL
) {
10855 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10857 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10858 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10860 return NDR_ERR_SUCCESS
;
10863 static enum ndr_err_code
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
10865 uint32_t _ptr_logon_server
;
10866 TALLOC_CTX
*_mem_save_logon_server_0
;
10867 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10868 TALLOC_CTX
*_mem_save_buffer_0
;
10869 TALLOC_CTX
*_mem_save_count_returned_0
;
10870 TALLOC_CTX
*_mem_save_total_entries_0
;
10871 TALLOC_CTX
*_mem_save_recordid_0
;
10872 if (flags
& NDR_IN
) {
10873 ZERO_STRUCT(r
->out
);
10875 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10876 if (_ptr_logon_server
) {
10877 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10879 r
->in
.logon_server
= NULL
;
10881 if (r
->in
.logon_server
) {
10882 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10883 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10884 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10885 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10886 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10887 return 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
));
10889 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10890 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
));
10891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10893 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10894 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10895 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10896 return 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
));
10898 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10899 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10900 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10902 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10904 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10905 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10906 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10908 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
10910 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
10912 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10913 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10914 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10915 ZERO_STRUCTP(r
->out
.buffer
);
10916 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10917 ZERO_STRUCTP(r
->out
.count_returned
);
10918 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10919 ZERO_STRUCTP(r
->out
.total_entries
);
10920 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10921 ZERO_STRUCTP(r
->out
.recordid
);
10923 if (flags
& NDR_OUT
) {
10924 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10925 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10927 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10928 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10929 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10930 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10931 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10932 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10934 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10935 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
10937 struct ndr_pull
*_ndr_buffer
;
10938 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10939 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10940 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
10943 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10944 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10946 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10947 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
10948 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
10949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
10950 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10951 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10953 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10954 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
10955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
10956 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
10957 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10958 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10960 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10961 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
10962 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
10964 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10966 return NDR_ERR_SUCCESS
;
10969 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
10971 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
10973 if (flags
& NDR_SET_VALUES
) {
10974 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10976 if (flags
& NDR_IN
) {
10977 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
10979 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10981 if (r
->in
.logon_server
) {
10982 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10985 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10987 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10989 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
10990 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10992 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10994 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
10995 ndr_print_uint32(ndr
, "count", r
->in
.count
);
10996 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10997 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11000 if (flags
& NDR_OUT
) {
11001 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
11003 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11005 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11007 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11009 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11011 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11013 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11015 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11017 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11019 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11021 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11023 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11029 static enum ndr_err_code
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
11031 if (flags
& NDR_IN
) {
11032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11033 if (r
->in
.logon_server
) {
11034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11037 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
));
11039 if (r
->in
.computername
== NULL
) {
11040 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11045 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11046 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11047 if (r
->in
.return_authenticator
== NULL
) {
11048 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11050 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
11052 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
11054 if (r
->in
.recordid
== NULL
) {
11055 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11057 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11059 if (flags
& NDR_OUT
) {
11060 if (r
->out
.return_authenticator
== NULL
) {
11061 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11063 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11064 if (r
->out
.buffer
== NULL
) {
11065 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11068 struct ndr_push
*_ndr_buffer
;
11069 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11070 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11071 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11073 if (r
->out
.count_returned
== NULL
) {
11074 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11076 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
11077 if (r
->out
.total_entries
== NULL
) {
11078 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
11081 if (r
->out
.next_reference
== NULL
) {
11082 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
11085 if (r
->out
.recordid
== NULL
) {
11086 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11088 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11089 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11091 return NDR_ERR_SUCCESS
;
11094 static enum ndr_err_code
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
11096 uint32_t _ptr_logon_server
;
11097 TALLOC_CTX
*_mem_save_logon_server_0
;
11098 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11099 TALLOC_CTX
*_mem_save_buffer_0
;
11100 TALLOC_CTX
*_mem_save_count_returned_0
;
11101 TALLOC_CTX
*_mem_save_total_entries_0
;
11102 TALLOC_CTX
*_mem_save_next_reference_0
;
11103 TALLOC_CTX
*_mem_save_recordid_0
;
11104 if (flags
& NDR_IN
) {
11105 ZERO_STRUCT(r
->out
);
11107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11108 if (_ptr_logon_server
) {
11109 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11111 r
->in
.logon_server
= NULL
;
11113 if (r
->in
.logon_server
) {
11114 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11115 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11116 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11117 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11118 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11119 return 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
));
11121 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11122 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
));
11123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11125 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
11126 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
11127 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
11128 return 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
));
11130 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
11131 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
11132 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11133 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11134 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11136 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11137 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11138 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11140 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
11141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11142 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
11143 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11144 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
11146 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11147 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11148 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11149 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11150 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11151 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11152 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11153 ZERO_STRUCTP(r
->out
.buffer
);
11154 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11155 ZERO_STRUCTP(r
->out
.count_returned
);
11156 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11157 ZERO_STRUCTP(r
->out
.total_entries
);
11158 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11159 ZERO_STRUCTP(r
->out
.next_reference
);
11160 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11161 *r
->out
.recordid
= *r
->in
.recordid
;
11163 if (flags
& NDR_OUT
) {
11164 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11165 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11167 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11168 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11169 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11170 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11171 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11172 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11174 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11175 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
11177 struct ndr_pull
*_ndr_buffer
;
11178 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11179 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11180 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
11183 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11184 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11186 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11187 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
11188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
11189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
11190 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11191 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11193 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11194 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
11195 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
11196 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
11197 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11198 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11200 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11201 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
11202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
11203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
11204 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11205 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11207 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11208 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11209 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11210 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11211 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11213 return NDR_ERR_SUCCESS
;
11216 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
11218 ndr_print_struct(ndr
, name
, "netr_AccountSync");
11220 if (flags
& NDR_SET_VALUES
) {
11221 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11223 if (flags
& NDR_IN
) {
11224 ndr_print_struct(ndr
, "in", "netr_AccountSync");
11226 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11228 if (r
->in
.logon_server
) {
11229 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11232 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
11234 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11236 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11237 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11239 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11241 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
11242 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11243 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11244 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
11246 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
11250 if (flags
& NDR_OUT
) {
11251 ndr_print_struct(ndr
, "out", "netr_AccountSync");
11253 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11255 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11257 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11259 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11261 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11263 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11265 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11267 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11269 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
11271 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
11273 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11275 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11277 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11283 static enum ndr_err_code
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
11285 if (flags
& NDR_IN
) {
11286 if (r
->in
.logon_server
== NULL
) {
11287 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11292 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
));
11293 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11294 if (r
->in
.domainname
) {
11295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11298 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11301 if (flags
& NDR_OUT
) {
11302 if (r
->out
.dcname
== NULL
) {
11303 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11305 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11306 if (*r
->out
.dcname
) {
11307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11310 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11312 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11314 return NDR_ERR_SUCCESS
;
11317 static enum ndr_err_code
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
11319 uint32_t _ptr_domainname
;
11320 uint32_t _ptr_dcname
;
11321 TALLOC_CTX
*_mem_save_domainname_0
;
11322 TALLOC_CTX
*_mem_save_dcname_0
;
11323 TALLOC_CTX
*_mem_save_dcname_1
;
11324 if (flags
& NDR_IN
) {
11325 ZERO_STRUCT(r
->out
);
11327 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11328 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11329 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11330 return 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
));
11332 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11333 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
));
11334 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11335 if (_ptr_domainname
) {
11336 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11338 r
->in
.domainname
= NULL
;
11340 if (r
->in
.domainname
) {
11341 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11342 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11343 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11344 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11345 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11346 return 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
));
11348 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11349 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11350 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11352 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11353 ZERO_STRUCTP(r
->out
.dcname
);
11355 if (flags
& NDR_OUT
) {
11356 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11357 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11359 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11360 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11361 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11363 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11365 *r
->out
.dcname
= NULL
;
11367 if (*r
->out
.dcname
) {
11368 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11369 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11370 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11371 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11372 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11373 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
));
11375 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11376 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11377 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11379 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11380 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11382 return NDR_ERR_SUCCESS
;
11385 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
11387 ndr_print_struct(ndr
, name
, "netr_GetDcName");
11389 if (flags
& NDR_SET_VALUES
) {
11390 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11392 if (flags
& NDR_IN
) {
11393 ndr_print_struct(ndr
, "in", "netr_GetDcName");
11395 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11397 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11399 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11401 if (r
->in
.domainname
) {
11402 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11407 if (flags
& NDR_OUT
) {
11408 ndr_print_struct(ndr
, "out", "netr_GetDcName");
11410 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11412 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11414 if (*r
->out
.dcname
) {
11415 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11419 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11425 static enum ndr_err_code
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
11427 if (flags
& NDR_IN
) {
11428 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11429 if (r
->in
.logon_server
) {
11430 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11433 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
));
11435 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11438 if (flags
& NDR_OUT
) {
11439 if (r
->out
.query
== NULL
) {
11440 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11442 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11443 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11444 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11446 return NDR_ERR_SUCCESS
;
11449 static enum ndr_err_code
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
11451 uint32_t _ptr_logon_server
;
11452 TALLOC_CTX
*_mem_save_logon_server_0
;
11453 TALLOC_CTX
*_mem_save_query_0
;
11454 if (flags
& NDR_IN
) {
11455 ZERO_STRUCT(r
->out
);
11457 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11458 if (_ptr_logon_server
) {
11459 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11461 r
->in
.logon_server
= NULL
;
11463 if (r
->in
.logon_server
) {
11464 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11465 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11466 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11467 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11468 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11469 return 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
));
11471 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11472 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
));
11473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11475 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11477 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11478 ZERO_STRUCTP(r
->out
.query
);
11480 if (flags
& NDR_OUT
) {
11481 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11482 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11484 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11485 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11486 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11487 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11488 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11489 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11491 return NDR_ERR_SUCCESS
;
11494 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
11496 ndr_print_struct(ndr
, name
, "netr_LogonControl");
11498 if (flags
& NDR_SET_VALUES
) {
11499 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11501 if (flags
& NDR_IN
) {
11502 ndr_print_struct(ndr
, "in", "netr_LogonControl");
11504 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11506 if (r
->in
.logon_server
) {
11507 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11510 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11511 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11514 if (flags
& NDR_OUT
) {
11515 ndr_print_struct(ndr
, "out", "netr_LogonControl");
11517 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11519 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11520 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11522 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11528 static enum ndr_err_code
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
11530 if (flags
& NDR_IN
) {
11531 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11532 if (r
->in
.logon_server
) {
11533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11536 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
));
11538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11539 if (r
->in
.domainname
) {
11540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11543 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11546 if (flags
& NDR_OUT
) {
11547 if (r
->out
.dcname
== NULL
) {
11548 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11550 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11551 if (*r
->out
.dcname
) {
11552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11555 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11557 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11559 return NDR_ERR_SUCCESS
;
11562 static enum ndr_err_code
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
11564 uint32_t _ptr_logon_server
;
11565 uint32_t _ptr_domainname
;
11566 uint32_t _ptr_dcname
;
11567 TALLOC_CTX
*_mem_save_logon_server_0
;
11568 TALLOC_CTX
*_mem_save_domainname_0
;
11569 TALLOC_CTX
*_mem_save_dcname_0
;
11570 TALLOC_CTX
*_mem_save_dcname_1
;
11571 if (flags
& NDR_IN
) {
11572 ZERO_STRUCT(r
->out
);
11574 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11575 if (_ptr_logon_server
) {
11576 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11578 r
->in
.logon_server
= NULL
;
11580 if (r
->in
.logon_server
) {
11581 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11582 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11583 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11584 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11585 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11586 return 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
));
11588 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11589 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
));
11590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11593 if (_ptr_domainname
) {
11594 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11596 r
->in
.domainname
= NULL
;
11598 if (r
->in
.domainname
) {
11599 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11601 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11602 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11603 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11604 return 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
));
11606 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11607 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11610 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11611 ZERO_STRUCTP(r
->out
.dcname
);
11613 if (flags
& NDR_OUT
) {
11614 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11615 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11617 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11618 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11621 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11623 *r
->out
.dcname
= NULL
;
11625 if (*r
->out
.dcname
) {
11626 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11627 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11628 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11629 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11630 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11631 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
));
11633 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11634 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11638 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11640 return NDR_ERR_SUCCESS
;
11643 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
11645 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
11647 if (flags
& NDR_SET_VALUES
) {
11648 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11650 if (flags
& NDR_IN
) {
11651 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
11653 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11655 if (r
->in
.logon_server
) {
11656 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11659 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11661 if (r
->in
.domainname
) {
11662 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11667 if (flags
& NDR_OUT
) {
11668 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
11670 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11672 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11674 if (*r
->out
.dcname
) {
11675 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11679 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11685 static enum ndr_err_code
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
11687 if (flags
& NDR_IN
) {
11688 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11689 if (r
->in
.logon_server
) {
11690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11693 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
));
11695 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11697 if (r
->in
.data
== NULL
) {
11698 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11700 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11701 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11703 if (flags
& NDR_OUT
) {
11704 if (r
->out
.query
== NULL
) {
11705 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11707 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11708 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11709 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11711 return NDR_ERR_SUCCESS
;
11714 static enum ndr_err_code
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
11716 uint32_t _ptr_logon_server
;
11717 TALLOC_CTX
*_mem_save_logon_server_0
;
11718 TALLOC_CTX
*_mem_save_data_0
;
11719 TALLOC_CTX
*_mem_save_query_0
;
11720 if (flags
& NDR_IN
) {
11721 ZERO_STRUCT(r
->out
);
11723 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11724 if (_ptr_logon_server
) {
11725 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11727 r
->in
.logon_server
= NULL
;
11729 if (r
->in
.logon_server
) {
11730 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11731 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11732 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11733 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11734 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11735 return 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
));
11737 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11738 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
));
11739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11741 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11743 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11744 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
11746 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11747 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
11748 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11749 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
11751 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11752 ZERO_STRUCTP(r
->out
.query
);
11754 if (flags
& NDR_OUT
) {
11755 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11756 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11758 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11759 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11760 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11761 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11763 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11765 return NDR_ERR_SUCCESS
;
11768 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
11770 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
11772 if (flags
& NDR_SET_VALUES
) {
11773 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11775 if (flags
& NDR_IN
) {
11776 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
11778 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11780 if (r
->in
.logon_server
) {
11781 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11784 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11785 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11786 ndr_print_ptr(ndr
, "data", r
->in
.data
);
11788 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
11789 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
11793 if (flags
& NDR_OUT
) {
11794 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
11796 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11798 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11799 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11801 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11807 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11809 if (flags
& NDR_IN
) {
11810 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11811 if (r
->in
.server_name
) {
11812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11815 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
));
11817 if (r
->in
.account_name
== NULL
) {
11818 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11823 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
));
11824 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11825 if (r
->in
.computer_name
== NULL
) {
11826 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11831 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
));
11832 if (r
->in
.credentials
== NULL
) {
11833 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11835 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11836 if (r
->in
.negotiate_flags
== NULL
) {
11837 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11839 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
11841 if (flags
& NDR_OUT
) {
11842 if (r
->out
.return_credentials
== NULL
) {
11843 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11845 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11846 if (r
->out
.negotiate_flags
== NULL
) {
11847 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11849 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
11850 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11852 return NDR_ERR_SUCCESS
;
11855 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
11857 uint32_t _ptr_server_name
;
11858 TALLOC_CTX
*_mem_save_server_name_0
;
11859 TALLOC_CTX
*_mem_save_credentials_0
;
11860 TALLOC_CTX
*_mem_save_return_credentials_0
;
11861 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
11862 if (flags
& NDR_IN
) {
11863 ZERO_STRUCT(r
->out
);
11865 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11866 if (_ptr_server_name
) {
11867 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11869 r
->in
.server_name
= NULL
;
11871 if (r
->in
.server_name
) {
11872 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11873 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11874 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11875 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11876 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11879 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11880 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
));
11881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
11884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
11885 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
11886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
11888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
11889 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
));
11890 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
11891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11892 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11893 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11894 return 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
));
11896 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11897 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
));
11898 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11899 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
11901 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11902 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
11903 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11905 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11906 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
11908 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11909 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11910 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
11911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11912 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11913 ZERO_STRUCTP(r
->out
.return_credentials
);
11914 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11915 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
11917 if (flags
& NDR_OUT
) {
11918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11919 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11921 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11922 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
11923 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11925 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11926 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11928 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11929 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11930 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
11931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11932 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11934 return NDR_ERR_SUCCESS
;
11937 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11939 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
11941 if (flags
& NDR_SET_VALUES
) {
11942 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11944 if (flags
& NDR_IN
) {
11945 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
11947 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11949 if (r
->in
.server_name
) {
11950 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11953 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
11955 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
11957 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
11958 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
11960 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11962 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
11964 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
11966 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
11968 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
11972 if (flags
& NDR_OUT
) {
11973 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
11975 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
11977 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
11979 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
11981 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
11983 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11989 static enum ndr_err_code
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
11991 if (flags
& NDR_IN
) {
11992 if (r
->in
.logon_server
== NULL
) {
11993 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11998 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
));
11999 if (r
->in
.computername
== NULL
) {
12000 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12005 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12006 if (r
->in
.credential
== 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
->in
.credential
));
12010 if (r
->in
.return_authenticator
== NULL
) {
12011 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12013 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12014 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
12015 NDR_CHECK(ndr_push_SyncStateEnum(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
12016 if (r
->in
.sync_context
== NULL
) {
12017 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
12020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
12022 if (flags
& NDR_OUT
) {
12023 if (r
->out
.return_authenticator
== NULL
) {
12024 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12026 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12027 if (r
->out
.sync_context
== NULL
) {
12028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
12031 if (r
->out
.delta_enum_array
== NULL
) {
12032 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12034 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12035 if (*r
->out
.delta_enum_array
) {
12036 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12038 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12040 return NDR_ERR_SUCCESS
;
12043 static enum ndr_err_code
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
12045 uint32_t _ptr_delta_enum_array
;
12046 TALLOC_CTX
*_mem_save_credential_0
;
12047 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12048 TALLOC_CTX
*_mem_save_sync_context_0
;
12049 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12050 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12051 if (flags
& NDR_IN
) {
12052 ZERO_STRUCT(r
->out
);
12054 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12055 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12056 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12057 return 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
));
12059 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12060 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
));
12061 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12062 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12063 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12064 return 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
));
12066 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12067 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12068 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12069 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12071 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12072 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12073 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12075 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12076 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12078 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12079 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12080 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12082 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
12083 NDR_CHECK(ndr_pull_SyncStateEnum(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
12084 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12085 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
12087 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12088 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12089 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
12090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12091 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
12092 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12093 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12094 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12095 *r
->out
.sync_context
= *r
->in
.sync_context
;
12096 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12097 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12099 if (flags
& NDR_OUT
) {
12100 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12101 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12103 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12104 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12105 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12107 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12108 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12110 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12111 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12112 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
12113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12114 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12115 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12117 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12118 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12120 if (_ptr_delta_enum_array
) {
12121 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12123 *r
->out
.delta_enum_array
= NULL
;
12125 if (*r
->out
.delta_enum_array
) {
12126 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12127 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12128 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12132 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12134 return NDR_ERR_SUCCESS
;
12137 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
12139 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
12141 if (flags
& NDR_SET_VALUES
) {
12142 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12144 if (flags
& NDR_IN
) {
12145 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
12147 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12149 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12151 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12153 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12155 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12157 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12159 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12161 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12163 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
12164 ndr_print_SyncStateEnum(ndr
, "restart_state", r
->in
.restart_state
);
12165 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
12167 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
12169 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
12172 if (flags
& NDR_OUT
) {
12173 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
12175 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12177 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12179 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
12181 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
12183 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12185 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12187 if (*r
->out
.delta_enum_array
) {
12188 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12192 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12198 static enum ndr_err_code
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
12200 if (flags
& NDR_IN
) {
12201 if (r
->in
.logon_server
== NULL
) {
12202 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12207 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
));
12208 if (r
->in
.computername
== NULL
) {
12209 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12213 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12214 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12215 if (r
->in
.credential
== 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
->in
.credential
));
12219 if (r
->in
.return_authenticator
== NULL
) {
12220 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12222 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12224 struct ndr_push
*_ndr_change_log_entry
;
12225 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
)));
12226 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12227 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
)));
12229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12231 if (flags
& NDR_OUT
) {
12232 if (r
->out
.return_authenticator
== NULL
) {
12233 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12235 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12236 if (r
->out
.delta_enum_array
== NULL
) {
12237 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12239 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12240 if (*r
->out
.delta_enum_array
) {
12241 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12243 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12245 return NDR_ERR_SUCCESS
;
12248 static enum ndr_err_code
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
12250 uint32_t _ptr_delta_enum_array
;
12251 TALLOC_CTX
*_mem_save_credential_0
;
12252 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12253 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12254 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12255 if (flags
& NDR_IN
) {
12256 ZERO_STRUCT(r
->out
);
12258 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12259 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12260 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12261 return 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
));
12263 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12264 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
));
12265 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12266 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12267 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12268 return 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
));
12270 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12271 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12272 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12273 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12275 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12276 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12277 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12278 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12279 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12280 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12282 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12283 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12284 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12285 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12287 struct ndr_pull
*_ndr_change_log_entry
;
12288 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12289 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12290 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12292 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
12293 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12294 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12295 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12296 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12298 if (flags
& NDR_OUT
) {
12299 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12300 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12302 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12303 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12304 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12306 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12307 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12309 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12310 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12311 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12312 if (_ptr_delta_enum_array
) {
12313 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12315 *r
->out
.delta_enum_array
= NULL
;
12317 if (*r
->out
.delta_enum_array
) {
12318 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12319 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12320 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12324 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12326 return NDR_ERR_SUCCESS
;
12329 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
12331 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
12333 if (flags
& NDR_SET_VALUES
) {
12334 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12336 if (flags
& NDR_IN
) {
12337 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
12339 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12341 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12343 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12345 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12347 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12349 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12351 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12353 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12355 ndr_print_netr_ChangeLogEntry(ndr
, "change_log_entry", &r
->in
.change_log_entry
);
12356 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
);
12359 if (flags
& NDR_OUT
) {
12360 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
12362 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12364 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12366 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12368 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12370 if (*r
->out
.delta_enum_array
) {
12371 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12375 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12381 static enum ndr_err_code
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
12383 if (flags
& NDR_IN
) {
12384 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
12385 if (r
->in
.logon_server
) {
12386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12389 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
));
12391 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
12392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
12393 if (r
->in
.data
== NULL
) {
12394 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12396 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12397 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12399 if (flags
& NDR_OUT
) {
12400 if (r
->out
.query
== NULL
) {
12401 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12403 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12404 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12405 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12407 return NDR_ERR_SUCCESS
;
12410 static enum ndr_err_code
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
12412 uint32_t _ptr_logon_server
;
12413 TALLOC_CTX
*_mem_save_logon_server_0
;
12414 TALLOC_CTX
*_mem_save_data_0
;
12415 TALLOC_CTX
*_mem_save_query_0
;
12416 if (flags
& NDR_IN
) {
12417 ZERO_STRUCT(r
->out
);
12419 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
12420 if (_ptr_logon_server
) {
12421 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
12423 r
->in
.logon_server
= NULL
;
12425 if (r
->in
.logon_server
) {
12426 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12427 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
12428 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12429 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12430 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12431 return 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
));
12433 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12434 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
));
12435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
12437 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
12438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
12439 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12440 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
12442 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12443 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
12444 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12445 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12446 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
12447 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12448 ZERO_STRUCTP(r
->out
.query
);
12450 if (flags
& NDR_OUT
) {
12451 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12452 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12454 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12455 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
12456 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12457 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
12459 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12461 return NDR_ERR_SUCCESS
;
12464 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
12466 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
12468 if (flags
& NDR_SET_VALUES
) {
12469 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12471 if (flags
& NDR_IN
) {
12472 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
12474 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12476 if (r
->in
.logon_server
) {
12477 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12480 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
12481 ndr_print_uint32(ndr
, "level", r
->in
.level
);
12482 ndr_print_ptr(ndr
, "data", r
->in
.data
);
12484 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
12485 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
12489 if (flags
& NDR_OUT
) {
12490 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
12492 ndr_print_ptr(ndr
, "query", r
->out
.query
);
12494 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
12495 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
12497 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12503 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12505 if (flags
& NDR_IN
) {
12506 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12507 if (r
->in
.server_name
) {
12508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12511 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
));
12514 if (flags
& NDR_OUT
) {
12515 if (r
->out
.trusted_domains_blob
== NULL
) {
12516 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12518 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12519 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12521 return NDR_ERR_SUCCESS
;
12524 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomains
*r
)
12526 uint32_t _ptr_server_name
;
12527 TALLOC_CTX
*_mem_save_server_name_0
;
12528 TALLOC_CTX
*_mem_save_trusted_domains_blob_0
;
12529 if (flags
& NDR_IN
) {
12530 ZERO_STRUCT(r
->out
);
12532 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12533 if (_ptr_server_name
) {
12534 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12536 r
->in
.server_name
= NULL
;
12538 if (r
->in
.server_name
) {
12539 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12540 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12541 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12542 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12543 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12544 return 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
));
12546 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12547 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
));
12548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12550 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12551 ZERO_STRUCTP(r
->out
.trusted_domains_blob
);
12553 if (flags
& NDR_OUT
) {
12554 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12555 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12557 _mem_save_trusted_domains_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12558 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusted_domains_blob
, LIBNDR_FLAG_REF_ALLOC
);
12559 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_blob_0
, LIBNDR_FLAG_REF_ALLOC
);
12561 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12563 return NDR_ERR_SUCCESS
;
12566 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12568 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomains");
12570 if (flags
& NDR_SET_VALUES
) {
12571 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12573 if (flags
& NDR_IN
) {
12574 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomains");
12576 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12578 if (r
->in
.server_name
) {
12579 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12584 if (flags
& NDR_OUT
) {
12585 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomains");
12587 ndr_print_ptr(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12589 ndr_print_netr_Blob(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12591 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12597 static enum ndr_err_code
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
12599 if (flags
& NDR_IN
) {
12600 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
12601 if (r
->in
.server_unc
) {
12602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12605 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
));
12607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
12608 if (r
->in
.domain_name
) {
12609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12612 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
));
12614 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
12615 if (r
->in
.domain_guid
) {
12616 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12618 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
12619 if (r
->in
.site_guid
) {
12620 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12622 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
12624 if (flags
& NDR_OUT
) {
12625 if (r
->out
.info
== NULL
) {
12626 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12628 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
12629 if (*r
->out
.info
) {
12630 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12632 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12634 return NDR_ERR_SUCCESS
;
12637 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
12639 uint32_t _ptr_server_unc
;
12640 uint32_t _ptr_domain_name
;
12641 uint32_t _ptr_domain_guid
;
12642 uint32_t _ptr_site_guid
;
12643 uint32_t _ptr_info
;
12644 TALLOC_CTX
*_mem_save_server_unc_0
;
12645 TALLOC_CTX
*_mem_save_domain_name_0
;
12646 TALLOC_CTX
*_mem_save_domain_guid_0
;
12647 TALLOC_CTX
*_mem_save_site_guid_0
;
12648 TALLOC_CTX
*_mem_save_info_0
;
12649 TALLOC_CTX
*_mem_save_info_1
;
12650 if (flags
& NDR_IN
) {
12651 ZERO_STRUCT(r
->out
);
12653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
12654 if (_ptr_server_unc
) {
12655 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
12657 r
->in
.server_unc
= NULL
;
12659 if (r
->in
.server_unc
) {
12660 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12661 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
12662 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
12663 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
12664 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
12665 return 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
));
12667 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
12668 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
));
12669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
12671 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
12672 if (_ptr_domain_name
) {
12673 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
12675 r
->in
.domain_name
= NULL
;
12677 if (r
->in
.domain_name
) {
12678 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12679 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
12680 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
12681 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
12682 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
12683 return 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
));
12685 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
12686 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
));
12687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
12689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
12690 if (_ptr_domain_guid
) {
12691 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
12693 r
->in
.domain_guid
= NULL
;
12695 if (r
->in
.domain_guid
) {
12696 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12697 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
12698 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
12701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
12702 if (_ptr_site_guid
) {
12703 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
12705 r
->in
.site_guid
= NULL
;
12707 if (r
->in
.site_guid
) {
12708 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12709 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
12710 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
12713 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
12714 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12715 ZERO_STRUCTP(r
->out
.info
);
12717 if (flags
& NDR_OUT
) {
12718 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12719 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12721 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12722 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12723 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12725 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
12727 *r
->out
.info
= NULL
;
12729 if (*r
->out
.info
) {
12730 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12731 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
12732 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12736 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12738 return NDR_ERR_SUCCESS
;
12741 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
12743 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
12745 if (flags
& NDR_SET_VALUES
) {
12746 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12748 if (flags
& NDR_IN
) {
12749 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
12751 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
12753 if (r
->in
.server_unc
) {
12754 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
12757 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
12759 if (r
->in
.domain_name
) {
12760 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
12763 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
12765 if (r
->in
.domain_guid
) {
12766 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
12769 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
12771 if (r
->in
.site_guid
) {
12772 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
12775 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
12778 if (flags
& NDR_OUT
) {
12779 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
12781 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12783 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
12785 if (*r
->out
.info
) {
12786 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
12790 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12796 static enum ndr_err_code
ndr_push_netr_LogonGetCapabilities(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12798 if (flags
& NDR_IN
) {
12799 if (r
->in
.server_name
== NULL
) {
12800 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12805 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
));
12806 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12807 if (r
->in
.computer_name
) {
12808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12811 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
));
12813 if (r
->in
.credential
== NULL
) {
12814 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12816 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12817 if (r
->in
.return_authenticator
== NULL
) {
12818 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12820 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.query_level
));
12823 if (flags
& NDR_OUT
) {
12824 if (r
->out
.return_authenticator
== NULL
) {
12825 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12827 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12828 if (r
->out
.capabilities
== NULL
) {
12829 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12831 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12832 NDR_CHECK(ndr_push_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12833 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12835 return NDR_ERR_SUCCESS
;
12838 static enum ndr_err_code
ndr_pull_netr_LogonGetCapabilities(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetCapabilities
*r
)
12840 uint32_t _ptr_computer_name
;
12841 TALLOC_CTX
*_mem_save_computer_name_0
;
12842 TALLOC_CTX
*_mem_save_credential_0
;
12843 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12844 TALLOC_CTX
*_mem_save_capabilities_0
;
12845 if (flags
& NDR_IN
) {
12846 ZERO_STRUCT(r
->out
);
12848 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12849 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12850 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12851 return 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
));
12853 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12854 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
));
12855 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12856 if (_ptr_computer_name
) {
12857 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12859 r
->in
.computer_name
= NULL
;
12861 if (r
->in
.computer_name
) {
12862 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12863 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12864 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12865 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12866 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12867 return 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
));
12869 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12870 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
));
12871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12873 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12874 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12876 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12877 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12878 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12880 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12881 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12883 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12884 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12885 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12887 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.query_level
));
12888 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12889 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12890 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12891 ZERO_STRUCTP(r
->out
.capabilities
);
12893 if (flags
& NDR_OUT
) {
12894 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12895 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12897 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12898 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12899 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12902 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12904 _mem_save_capabilities_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12905 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.capabilities
, LIBNDR_FLAG_REF_ALLOC
);
12906 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12907 NDR_CHECK(ndr_pull_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_capabilities_0
, LIBNDR_FLAG_REF_ALLOC
);
12909 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12911 return NDR_ERR_SUCCESS
;
12914 _PUBLIC_
void ndr_print_netr_LogonGetCapabilities(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12916 ndr_print_struct(ndr
, name
, "netr_LogonGetCapabilities");
12918 if (flags
& NDR_SET_VALUES
) {
12919 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12921 if (flags
& NDR_IN
) {
12922 ndr_print_struct(ndr
, "in", "netr_LogonGetCapabilities");
12924 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12926 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12928 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12930 if (r
->in
.computer_name
) {
12931 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12934 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12936 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12938 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12940 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12942 ndr_print_uint32(ndr
, "query_level", r
->in
.query_level
);
12945 if (flags
& NDR_OUT
) {
12946 ndr_print_struct(ndr
, "out", "netr_LogonGetCapabilities");
12948 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12950 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12952 ndr_print_ptr(ndr
, "capabilities", r
->out
.capabilities
);
12954 ndr_print_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
);
12955 ndr_print_netr_Capabilities(ndr
, "capabilities", r
->out
.capabilities
);
12957 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12963 static enum ndr_err_code
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
12965 if (flags
& NDR_IN
) {
12967 if (flags
& NDR_OUT
) {
12968 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12970 return NDR_ERR_SUCCESS
;
12973 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
12975 if (flags
& NDR_IN
) {
12977 if (flags
& NDR_OUT
) {
12978 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12980 return NDR_ERR_SUCCESS
;
12983 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
12985 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
12987 if (flags
& NDR_SET_VALUES
) {
12988 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12990 if (flags
& NDR_IN
) {
12991 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
12995 if (flags
& NDR_OUT
) {
12996 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
12998 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13004 static enum ndr_err_code
ndr_push_netr_LogonGetTrustRid(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13006 if (flags
& NDR_IN
) {
13007 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13008 if (r
->in
.server_name
) {
13009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13012 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
));
13014 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13015 if (r
->in
.domain_name
) {
13016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13019 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
));
13022 if (flags
& NDR_OUT
) {
13023 if (r
->out
.rid
== NULL
) {
13024 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13027 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13029 return NDR_ERR_SUCCESS
;
13032 static enum ndr_err_code
ndr_pull_netr_LogonGetTrustRid(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetTrustRid
*r
)
13034 uint32_t _ptr_server_name
;
13035 uint32_t _ptr_domain_name
;
13036 TALLOC_CTX
*_mem_save_server_name_0
;
13037 TALLOC_CTX
*_mem_save_domain_name_0
;
13038 TALLOC_CTX
*_mem_save_rid_0
;
13039 if (flags
& NDR_IN
) {
13040 ZERO_STRUCT(r
->out
);
13042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13043 if (_ptr_server_name
) {
13044 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13046 r
->in
.server_name
= NULL
;
13048 if (r
->in
.server_name
) {
13049 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13050 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13051 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13052 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13053 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13054 return 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
));
13056 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13057 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
));
13058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13060 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13061 if (_ptr_domain_name
) {
13062 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13064 r
->in
.domain_name
= NULL
;
13066 if (r
->in
.domain_name
) {
13067 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13069 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13070 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13071 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13072 return 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
));
13074 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13075 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
));
13076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13078 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13079 ZERO_STRUCTP(r
->out
.rid
);
13081 if (flags
& NDR_OUT
) {
13082 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13083 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13085 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13086 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13087 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13089 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13091 return NDR_ERR_SUCCESS
;
13094 _PUBLIC_
void ndr_print_netr_LogonGetTrustRid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13096 ndr_print_struct(ndr
, name
, "netr_LogonGetTrustRid");
13098 if (flags
& NDR_SET_VALUES
) {
13099 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13101 if (flags
& NDR_IN
) {
13102 ndr_print_struct(ndr
, "in", "netr_LogonGetTrustRid");
13104 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13106 if (r
->in
.server_name
) {
13107 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13110 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13112 if (r
->in
.domain_name
) {
13113 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13118 if (flags
& NDR_OUT
) {
13119 ndr_print_struct(ndr
, "out", "netr_LogonGetTrustRid");
13121 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13123 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13125 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13131 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13133 if (flags
& NDR_IN
) {
13135 if (flags
& NDR_OUT
) {
13136 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13138 return NDR_ERR_SUCCESS
;
13141 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13143 if (flags
& NDR_IN
) {
13145 if (flags
& NDR_OUT
) {
13146 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13148 return NDR_ERR_SUCCESS
;
13151 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13153 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
13155 if (flags
& NDR_SET_VALUES
) {
13156 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13158 if (flags
& NDR_IN
) {
13159 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13163 if (flags
& NDR_OUT
) {
13164 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13166 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13172 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13174 if (flags
& NDR_IN
) {
13176 if (flags
& NDR_OUT
) {
13177 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13179 return NDR_ERR_SUCCESS
;
13182 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13184 if (flags
& NDR_IN
) {
13186 if (flags
& NDR_OUT
) {
13187 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13189 return NDR_ERR_SUCCESS
;
13192 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13194 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13196 if (flags
& NDR_SET_VALUES
) {
13197 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13199 if (flags
& NDR_IN
) {
13200 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13204 if (flags
& NDR_OUT
) {
13205 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13207 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13213 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13215 if (flags
& NDR_IN
) {
13216 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13217 if (r
->in
.server_name
) {
13218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13221 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
));
13223 if (r
->in
.account_name
== NULL
) {
13224 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13227 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13229 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
));
13230 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13231 if (r
->in
.computer_name
== NULL
) {
13232 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13237 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
));
13238 if (r
->in
.credentials
== NULL
) {
13239 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13241 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13242 if (r
->in
.negotiate_flags
== NULL
) {
13243 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13245 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
13247 if (flags
& NDR_OUT
) {
13248 if (r
->out
.return_credentials
== NULL
) {
13249 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13251 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13252 if (r
->out
.negotiate_flags
== NULL
) {
13253 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13255 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
13256 if (r
->out
.rid
== NULL
) {
13257 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13260 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13262 return NDR_ERR_SUCCESS
;
13265 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
13267 uint32_t _ptr_server_name
;
13268 TALLOC_CTX
*_mem_save_server_name_0
;
13269 TALLOC_CTX
*_mem_save_credentials_0
;
13270 TALLOC_CTX
*_mem_save_return_credentials_0
;
13271 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
13272 TALLOC_CTX
*_mem_save_rid_0
;
13273 if (flags
& NDR_IN
) {
13274 ZERO_STRUCT(r
->out
);
13276 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13277 if (_ptr_server_name
) {
13278 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13280 r
->in
.server_name
= NULL
;
13282 if (r
->in
.server_name
) {
13283 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13284 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13285 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13286 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13287 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
13290 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13291 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
));
13292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13294 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
13295 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
13296 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
13297 return 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
));
13299 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
13300 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
));
13301 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
13302 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13303 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13304 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13305 return 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
));
13307 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13308 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
));
13309 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13310 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
13312 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13313 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
13314 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13315 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13316 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13317 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
13319 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13320 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13321 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
13322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13323 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13324 ZERO_STRUCTP(r
->out
.return_credentials
);
13325 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13326 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
13327 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13328 ZERO_STRUCTP(r
->out
.rid
);
13330 if (flags
& NDR_OUT
) {
13331 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13332 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13334 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13335 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
13336 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13337 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13338 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13339 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13341 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13342 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13343 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
13344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13345 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13346 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13348 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13349 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13352 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13354 return NDR_ERR_SUCCESS
;
13357 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13359 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
13361 if (flags
& NDR_SET_VALUES
) {
13362 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13364 if (flags
& NDR_IN
) {
13365 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
13367 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13369 if (r
->in
.server_name
) {
13370 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13373 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
13375 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
13377 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
13378 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13380 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13382 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
13384 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
13386 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
13388 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
13392 if (flags
& NDR_OUT
) {
13393 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
13395 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
13397 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
13399 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
13401 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
13403 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13405 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13407 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13413 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13415 if (flags
& NDR_IN
) {
13416 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
13417 if (r
->in
.server_unc
) {
13418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13421 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
));
13423 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13424 if (r
->in
.domain_name
) {
13425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13428 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
));
13430 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13431 if (r
->in
.domain_guid
) {
13432 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13434 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
13435 if (r
->in
.site_name
) {
13436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13439 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
));
13441 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
13443 if (flags
& NDR_OUT
) {
13444 if (r
->out
.info
== NULL
) {
13445 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13447 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
13448 if (*r
->out
.info
) {
13449 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13451 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13453 return NDR_ERR_SUCCESS
;
13456 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
13458 uint32_t _ptr_server_unc
;
13459 uint32_t _ptr_domain_name
;
13460 uint32_t _ptr_domain_guid
;
13461 uint32_t _ptr_site_name
;
13462 uint32_t _ptr_info
;
13463 TALLOC_CTX
*_mem_save_server_unc_0
;
13464 TALLOC_CTX
*_mem_save_domain_name_0
;
13465 TALLOC_CTX
*_mem_save_domain_guid_0
;
13466 TALLOC_CTX
*_mem_save_site_name_0
;
13467 TALLOC_CTX
*_mem_save_info_0
;
13468 TALLOC_CTX
*_mem_save_info_1
;
13469 if (flags
& NDR_IN
) {
13470 ZERO_STRUCT(r
->out
);
13472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
13473 if (_ptr_server_unc
) {
13474 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
13476 r
->in
.server_unc
= NULL
;
13478 if (r
->in
.server_unc
) {
13479 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13480 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
13481 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
13482 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
13483 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
13484 return 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
));
13486 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
13487 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
));
13488 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
13490 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13491 if (_ptr_domain_name
) {
13492 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13494 r
->in
.domain_name
= NULL
;
13496 if (r
->in
.domain_name
) {
13497 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13498 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13499 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13500 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13501 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13502 return 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
));
13504 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13505 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
));
13506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
13509 if (_ptr_domain_guid
) {
13510 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
13512 r
->in
.domain_guid
= NULL
;
13514 if (r
->in
.domain_guid
) {
13515 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13516 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
13517 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13518 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
13520 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
13521 if (_ptr_site_name
) {
13522 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
13524 r
->in
.site_name
= NULL
;
13526 if (r
->in
.site_name
) {
13527 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13528 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
13529 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
13530 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
13531 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
13532 return 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
));
13534 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
13535 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
));
13536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
13538 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
13539 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13540 ZERO_STRUCTP(r
->out
.info
);
13542 if (flags
& NDR_OUT
) {
13543 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13544 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13546 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13547 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13548 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
13550 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
13552 *r
->out
.info
= NULL
;
13554 if (*r
->out
.info
) {
13555 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13556 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
13557 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
13560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13561 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13563 return NDR_ERR_SUCCESS
;
13566 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13568 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
13570 if (flags
& NDR_SET_VALUES
) {
13571 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13573 if (flags
& NDR_IN
) {
13574 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
13576 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
13578 if (r
->in
.server_unc
) {
13579 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
13582 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13584 if (r
->in
.domain_name
) {
13585 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13588 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
13590 if (r
->in
.domain_guid
) {
13591 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
13594 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
13596 if (r
->in
.site_name
) {
13597 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
13600 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
13603 if (flags
& NDR_OUT
) {
13604 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
13606 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13608 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
13610 if (*r
->out
.info
) {
13611 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
13615 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13621 static enum ndr_err_code
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
13623 if (flags
& NDR_IN
) {
13624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13625 if (r
->in
.computer_name
) {
13626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13629 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
));
13632 if (flags
& NDR_OUT
) {
13633 if (r
->out
.site
== NULL
) {
13634 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13636 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.site
));
13637 if (*r
->out
.site
) {
13638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13641 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13643 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13645 return NDR_ERR_SUCCESS
;
13648 static enum ndr_err_code
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
13650 uint32_t _ptr_computer_name
;
13651 uint32_t _ptr_site
;
13652 TALLOC_CTX
*_mem_save_computer_name_0
;
13653 TALLOC_CTX
*_mem_save_site_0
;
13654 TALLOC_CTX
*_mem_save_site_1
;
13655 if (flags
& NDR_IN
) {
13656 ZERO_STRUCT(r
->out
);
13658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13659 if (_ptr_computer_name
) {
13660 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13662 r
->in
.computer_name
= NULL
;
13664 if (r
->in
.computer_name
) {
13665 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13666 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13667 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13668 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13669 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13670 return 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
));
13672 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13673 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
));
13674 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13676 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13677 ZERO_STRUCTP(r
->out
.site
);
13679 if (flags
& NDR_OUT
) {
13680 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13681 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13683 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13684 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
13685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site
));
13687 NDR_PULL_ALLOC(ndr
, *r
->out
.site
);
13689 *r
->out
.site
= NULL
;
13691 if (*r
->out
.site
) {
13692 _mem_save_site_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13693 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.site
, 0);
13694 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
13695 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
13696 if (ndr_get_array_length(ndr
, r
->out
.site
) > ndr_get_array_size(ndr
, r
->out
.site
)) {
13697 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
));
13699 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t)));
13700 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t), CH_UTF16
));
13701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_1
, 0);
13703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
13704 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13706 return NDR_ERR_SUCCESS
;
13709 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
13711 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
13713 if (flags
& NDR_SET_VALUES
) {
13714 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13716 if (flags
& NDR_IN
) {
13717 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
13719 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13721 if (r
->in
.computer_name
) {
13722 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13727 if (flags
& NDR_OUT
) {
13728 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
13730 ndr_print_ptr(ndr
, "site", r
->out
.site
);
13732 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
13734 if (*r
->out
.site
) {
13735 ndr_print_string(ndr
, "site", *r
->out
.site
);
13739 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13745 static enum ndr_err_code
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13747 if (flags
& NDR_IN
) {
13748 if (r
->in
.server_name
== NULL
) {
13749 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13754 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
));
13755 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13756 if (r
->in
.computer_name
) {
13757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13760 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
));
13762 if (r
->in
.credential
== NULL
) {
13763 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13765 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13766 if (r
->in
.return_authenticator
== NULL
) {
13767 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13769 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
13771 if (r
->in
.query
== NULL
) {
13772 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13774 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13775 NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13777 if (flags
& NDR_OUT
) {
13778 if (r
->out
.return_authenticator
== NULL
) {
13779 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13781 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13782 if (r
->out
.info
== NULL
) {
13783 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13785 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13786 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13787 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13789 return NDR_ERR_SUCCESS
;
13792 static enum ndr_err_code
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
13794 uint32_t _ptr_computer_name
;
13795 TALLOC_CTX
*_mem_save_computer_name_0
;
13796 TALLOC_CTX
*_mem_save_credential_0
;
13797 TALLOC_CTX
*_mem_save_return_authenticator_0
;
13798 TALLOC_CTX
*_mem_save_query_0
;
13799 TALLOC_CTX
*_mem_save_info_0
;
13800 if (flags
& NDR_IN
) {
13801 ZERO_STRUCT(r
->out
);
13803 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13804 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13805 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13806 return 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
));
13808 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13809 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
));
13810 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13811 if (_ptr_computer_name
) {
13812 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13814 r
->in
.computer_name
= NULL
;
13816 if (r
->in
.computer_name
) {
13817 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13818 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13819 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13820 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13821 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13822 return 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
));
13824 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13825 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
));
13826 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13828 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13829 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
13831 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13832 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
13833 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13834 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
13835 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13836 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
13838 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13839 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13840 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13841 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13842 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13843 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13844 NDR_PULL_ALLOC(ndr
, r
->in
.query
);
13846 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13847 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.query
, LIBNDR_FLAG_REF_ALLOC
);
13848 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13849 NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13850 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
13851 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13852 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
13853 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13854 ZERO_STRUCTP(r
->out
.info
);
13856 if (flags
& NDR_OUT
) {
13857 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13858 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13860 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13861 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13862 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13864 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13865 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13867 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13868 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13869 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13870 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13872 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13874 return NDR_ERR_SUCCESS
;
13877 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13879 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
13881 if (flags
& NDR_SET_VALUES
) {
13882 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13884 if (flags
& NDR_IN
) {
13885 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
13887 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13889 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13891 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13893 if (r
->in
.computer_name
) {
13894 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13897 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
13899 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
13901 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13903 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13905 ndr_print_uint32(ndr
, "level", r
->in
.level
);
13906 ndr_print_ptr(ndr
, "query", r
->in
.query
);
13908 ndr_print_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
);
13909 ndr_print_netr_WorkstationInfo(ndr
, "query", r
->in
.query
);
13913 if (flags
& NDR_OUT
) {
13914 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
13916 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13918 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13920 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13922 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
13923 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
13925 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13931 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
13933 if (flags
& NDR_IN
) {
13934 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13935 if (r
->in
.server_name
) {
13936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13939 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
));
13941 if (r
->in
.account_name
== NULL
) {
13942 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13947 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
));
13948 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13949 if (r
->in
.computer_name
== NULL
) {
13950 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13955 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
));
13956 if (r
->in
.credential
== NULL
) {
13957 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13959 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13960 if (r
->in
.new_password
== NULL
) {
13961 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13963 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
13965 if (flags
& NDR_OUT
) {
13966 if (r
->out
.return_authenticator
== NULL
) {
13967 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13969 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13970 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13972 return NDR_ERR_SUCCESS
;
13975 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
13977 uint32_t _ptr_server_name
;
13978 TALLOC_CTX
*_mem_save_server_name_0
;
13979 TALLOC_CTX
*_mem_save_credential_0
;
13980 TALLOC_CTX
*_mem_save_return_authenticator_0
;
13981 TALLOC_CTX
*_mem_save_new_password_0
;
13982 if (flags
& NDR_IN
) {
13983 ZERO_STRUCT(r
->out
);
13985 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13986 if (_ptr_server_name
) {
13987 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13989 r
->in
.server_name
= NULL
;
13991 if (r
->in
.server_name
) {
13992 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13993 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13994 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13995 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13996 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
13999 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14000 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
));
14001 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14003 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14004 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14005 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14006 return 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
));
14008 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14009 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
));
14010 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14011 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14012 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14013 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14014 return 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
));
14016 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14017 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
));
14018 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14019 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14021 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14022 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14023 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14024 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14025 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14026 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
14028 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14029 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
14030 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
14031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14032 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14033 ZERO_STRUCTP(r
->out
.return_authenticator
);
14035 if (flags
& NDR_OUT
) {
14036 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14037 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14039 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14040 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14041 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14043 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14045 return NDR_ERR_SUCCESS
;
14048 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
14050 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
14052 if (flags
& NDR_SET_VALUES
) {
14053 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14055 if (flags
& NDR_IN
) {
14056 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
14058 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14060 if (r
->in
.server_name
) {
14061 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14064 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14066 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14068 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14069 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14071 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14073 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14075 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14077 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
14079 ndr_print_netr_CryptPassword(ndr
, "new_password", r
->in
.new_password
);
14083 if (flags
& NDR_OUT
) {
14084 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
14086 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14088 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14090 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14096 static enum ndr_err_code
ndr_push_netr_ServerPasswordGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordGet
*r
)
14098 if (flags
& NDR_IN
) {
14099 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14100 if (r
->in
.server_name
) {
14101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14104 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
));
14106 if (r
->in
.account_name
== NULL
) {
14107 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14109 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14112 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
));
14113 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14114 if (r
->in
.computer_name
== NULL
) {
14115 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14120 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
));
14121 if (r
->in
.credential
== NULL
) {
14122 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14124 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14126 if (flags
& NDR_OUT
) {
14127 if (r
->out
.return_authenticator
== NULL
) {
14128 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14130 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14131 if (r
->out
.password
== NULL
) {
14132 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14134 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14135 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14137 return NDR_ERR_SUCCESS
;
14140 static enum ndr_err_code
ndr_pull_netr_ServerPasswordGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordGet
*r
)
14142 uint32_t _ptr_server_name
;
14143 TALLOC_CTX
*_mem_save_server_name_0
;
14144 TALLOC_CTX
*_mem_save_credential_0
;
14145 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14146 TALLOC_CTX
*_mem_save_password_0
;
14147 if (flags
& NDR_IN
) {
14148 ZERO_STRUCT(r
->out
);
14150 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14151 if (_ptr_server_name
) {
14152 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14154 r
->in
.server_name
= NULL
;
14156 if (r
->in
.server_name
) {
14157 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14158 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14159 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14160 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14161 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
14164 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14165 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
));
14166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14168 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14169 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14170 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14171 return 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
));
14173 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14174 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
));
14175 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14177 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14178 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14179 return 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
));
14181 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14182 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
));
14183 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14184 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14186 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14187 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14188 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14190 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14191 ZERO_STRUCTP(r
->out
.return_authenticator
);
14192 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14193 ZERO_STRUCTP(r
->out
.password
);
14195 if (flags
& NDR_OUT
) {
14196 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14197 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14199 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14200 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14201 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14203 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14204 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14206 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14207 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
14208 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14209 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14210 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14212 return NDR_ERR_SUCCESS
;
14215 _PUBLIC_
void ndr_print_netr_ServerPasswordGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordGet
*r
)
14217 ndr_print_struct(ndr
, name
, "netr_ServerPasswordGet");
14219 if (flags
& NDR_SET_VALUES
) {
14220 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14222 if (flags
& NDR_IN
) {
14223 ndr_print_struct(ndr
, "in", "netr_ServerPasswordGet");
14225 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14227 if (r
->in
.server_name
) {
14228 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14231 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14233 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14235 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14236 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14238 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14240 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14242 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14246 if (flags
& NDR_OUT
) {
14247 ndr_print_struct(ndr
, "out", "netr_ServerPasswordGet");
14249 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14251 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14253 ndr_print_ptr(ndr
, "password", r
->out
.password
);
14255 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
14257 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14263 static enum ndr_err_code
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14265 if (flags
& NDR_IN
) {
14267 if (flags
& NDR_OUT
) {
14268 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14270 return NDR_ERR_SUCCESS
;
14273 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
14275 if (flags
& NDR_IN
) {
14277 if (flags
& NDR_OUT
) {
14278 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14280 return NDR_ERR_SUCCESS
;
14283 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14285 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
14287 if (flags
& NDR_SET_VALUES
) {
14288 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14290 if (flags
& NDR_IN
) {
14291 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
14295 if (flags
& NDR_OUT
) {
14296 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
14298 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14304 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14306 uint32_t cntr_addresses_1
;
14307 if (flags
& NDR_IN
) {
14308 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14309 if (r
->in
.server_name
) {
14310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14313 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
));
14315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14316 if (r
->in
.addresses
== NULL
) {
14317 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14320 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14321 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14323 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14324 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14327 if (flags
& NDR_OUT
) {
14328 if (r
->out
.ctr
== NULL
) {
14329 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14331 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14333 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14335 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14337 return NDR_ERR_SUCCESS
;
14340 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesW
*r
)
14342 uint32_t _ptr_server_name
;
14343 uint32_t cntr_addresses_1
;
14345 TALLOC_CTX
*_mem_save_server_name_0
;
14346 TALLOC_CTX
*_mem_save_addresses_1
;
14347 TALLOC_CTX
*_mem_save_ctr_0
;
14348 TALLOC_CTX
*_mem_save_ctr_1
;
14349 if (flags
& NDR_IN
) {
14350 ZERO_STRUCT(r
->out
);
14352 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14353 if (_ptr_server_name
) {
14354 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14356 r
->in
.server_name
= NULL
;
14358 if (r
->in
.server_name
) {
14359 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14360 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14361 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14362 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14363 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14364 return 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
));
14366 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14367 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
));
14368 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14371 if (r
->in
.count
> 32000) {
14372 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14374 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14375 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14376 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14378 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14379 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14380 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14381 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14383 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14384 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14387 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14388 ZERO_STRUCTP(r
->out
.ctr
);
14389 if (r
->in
.addresses
) {
14390 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14393 if (flags
& NDR_OUT
) {
14394 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14395 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14397 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14398 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14399 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14401 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14403 *r
->out
.ctr
= NULL
;
14406 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14407 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14408 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
14411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14412 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14414 return NDR_ERR_SUCCESS
;
14417 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14419 uint32_t cntr_addresses_1
;
14420 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesW");
14422 if (flags
& NDR_SET_VALUES
) {
14423 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14425 if (flags
& NDR_IN
) {
14426 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesW");
14428 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14430 if (r
->in
.server_name
) {
14431 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14434 ndr_print_uint32(ndr
, "count", r
->in
.count
);
14435 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
14437 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
14439 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
14441 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
14442 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
14450 if (flags
& NDR_OUT
) {
14451 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesW");
14453 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14455 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
14458 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr
, "ctr", *r
->out
.ctr
);
14462 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14468 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14470 if (flags
& NDR_IN
) {
14471 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
14472 if (r
->in
.server_unc
) {
14473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14476 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
));
14478 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
14479 if (r
->in
.client_account
) {
14480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14481 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14483 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
));
14485 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.mask
));
14486 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
14487 if (r
->in
.domain_name
) {
14488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14491 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
));
14493 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
14494 if (r
->in
.domain_guid
) {
14495 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14497 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
14498 if (r
->in
.site_name
) {
14499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14500 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14501 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14502 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
));
14504 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
14506 if (flags
& NDR_OUT
) {
14507 if (r
->out
.info
== NULL
) {
14508 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14510 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
14511 if (*r
->out
.info
) {
14512 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14514 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14516 return NDR_ERR_SUCCESS
;
14519 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
14521 uint32_t _ptr_server_unc
;
14522 uint32_t _ptr_client_account
;
14523 uint32_t _ptr_domain_name
;
14524 uint32_t _ptr_domain_guid
;
14525 uint32_t _ptr_site_name
;
14526 uint32_t _ptr_info
;
14527 TALLOC_CTX
*_mem_save_server_unc_0
;
14528 TALLOC_CTX
*_mem_save_client_account_0
;
14529 TALLOC_CTX
*_mem_save_domain_name_0
;
14530 TALLOC_CTX
*_mem_save_domain_guid_0
;
14531 TALLOC_CTX
*_mem_save_site_name_0
;
14532 TALLOC_CTX
*_mem_save_info_0
;
14533 TALLOC_CTX
*_mem_save_info_1
;
14534 if (flags
& NDR_IN
) {
14535 ZERO_STRUCT(r
->out
);
14537 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
14538 if (_ptr_server_unc
) {
14539 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
14541 r
->in
.server_unc
= NULL
;
14543 if (r
->in
.server_unc
) {
14544 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14545 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
14546 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
14547 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
14548 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
14549 return 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
));
14551 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
14552 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
));
14553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
14555 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
14556 if (_ptr_client_account
) {
14557 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
14559 r
->in
.client_account
= NULL
;
14561 if (r
->in
.client_account
) {
14562 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14563 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
14564 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
14565 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
14566 if (ndr_get_array_length(ndr
, &r
->in
.client_account
) > ndr_get_array_size(ndr
, &r
->in
.client_account
)) {
14567 return 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
));
14569 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t)));
14570 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
));
14571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
14573 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.mask
));
14574 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
14575 if (_ptr_domain_name
) {
14576 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
14578 r
->in
.domain_name
= NULL
;
14580 if (r
->in
.domain_name
) {
14581 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14582 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
14583 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
14584 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
14585 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
14586 return 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
));
14588 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
14589 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
));
14590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
14592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
14593 if (_ptr_domain_guid
) {
14594 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
14596 r
->in
.domain_guid
= NULL
;
14598 if (r
->in
.domain_guid
) {
14599 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
14601 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
14604 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
14605 if (_ptr_site_name
) {
14606 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
14608 r
->in
.site_name
= NULL
;
14610 if (r
->in
.site_name
) {
14611 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14612 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
14613 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
14614 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
14615 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
14616 return 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
));
14618 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
14619 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
));
14620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
14622 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14623 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14624 ZERO_STRUCTP(r
->out
.info
);
14626 if (flags
& NDR_OUT
) {
14627 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14628 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14630 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14631 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
14632 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
14634 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
14636 *r
->out
.info
= NULL
;
14638 if (*r
->out
.info
) {
14639 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14640 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
14641 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14642 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
14644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14645 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14647 return NDR_ERR_SUCCESS
;
14650 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14652 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
14654 if (flags
& NDR_SET_VALUES
) {
14655 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14657 if (flags
& NDR_IN
) {
14658 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
14660 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
14662 if (r
->in
.server_unc
) {
14663 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
14666 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
14668 if (r
->in
.client_account
) {
14669 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
14672 ndr_print_samr_AcctFlags(ndr
, "mask", r
->in
.mask
);
14673 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
14675 if (r
->in
.domain_name
) {
14676 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
14679 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
14681 if (r
->in
.domain_guid
) {
14682 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
14685 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
14687 if (r
->in
.site_name
) {
14688 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
14691 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
14694 if (flags
& NDR_OUT
) {
14695 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
14697 ndr_print_ptr(ndr
, "info", r
->out
.info
);
14699 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
14701 if (*r
->out
.info
) {
14702 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
14706 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14712 static enum ndr_err_code
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14714 if (flags
& NDR_IN
) {
14716 if (flags
& NDR_OUT
) {
14717 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14719 return NDR_ERR_SUCCESS
;
14722 static enum ndr_err_code
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14724 if (flags
& NDR_IN
) {
14726 if (flags
& NDR_OUT
) {
14727 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14729 return NDR_ERR_SUCCESS
;
14732 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14734 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14736 if (flags
& NDR_SET_VALUES
) {
14737 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14739 if (flags
& NDR_IN
) {
14740 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14744 if (flags
& NDR_OUT
) {
14745 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14747 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14753 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14755 if (flags
& NDR_IN
) {
14756 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14757 if (r
->in
.server_name
) {
14758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14761 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
));
14764 if (flags
& NDR_OUT
) {
14765 if (r
->out
.dom_trust_list
== NULL
) {
14766 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14768 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14769 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14771 return NDR_ERR_SUCCESS
;
14774 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14776 uint32_t _ptr_server_name
;
14777 TALLOC_CTX
*_mem_save_server_name_0
;
14778 TALLOC_CTX
*_mem_save_dom_trust_list_0
;
14779 if (flags
& NDR_IN
) {
14780 ZERO_STRUCT(r
->out
);
14782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14783 if (_ptr_server_name
) {
14784 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14786 r
->in
.server_name
= NULL
;
14788 if (r
->in
.server_name
) {
14789 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14790 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14791 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14792 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14793 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14794 return 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
));
14796 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14797 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
));
14798 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14800 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14801 ZERO_STRUCTP(r
->out
.dom_trust_list
);
14803 if (flags
& NDR_OUT
) {
14804 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14805 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14807 _mem_save_dom_trust_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14808 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dom_trust_list
, LIBNDR_FLAG_REF_ALLOC
);
14809 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14810 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dom_trust_list_0
, LIBNDR_FLAG_REF_ALLOC
);
14811 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14813 return NDR_ERR_SUCCESS
;
14816 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14818 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomainsEx");
14820 if (flags
& NDR_SET_VALUES
) {
14821 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14823 if (flags
& NDR_IN
) {
14824 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomainsEx");
14826 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14828 if (r
->in
.server_name
) {
14829 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14834 if (flags
& NDR_OUT
) {
14835 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomainsEx");
14837 ndr_print_ptr(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14839 ndr_print_netr_DomainTrustList(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14841 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14847 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
14849 uint32_t cntr_addresses_1
;
14850 if (flags
& NDR_IN
) {
14851 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14852 if (r
->in
.server_name
) {
14853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14856 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
));
14858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14859 if (r
->in
.addresses
== NULL
) {
14860 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14862 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14863 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14864 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14866 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14867 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14870 if (flags
& NDR_OUT
) {
14871 if (r
->out
.ctr
== NULL
) {
14872 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14874 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14876 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14878 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14880 return NDR_ERR_SUCCESS
;
14883 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesExW
*r
)
14885 uint32_t _ptr_server_name
;
14886 uint32_t cntr_addresses_1
;
14888 TALLOC_CTX
*_mem_save_server_name_0
;
14889 TALLOC_CTX
*_mem_save_addresses_1
;
14890 TALLOC_CTX
*_mem_save_ctr_0
;
14891 TALLOC_CTX
*_mem_save_ctr_1
;
14892 if (flags
& NDR_IN
) {
14893 ZERO_STRUCT(r
->out
);
14895 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14896 if (_ptr_server_name
) {
14897 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14899 r
->in
.server_name
= NULL
;
14901 if (r
->in
.server_name
) {
14902 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14903 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14904 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14905 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14906 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14907 return 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
));
14909 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14910 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
));
14911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14913 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14914 if (r
->in
.count
> 32000) {
14915 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14917 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14919 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14921 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14922 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14923 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14924 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14926 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14927 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14930 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14931 ZERO_STRUCTP(r
->out
.ctr
);
14932 if (r
->in
.addresses
) {
14933 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14936 if (flags
& NDR_OUT
) {
14937 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14938 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14940 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14941 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14942 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14944 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14946 *r
->out
.ctr
= NULL
;
14949 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14950 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14951 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
14954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14955 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14957 return NDR_ERR_SUCCESS
;
14960 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
14962 uint32_t cntr_addresses_1
;
14963 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExW");
14965 if (flags
& NDR_SET_VALUES
) {
14966 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14968 if (flags
& NDR_IN
) {
14969 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesExW");
14971 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14973 if (r
->in
.server_name
) {
14974 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14977 ndr_print_uint32(ndr
, "count", r
->in
.count
);
14978 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
14980 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
14982 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
14984 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
14985 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
14993 if (flags
& NDR_OUT
) {
14994 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesExW");
14996 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14998 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15001 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr
, "ctr", *r
->out
.ctr
);
15005 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15011 static enum ndr_err_code
ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push
*ndr
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15013 if (flags
& NDR_IN
) {
15014 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15015 if (r
->in
.server_name
) {
15016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15019 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
));
15022 if (flags
& NDR_OUT
) {
15023 if (r
->out
.ctr
== NULL
) {
15024 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15026 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
15028 NDR_CHECK(ndr_push_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15030 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15032 return NDR_ERR_SUCCESS
;
15035 static enum ndr_err_code
ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull
*ndr
, int flags
, struct netr_DsrGetDcSiteCoverageW
*r
)
15037 uint32_t _ptr_server_name
;
15039 TALLOC_CTX
*_mem_save_server_name_0
;
15040 TALLOC_CTX
*_mem_save_ctr_0
;
15041 TALLOC_CTX
*_mem_save_ctr_1
;
15042 if (flags
& NDR_IN
) {
15043 ZERO_STRUCT(r
->out
);
15045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15046 if (_ptr_server_name
) {
15047 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15049 r
->in
.server_name
= NULL
;
15051 if (r
->in
.server_name
) {
15052 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15053 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15054 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15055 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15056 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15057 return 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
));
15059 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15060 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
));
15061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15063 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15064 ZERO_STRUCTP(r
->out
.ctr
);
15066 if (flags
& NDR_OUT
) {
15067 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15068 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15070 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15071 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
15072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
15074 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
15076 *r
->out
.ctr
= NULL
;
15079 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15080 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
15081 NDR_CHECK(ndr_pull_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15084 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15085 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15087 return NDR_ERR_SUCCESS
;
15090 _PUBLIC_
void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15092 ndr_print_struct(ndr
, name
, "netr_DsrGetDcSiteCoverageW");
15094 if (flags
& NDR_SET_VALUES
) {
15095 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15097 if (flags
& NDR_IN
) {
15098 ndr_print_struct(ndr
, "in", "netr_DsrGetDcSiteCoverageW");
15100 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15102 if (r
->in
.server_name
) {
15103 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15108 if (flags
& NDR_OUT
) {
15109 ndr_print_struct(ndr
, "out", "netr_DsrGetDcSiteCoverageW");
15111 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15113 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15116 ndr_print_DcSitesCtr(ndr
, "ctr", *r
->out
.ctr
);
15120 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15126 static enum ndr_err_code
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15128 if (flags
& NDR_IN
) {
15129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15130 if (r
->in
.server_name
) {
15131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15134 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
));
15136 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
15137 if (r
->in
.computer_name
) {
15138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15141 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
));
15143 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
15144 if (r
->in
.logon
== NULL
) {
15145 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15147 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15148 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15149 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
15150 if (r
->in
.flags
== NULL
) {
15151 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
15155 if (flags
& NDR_OUT
) {
15156 if (r
->out
.validation
== NULL
) {
15157 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15159 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15160 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15161 if (r
->out
.authoritative
== NULL
) {
15162 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15164 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
15165 if (r
->out
.flags
== NULL
) {
15166 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
15169 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15171 return NDR_ERR_SUCCESS
;
15174 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
15176 uint32_t _ptr_server_name
;
15177 uint32_t _ptr_computer_name
;
15178 TALLOC_CTX
*_mem_save_server_name_0
;
15179 TALLOC_CTX
*_mem_save_computer_name_0
;
15180 TALLOC_CTX
*_mem_save_logon_0
;
15181 TALLOC_CTX
*_mem_save_validation_0
;
15182 TALLOC_CTX
*_mem_save_authoritative_0
;
15183 TALLOC_CTX
*_mem_save_flags_0
;
15184 if (flags
& NDR_IN
) {
15185 ZERO_STRUCT(r
->out
);
15187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15188 if (_ptr_server_name
) {
15189 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15191 r
->in
.server_name
= NULL
;
15193 if (r
->in
.server_name
) {
15194 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15195 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15197 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15198 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15199 return 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
));
15201 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15202 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
));
15203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
15206 if (_ptr_computer_name
) {
15207 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
15209 r
->in
.computer_name
= NULL
;
15211 if (r
->in
.computer_name
) {
15212 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15213 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
15214 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15215 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15216 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15217 return 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
));
15219 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15220 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
));
15221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
15223 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
15224 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15225 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
15227 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15228 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
15229 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15230 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
15232 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
15233 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15234 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
15236 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15237 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15240 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15241 ZERO_STRUCTP(r
->out
.validation
);
15242 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15243 ZERO_STRUCTP(r
->out
.authoritative
);
15244 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15245 *r
->out
.flags
= *r
->in
.flags
;
15247 if (flags
& NDR_OUT
) {
15248 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15249 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15251 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15252 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
15253 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15254 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
15256 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15257 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15259 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15260 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
15261 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
15262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
15263 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15264 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15266 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15267 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15268 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
15269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15270 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15272 return NDR_ERR_SUCCESS
;
15275 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15277 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
15279 if (flags
& NDR_SET_VALUES
) {
15280 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15282 if (flags
& NDR_IN
) {
15283 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
15285 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15287 if (r
->in
.server_name
) {
15288 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15291 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15293 if (r
->in
.computer_name
) {
15294 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15297 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
15298 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
15300 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
15301 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
15303 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
15304 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
15306 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
15310 if (flags
& NDR_OUT
) {
15311 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
15313 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
15315 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
15316 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
15318 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
15320 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
15322 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
15324 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
15326 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15332 static enum ndr_err_code
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15334 if (flags
& NDR_IN
) {
15335 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15336 if (r
->in
.server_name
) {
15337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15340 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
));
15342 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
15344 if (flags
& NDR_OUT
) {
15345 if (r
->out
.trusts
== NULL
) {
15346 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15348 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15349 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15351 return NDR_ERR_SUCCESS
;
15354 static enum ndr_err_code
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
15356 uint32_t _ptr_server_name
;
15357 TALLOC_CTX
*_mem_save_server_name_0
;
15358 TALLOC_CTX
*_mem_save_trusts_0
;
15359 if (flags
& NDR_IN
) {
15360 ZERO_STRUCT(r
->out
);
15362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15363 if (_ptr_server_name
) {
15364 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15366 r
->in
.server_name
= NULL
;
15368 if (r
->in
.server_name
) {
15369 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15370 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15371 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15372 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15373 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15374 return 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
));
15376 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15377 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
));
15378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15380 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
15381 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15382 ZERO_STRUCTP(r
->out
.trusts
);
15384 if (flags
& NDR_OUT
) {
15385 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15386 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15388 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15389 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, LIBNDR_FLAG_REF_ALLOC
);
15390 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, LIBNDR_FLAG_REF_ALLOC
);
15392 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15394 return NDR_ERR_SUCCESS
;
15397 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15399 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
15401 if (flags
& NDR_SET_VALUES
) {
15402 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15404 if (flags
& NDR_IN
) {
15405 ndr_print_struct(ndr
, "in", "netr_DsrEnumerateDomainTrusts");
15407 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15409 if (r
->in
.server_name
) {
15410 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15413 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
15416 if (flags
& NDR_OUT
) {
15417 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
15419 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
15421 ndr_print_netr_DomainTrustList(ndr
, "trusts", r
->out
.trusts
);
15423 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15429 static enum ndr_err_code
ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push
*ndr
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15431 if (flags
& NDR_IN
) {
15432 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15433 if (r
->in
.server_name
) {
15434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15437 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
));
15439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain
));
15440 if (r
->in
.domain
) {
15441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15444 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain
, ndr_charset_length(r
->in
.domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
15447 if (r
->in
.domain_guid
) {
15448 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.dsa_guid
));
15451 if (r
->in
.dsa_guid
) {
15452 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15454 if (r
->in
.dns_host
== NULL
) {
15455 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15460 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
));
15462 if (flags
& NDR_OUT
) {
15463 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15465 return NDR_ERR_SUCCESS
;
15468 static enum ndr_err_code
ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull
*ndr
, int flags
, struct netr_DsrDeregisterDNSHostRecords
*r
)
15470 uint32_t _ptr_server_name
;
15471 uint32_t _ptr_domain
;
15472 uint32_t _ptr_domain_guid
;
15473 uint32_t _ptr_dsa_guid
;
15474 TALLOC_CTX
*_mem_save_server_name_0
;
15475 TALLOC_CTX
*_mem_save_domain_0
;
15476 TALLOC_CTX
*_mem_save_domain_guid_0
;
15477 TALLOC_CTX
*_mem_save_dsa_guid_0
;
15478 if (flags
& NDR_IN
) {
15479 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15480 if (_ptr_server_name
) {
15481 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15483 r
->in
.server_name
= NULL
;
15485 if (r
->in
.server_name
) {
15486 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15487 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15488 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15489 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15490 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15491 return 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
));
15493 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15494 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
));
15495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
15499 NDR_PULL_ALLOC(ndr
, r
->in
.domain
);
15501 r
->in
.domain
= NULL
;
15503 if (r
->in
.domain
) {
15504 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15505 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain
, 0);
15506 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain
));
15507 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain
));
15508 if (ndr_get_array_length(ndr
, &r
->in
.domain
) > ndr_get_array_size(ndr
, &r
->in
.domain
)) {
15509 return 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
));
15511 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t)));
15512 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t), CH_UTF16
));
15513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
15515 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
15516 if (_ptr_domain_guid
) {
15517 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
15519 r
->in
.domain_guid
= NULL
;
15521 if (r
->in
.domain_guid
) {
15522 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15523 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
15524 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
15527 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_guid
));
15528 if (_ptr_dsa_guid
) {
15529 NDR_PULL_ALLOC(ndr
, r
->in
.dsa_guid
);
15531 r
->in
.dsa_guid
= NULL
;
15533 if (r
->in
.dsa_guid
) {
15534 _mem_save_dsa_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15535 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.dsa_guid
, 0);
15536 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_guid_0
, 0);
15539 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.dns_host
));
15540 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.dns_host
));
15541 if (ndr_get_array_length(ndr
, &r
->in
.dns_host
) > ndr_get_array_size(ndr
, &r
->in
.dns_host
)) {
15542 return 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
));
15544 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t)));
15545 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
));
15547 if (flags
& NDR_OUT
) {
15548 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15550 return NDR_ERR_SUCCESS
;
15553 _PUBLIC_
void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15555 ndr_print_struct(ndr
, name
, "netr_DsrDeregisterDNSHostRecords");
15557 if (flags
& NDR_SET_VALUES
) {
15558 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15560 if (flags
& NDR_IN
) {
15561 ndr_print_struct(ndr
, "in", "netr_DsrDeregisterDNSHostRecords");
15563 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15565 if (r
->in
.server_name
) {
15566 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15569 ndr_print_ptr(ndr
, "domain", r
->in
.domain
);
15571 if (r
->in
.domain
) {
15572 ndr_print_string(ndr
, "domain", r
->in
.domain
);
15575 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
15577 if (r
->in
.domain_guid
) {
15578 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
15581 ndr_print_ptr(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15583 if (r
->in
.dsa_guid
) {
15584 ndr_print_GUID(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15587 ndr_print_ptr(ndr
, "dns_host", r
->in
.dns_host
);
15589 ndr_print_string(ndr
, "dns_host", r
->in
.dns_host
);
15593 if (flags
& NDR_OUT
) {
15594 ndr_print_struct(ndr
, "out", "netr_DsrDeregisterDNSHostRecords");
15596 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15602 static enum ndr_err_code
ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15604 if (flags
& NDR_IN
) {
15605 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15606 if (r
->in
.server_name
) {
15607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15610 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
));
15612 if (r
->in
.account_name
== NULL
) {
15613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15618 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
));
15619 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
15620 if (r
->in
.computer_name
== NULL
) {
15621 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15625 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15626 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
));
15627 if (r
->in
.credential
== NULL
) {
15628 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15630 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15632 if (flags
& NDR_OUT
) {
15633 if (r
->out
.return_authenticator
== NULL
) {
15634 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15636 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15637 if (r
->out
.password
== NULL
) {
15638 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15640 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15641 if (r
->out
.password2
== NULL
) {
15642 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15644 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15645 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15647 return NDR_ERR_SUCCESS
;
15650 static enum ndr_err_code
ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerTrustPasswordsGet
*r
)
15652 uint32_t _ptr_server_name
;
15653 TALLOC_CTX
*_mem_save_server_name_0
;
15654 TALLOC_CTX
*_mem_save_credential_0
;
15655 TALLOC_CTX
*_mem_save_return_authenticator_0
;
15656 TALLOC_CTX
*_mem_save_password_0
;
15657 TALLOC_CTX
*_mem_save_password2_0
;
15658 if (flags
& NDR_IN
) {
15659 ZERO_STRUCT(r
->out
);
15661 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15662 if (_ptr_server_name
) {
15663 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15665 r
->in
.server_name
= NULL
;
15667 if (r
->in
.server_name
) {
15668 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15669 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15670 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15671 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15672 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
15675 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15676 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
));
15677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15679 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
15680 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
15681 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
15682 return 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
));
15684 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
15685 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
));
15686 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
15687 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15688 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15689 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15690 return 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
));
15692 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15693 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
));
15694 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15695 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
15697 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15698 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
15699 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
15701 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15702 ZERO_STRUCTP(r
->out
.return_authenticator
);
15703 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15704 ZERO_STRUCTP(r
->out
.password
);
15705 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15706 ZERO_STRUCTP(r
->out
.password2
);
15708 if (flags
& NDR_OUT
) {
15709 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15710 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15712 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15713 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
15714 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
15716 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15717 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15719 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15720 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
15721 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
15723 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15724 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15726 _mem_save_password2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15727 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password2
, LIBNDR_FLAG_REF_ALLOC
);
15728 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password2_0
, LIBNDR_FLAG_REF_ALLOC
);
15730 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15732 return NDR_ERR_SUCCESS
;
15735 _PUBLIC_
void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15737 ndr_print_struct(ndr
, name
, "netr_ServerTrustPasswordsGet");
15739 if (flags
& NDR_SET_VALUES
) {
15740 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15742 if (flags
& NDR_IN
) {
15743 ndr_print_struct(ndr
, "in", "netr_ServerTrustPasswordsGet");
15745 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15747 if (r
->in
.server_name
) {
15748 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15751 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
15753 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
15755 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
15756 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15758 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15760 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
15762 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
15766 if (flags
& NDR_OUT
) {
15767 ndr_print_struct(ndr
, "out", "netr_ServerTrustPasswordsGet");
15769 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15771 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15773 ndr_print_ptr(ndr
, "password", r
->out
.password
);
15775 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
15777 ndr_print_ptr(ndr
, "password2", r
->out
.password2
);
15779 ndr_print_samr_Password(ndr
, "password2", r
->out
.password2
);
15781 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15787 static enum ndr_err_code
ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15789 if (flags
& NDR_IN
) {
15790 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15791 if (r
->in
.server_name
) {
15792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15795 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
));
15797 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.trusted_domain_name
));
15798 if (r
->in
.trusted_domain_name
) {
15799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15801 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15802 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
));
15804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15806 if (flags
& NDR_OUT
) {
15807 if (r
->out
.forest_trust_info
== NULL
) {
15808 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15810 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
15811 if (*r
->out
.forest_trust_info
) {
15812 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15814 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15816 return NDR_ERR_SUCCESS
;
15819 static enum ndr_err_code
ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetForestTrustInformation
*r
)
15821 uint32_t _ptr_server_name
;
15822 uint32_t _ptr_trusted_domain_name
;
15823 uint32_t _ptr_forest_trust_info
;
15824 TALLOC_CTX
*_mem_save_server_name_0
;
15825 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
15826 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
15827 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
15828 if (flags
& NDR_IN
) {
15829 ZERO_STRUCT(r
->out
);
15831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15832 if (_ptr_server_name
) {
15833 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15835 r
->in
.server_name
= NULL
;
15837 if (r
->in
.server_name
) {
15838 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15839 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15840 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15841 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15842 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15843 return 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
));
15845 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15846 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
));
15847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15849 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
15850 if (_ptr_trusted_domain_name
) {
15851 NDR_PULL_ALLOC(ndr
, r
->in
.trusted_domain_name
);
15853 r
->in
.trusted_domain_name
= NULL
;
15855 if (r
->in
.trusted_domain_name
) {
15856 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15857 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.trusted_domain_name
, 0);
15858 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
15859 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
15860 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
15861 return 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
));
15863 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
15864 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
));
15865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
15867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
15868 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15869 ZERO_STRUCTP(r
->out
.forest_trust_info
);
15871 if (flags
& NDR_OUT
) {
15872 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15873 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15875 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15876 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
15877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
15878 if (_ptr_forest_trust_info
) {
15879 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
15881 *r
->out
.forest_trust_info
= NULL
;
15883 if (*r
->out
.forest_trust_info
) {
15884 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15885 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
15886 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
15889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
15890 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15892 return NDR_ERR_SUCCESS
;
15895 _PUBLIC_
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15897 ndr_print_struct(ndr
, name
, "netr_DsRGetForestTrustInformation");
15899 if (flags
& NDR_SET_VALUES
) {
15900 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15902 if (flags
& NDR_IN
) {
15903 ndr_print_struct(ndr
, "in", "netr_DsRGetForestTrustInformation");
15905 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15907 if (r
->in
.server_name
) {
15908 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15911 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15913 if (r
->in
.trusted_domain_name
) {
15914 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15917 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
15920 if (flags
& NDR_OUT
) {
15921 ndr_print_struct(ndr
, "out", "netr_DsRGetForestTrustInformation");
15923 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
15925 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15927 if (*r
->out
.forest_trust_info
) {
15928 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15932 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15938 static enum ndr_err_code
ndr_push_netr_GetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_GetForestTrustInformation
*r
)
15940 if (flags
& NDR_IN
) {
15941 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15942 if (r
->in
.server_name
) {
15943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15946 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
));
15948 if (r
->in
.trusted_domain_name
== NULL
) {
15949 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15954 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
));
15955 if (r
->in
.credential
== NULL
) {
15956 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15958 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15961 if (flags
& NDR_OUT
) {
15962 if (r
->out
.return_authenticator
== NULL
) {
15963 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15965 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15966 if (r
->out
.forest_trust_info
== NULL
) {
15967 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15969 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
15970 if (*r
->out
.forest_trust_info
) {
15971 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15973 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15975 return NDR_ERR_SUCCESS
;
15978 static enum ndr_err_code
ndr_pull_netr_GetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_GetForestTrustInformation
*r
)
15980 uint32_t _ptr_server_name
;
15981 uint32_t _ptr_forest_trust_info
;
15982 TALLOC_CTX
*_mem_save_server_name_0
;
15983 TALLOC_CTX
*_mem_save_credential_0
;
15984 TALLOC_CTX
*_mem_save_return_authenticator_0
;
15985 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
15986 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
15987 if (flags
& NDR_IN
) {
15988 ZERO_STRUCT(r
->out
);
15990 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15991 if (_ptr_server_name
) {
15992 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15994 r
->in
.server_name
= NULL
;
15996 if (r
->in
.server_name
) {
15997 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15998 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15999 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16000 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16001 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16002 return 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
));
16004 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16005 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
));
16006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16008 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
16009 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
16010 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
16011 return 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
));
16013 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
16014 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
));
16015 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16016 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16018 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16019 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16020 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16022 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
16023 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16024 ZERO_STRUCTP(r
->out
.return_authenticator
);
16025 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16026 ZERO_STRUCTP(r
->out
.forest_trust_info
);
16028 if (flags
& NDR_OUT
) {
16029 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16030 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16032 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16033 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16034 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16035 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16036 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16037 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16039 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16040 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16041 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
16042 if (_ptr_forest_trust_info
) {
16043 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
16045 *r
->out
.forest_trust_info
= NULL
;
16047 if (*r
->out
.forest_trust_info
) {
16048 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16049 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
16050 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
16053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16054 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
16056 return NDR_ERR_SUCCESS
;
16059 _PUBLIC_
void ndr_print_netr_GetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetForestTrustInformation
*r
)
16061 ndr_print_struct(ndr
, name
, "netr_GetForestTrustInformation");
16063 if (flags
& NDR_SET_VALUES
) {
16064 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16066 if (flags
& NDR_IN
) {
16067 ndr_print_struct(ndr
, "in", "netr_GetForestTrustInformation");
16069 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16071 if (r
->in
.server_name
) {
16072 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16075 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16077 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16079 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16081 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16083 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
16086 if (flags
& NDR_OUT
) {
16087 ndr_print_struct(ndr
, "out", "netr_GetForestTrustInformation");
16089 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16091 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16093 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
16095 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16097 if (*r
->out
.forest_trust_info
) {
16098 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16102 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16108 static enum ndr_err_code
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16110 if (flags
& NDR_IN
) {
16111 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16112 if (r
->in
.server_name
) {
16113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16116 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
));
16118 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
16119 if (r
->in
.computer_name
) {
16120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16123 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
));
16125 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
16126 if (r
->in
.credential
) {
16127 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
16130 if (r
->in
.return_authenticator
) {
16131 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16133 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
16134 if (r
->in
.logon
== NULL
) {
16135 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16137 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16138 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16139 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
16140 if (r
->in
.flags
== NULL
) {
16141 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
16145 if (flags
& NDR_OUT
) {
16146 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
16147 if (r
->out
.return_authenticator
) {
16148 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16150 if (r
->out
.validation
== NULL
) {
16151 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16153 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16154 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16155 if (r
->out
.authoritative
== NULL
) {
16156 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16158 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
16159 if (r
->out
.flags
== NULL
) {
16160 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
16163 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16165 return NDR_ERR_SUCCESS
;
16168 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
16170 uint32_t _ptr_server_name
;
16171 uint32_t _ptr_computer_name
;
16172 uint32_t _ptr_credential
;
16173 uint32_t _ptr_return_authenticator
;
16174 TALLOC_CTX
*_mem_save_server_name_0
;
16175 TALLOC_CTX
*_mem_save_computer_name_0
;
16176 TALLOC_CTX
*_mem_save_credential_0
;
16177 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16178 TALLOC_CTX
*_mem_save_logon_0
;
16179 TALLOC_CTX
*_mem_save_validation_0
;
16180 TALLOC_CTX
*_mem_save_authoritative_0
;
16181 TALLOC_CTX
*_mem_save_flags_0
;
16182 if (flags
& NDR_IN
) {
16183 ZERO_STRUCT(r
->out
);
16185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16186 if (_ptr_server_name
) {
16187 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16189 r
->in
.server_name
= NULL
;
16191 if (r
->in
.server_name
) {
16192 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16193 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16194 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16195 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16196 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16197 return 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
));
16199 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16200 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
));
16201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16203 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
16204 if (_ptr_computer_name
) {
16205 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
16207 r
->in
.computer_name
= NULL
;
16209 if (r
->in
.computer_name
) {
16210 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16211 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
16212 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16213 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16214 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16215 return 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
));
16217 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16218 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
));
16219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
16221 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
16222 if (_ptr_credential
) {
16223 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16225 r
->in
.credential
= NULL
;
16227 if (r
->in
.credential
) {
16228 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16229 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
16230 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
16233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16234 if (_ptr_return_authenticator
) {
16235 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
16237 r
->in
.return_authenticator
= NULL
;
16239 if (r
->in
.return_authenticator
) {
16240 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16241 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
16242 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16245 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
16246 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16247 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
16249 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16250 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
16251 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16252 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16253 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
16254 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
16255 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16256 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
16258 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16259 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16262 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16263 ZERO_STRUCTP(r
->out
.validation
);
16264 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16265 ZERO_STRUCTP(r
->out
.authoritative
);
16266 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16267 *r
->out
.flags
= *r
->in
.flags
;
16269 if (flags
& NDR_OUT
) {
16270 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16271 if (_ptr_return_authenticator
) {
16272 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16274 r
->out
.return_authenticator
= NULL
;
16276 if (r
->out
.return_authenticator
) {
16277 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16278 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
16279 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16280 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16282 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16283 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16285 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16286 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
16287 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16288 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
16290 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16291 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16293 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16294 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
16295 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
16296 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
16297 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16298 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16300 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16301 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16302 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
16303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16304 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16306 return NDR_ERR_SUCCESS
;
16309 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16311 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
16313 if (flags
& NDR_SET_VALUES
) {
16314 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16316 if (flags
& NDR_IN
) {
16317 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
16319 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16321 if (r
->in
.server_name
) {
16322 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16325 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16327 if (r
->in
.computer_name
) {
16328 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16331 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16333 if (r
->in
.credential
) {
16334 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16337 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16339 if (r
->in
.return_authenticator
) {
16340 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16343 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
16344 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
16346 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
16347 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
16349 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
16350 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
16352 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
16356 if (flags
& NDR_OUT
) {
16357 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
16359 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16361 if (r
->out
.return_authenticator
) {
16362 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16365 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
16367 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
16368 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
16370 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
16372 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
16374 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
16376 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
16378 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16384 static enum ndr_err_code
ndr_push_netr_ServerGetTrustInfo(struct ndr_push
*ndr
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16386 if (flags
& NDR_IN
) {
16387 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16388 if (r
->in
.server_name
) {
16389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16392 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
));
16394 if (r
->in
.account_name
== NULL
) {
16395 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16400 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
));
16401 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
16402 if (r
->in
.computer_name
== NULL
) {
16403 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16405 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16408 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
));
16409 if (r
->in
.credential
== NULL
) {
16410 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16412 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16414 if (flags
& NDR_OUT
) {
16415 if (r
->out
.return_authenticator
== NULL
) {
16416 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16418 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16419 if (r
->out
.new_owf_password
== NULL
) {
16420 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16422 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16423 if (r
->out
.old_owf_password
== NULL
) {
16424 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16426 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16427 if (r
->out
.trust_info
== NULL
) {
16428 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16430 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.trust_info
));
16431 if (*r
->out
.trust_info
) {
16432 NDR_CHECK(ndr_push_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16434 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16436 return NDR_ERR_SUCCESS
;
16439 static enum ndr_err_code
ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull
*ndr
, int flags
, struct netr_ServerGetTrustInfo
*r
)
16441 uint32_t _ptr_server_name
;
16442 uint32_t _ptr_trust_info
;
16443 TALLOC_CTX
*_mem_save_server_name_0
;
16444 TALLOC_CTX
*_mem_save_credential_0
;
16445 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16446 TALLOC_CTX
*_mem_save_new_owf_password_0
;
16447 TALLOC_CTX
*_mem_save_old_owf_password_0
;
16448 TALLOC_CTX
*_mem_save_trust_info_0
;
16449 TALLOC_CTX
*_mem_save_trust_info_1
;
16450 if (flags
& NDR_IN
) {
16451 ZERO_STRUCT(r
->out
);
16453 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16454 if (_ptr_server_name
) {
16455 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16457 r
->in
.server_name
= NULL
;
16459 if (r
->in
.server_name
) {
16460 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16461 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16462 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16463 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16464 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_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
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
16467 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16468 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
));
16469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16471 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
16472 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
16473 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
16474 return 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
));
16476 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
16477 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
));
16478 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
16479 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16480 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16481 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16482 return 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
));
16484 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16485 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
));
16486 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16487 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16489 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16490 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16491 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16493 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16494 ZERO_STRUCTP(r
->out
.return_authenticator
);
16495 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16496 ZERO_STRUCTP(r
->out
.new_owf_password
);
16497 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16498 ZERO_STRUCTP(r
->out
.old_owf_password
);
16499 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16500 ZERO_STRUCTP(r
->out
.trust_info
);
16502 if (flags
& NDR_OUT
) {
16503 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16504 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16506 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16507 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16508 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16510 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16511 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16513 _mem_save_new_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16514 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16515 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16516 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16517 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16518 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16520 _mem_save_old_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16521 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.old_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16522 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16524 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16525 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16527 _mem_save_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16528 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16529 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trust_info
));
16530 if (_ptr_trust_info
) {
16531 NDR_PULL_ALLOC(ndr
, *r
->out
.trust_info
);
16533 *r
->out
.trust_info
= NULL
;
16535 if (*r
->out
.trust_info
) {
16536 _mem_save_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16537 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.trust_info
, 0);
16538 NDR_CHECK(ndr_pull_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16539 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_1
, 0);
16541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16542 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16544 return NDR_ERR_SUCCESS
;
16547 _PUBLIC_
void ndr_print_netr_ServerGetTrustInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16549 ndr_print_struct(ndr
, name
, "netr_ServerGetTrustInfo");
16551 if (flags
& NDR_SET_VALUES
) {
16552 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16554 if (flags
& NDR_IN
) {
16555 ndr_print_struct(ndr
, "in", "netr_ServerGetTrustInfo");
16557 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16559 if (r
->in
.server_name
) {
16560 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16563 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
16565 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
16567 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
16568 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16570 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16572 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16574 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16578 if (flags
& NDR_OUT
) {
16579 ndr_print_struct(ndr
, "out", "netr_ServerGetTrustInfo");
16581 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16583 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16585 ndr_print_ptr(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16587 ndr_print_samr_Password(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16589 ndr_print_ptr(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16591 ndr_print_samr_Password(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16593 ndr_print_ptr(ndr
, "trust_info", r
->out
.trust_info
);
16595 ndr_print_ptr(ndr
, "trust_info", *r
->out
.trust_info
);
16597 if (*r
->out
.trust_info
) {
16598 ndr_print_netr_TrustInfo(ndr
, "trust_info", *r
->out
.trust_info
);
16602 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16608 static const struct ndr_interface_call netlogon_calls
[] = {
16610 "netr_LogonUasLogon",
16611 sizeof(struct netr_LogonUasLogon
),
16612 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
16613 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
16614 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
16618 "netr_LogonUasLogoff",
16619 sizeof(struct netr_LogonUasLogoff
),
16620 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
16621 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
16622 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
16626 "netr_LogonSamLogon",
16627 sizeof(struct netr_LogonSamLogon
),
16628 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
16629 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
16630 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
16634 "netr_LogonSamLogoff",
16635 sizeof(struct netr_LogonSamLogoff
),
16636 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
16637 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
16638 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
16642 "netr_ServerReqChallenge",
16643 sizeof(struct netr_ServerReqChallenge
),
16644 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
16645 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
16646 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
16650 "netr_ServerAuthenticate",
16651 sizeof(struct netr_ServerAuthenticate
),
16652 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
16653 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
16654 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
16658 "netr_ServerPasswordSet",
16659 sizeof(struct netr_ServerPasswordSet
),
16660 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
16661 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
16662 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
16666 "netr_DatabaseDeltas",
16667 sizeof(struct netr_DatabaseDeltas
),
16668 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
16669 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
16670 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
16674 "netr_DatabaseSync",
16675 sizeof(struct netr_DatabaseSync
),
16676 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
16677 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
16678 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
16682 "netr_AccountDeltas",
16683 sizeof(struct netr_AccountDeltas
),
16684 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
16685 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
16686 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
16690 "netr_AccountSync",
16691 sizeof(struct netr_AccountSync
),
16692 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
16693 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
16694 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
16699 sizeof(struct netr_GetDcName
),
16700 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
16701 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
16702 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
16706 "netr_LogonControl",
16707 sizeof(struct netr_LogonControl
),
16708 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
16709 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
16710 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
16714 "netr_GetAnyDCName",
16715 sizeof(struct netr_GetAnyDCName
),
16716 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
16717 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
16718 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
16722 "netr_LogonControl2",
16723 sizeof(struct netr_LogonControl2
),
16724 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
16725 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
16726 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
16730 "netr_ServerAuthenticate2",
16731 sizeof(struct netr_ServerAuthenticate2
),
16732 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
16733 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
16734 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
16738 "netr_DatabaseSync2",
16739 sizeof(struct netr_DatabaseSync2
),
16740 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
16741 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
16742 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
16746 "netr_DatabaseRedo",
16747 sizeof(struct netr_DatabaseRedo
),
16748 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
16749 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
16750 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
16754 "netr_LogonControl2Ex",
16755 sizeof(struct netr_LogonControl2Ex
),
16756 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
16757 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
16758 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
16762 "netr_NetrEnumerateTrustedDomains",
16763 sizeof(struct netr_NetrEnumerateTrustedDomains
),
16764 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomains
,
16765 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomains
,
16766 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomains
,
16770 "netr_DsRGetDCName",
16771 sizeof(struct netr_DsRGetDCName
),
16772 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
16773 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
16774 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
16778 "netr_LogonGetCapabilities",
16779 sizeof(struct netr_LogonGetCapabilities
),
16780 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetCapabilities
,
16781 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetCapabilities
,
16782 (ndr_print_function_t
) ndr_print_netr_LogonGetCapabilities
,
16786 "netr_NETRLOGONSETSERVICEBITS",
16787 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
16788 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
16789 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
16790 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
16794 "netr_LogonGetTrustRid",
16795 sizeof(struct netr_LogonGetTrustRid
),
16796 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetTrustRid
,
16797 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetTrustRid
,
16798 (ndr_print_function_t
) ndr_print_netr_LogonGetTrustRid
,
16802 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16803 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
16804 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16805 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16806 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16810 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16811 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
16812 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16813 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16814 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16818 "netr_ServerAuthenticate3",
16819 sizeof(struct netr_ServerAuthenticate3
),
16820 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
16821 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
16822 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
16826 "netr_DsRGetDCNameEx",
16827 sizeof(struct netr_DsRGetDCNameEx
),
16828 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
16829 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
16830 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
16834 "netr_DsRGetSiteName",
16835 sizeof(struct netr_DsRGetSiteName
),
16836 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
16837 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
16838 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
16842 "netr_LogonGetDomainInfo",
16843 sizeof(struct netr_LogonGetDomainInfo
),
16844 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
16845 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
16846 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
16850 "netr_ServerPasswordSet2",
16851 sizeof(struct netr_ServerPasswordSet2
),
16852 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
16853 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
16854 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
16858 "netr_ServerPasswordGet",
16859 sizeof(struct netr_ServerPasswordGet
),
16860 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordGet
,
16861 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordGet
,
16862 (ndr_print_function_t
) ndr_print_netr_ServerPasswordGet
,
16866 "netr_NETRLOGONSENDTOSAM",
16867 sizeof(struct netr_NETRLOGONSENDTOSAM
),
16868 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
16869 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
16870 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
16874 "netr_DsRAddressToSitenamesW",
16875 sizeof(struct netr_DsRAddressToSitenamesW
),
16876 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesW
,
16877 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesW
,
16878 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesW
,
16882 "netr_DsRGetDCNameEx2",
16883 sizeof(struct netr_DsRGetDCNameEx2
),
16884 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
16885 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
16886 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
16890 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16891 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
16892 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16893 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16894 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16898 "netr_NetrEnumerateTrustedDomainsEx",
16899 sizeof(struct netr_NetrEnumerateTrustedDomainsEx
),
16900 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomainsEx
,
16901 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomainsEx
,
16902 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomainsEx
,
16906 "netr_DsRAddressToSitenamesExW",
16907 sizeof(struct netr_DsRAddressToSitenamesExW
),
16908 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesExW
,
16909 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesExW
,
16910 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesExW
,
16914 "netr_DsrGetDcSiteCoverageW",
16915 sizeof(struct netr_DsrGetDcSiteCoverageW
),
16916 (ndr_push_flags_fn_t
) ndr_push_netr_DsrGetDcSiteCoverageW
,
16917 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrGetDcSiteCoverageW
,
16918 (ndr_print_function_t
) ndr_print_netr_DsrGetDcSiteCoverageW
,
16922 "netr_LogonSamLogonEx",
16923 sizeof(struct netr_LogonSamLogonEx
),
16924 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
16925 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
16926 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
16930 "netr_DsrEnumerateDomainTrusts",
16931 sizeof(struct netr_DsrEnumerateDomainTrusts
),
16932 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
16933 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
16934 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
16938 "netr_DsrDeregisterDNSHostRecords",
16939 sizeof(struct netr_DsrDeregisterDNSHostRecords
),
16940 (ndr_push_flags_fn_t
) ndr_push_netr_DsrDeregisterDNSHostRecords
,
16941 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrDeregisterDNSHostRecords
,
16942 (ndr_print_function_t
) ndr_print_netr_DsrDeregisterDNSHostRecords
,
16946 "netr_ServerTrustPasswordsGet",
16947 sizeof(struct netr_ServerTrustPasswordsGet
),
16948 (ndr_push_flags_fn_t
) ndr_push_netr_ServerTrustPasswordsGet
,
16949 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerTrustPasswordsGet
,
16950 (ndr_print_function_t
) ndr_print_netr_ServerTrustPasswordsGet
,
16954 "netr_DsRGetForestTrustInformation",
16955 sizeof(struct netr_DsRGetForestTrustInformation
),
16956 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetForestTrustInformation
,
16957 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetForestTrustInformation
,
16958 (ndr_print_function_t
) ndr_print_netr_DsRGetForestTrustInformation
,
16962 "netr_GetForestTrustInformation",
16963 sizeof(struct netr_GetForestTrustInformation
),
16964 (ndr_push_flags_fn_t
) ndr_push_netr_GetForestTrustInformation
,
16965 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetForestTrustInformation
,
16966 (ndr_print_function_t
) ndr_print_netr_GetForestTrustInformation
,
16970 "netr_LogonSamLogonWithFlags",
16971 sizeof(struct netr_LogonSamLogonWithFlags
),
16972 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
16973 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
16974 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
16978 "netr_ServerGetTrustInfo",
16979 sizeof(struct netr_ServerGetTrustInfo
),
16980 (ndr_push_flags_fn_t
) ndr_push_netr_ServerGetTrustInfo
,
16981 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerGetTrustInfo
,
16982 (ndr_print_function_t
) ndr_print_netr_ServerGetTrustInfo
,
16985 { NULL
, 0, NULL
, NULL
, NULL
, false }
16988 static const char * const netlogon_endpoint_strings
[] = {
16989 "ncacn_np:[\\pipe\\netlogon]",
16994 static const struct ndr_interface_string_array netlogon_endpoints
= {
16996 .names
= netlogon_endpoint_strings
16999 static const char * const netlogon_authservice_strings
[] = {
17003 static const struct ndr_interface_string_array netlogon_authservices
= {
17005 .names
= netlogon_authservice_strings
17009 const struct ndr_interface_table ndr_table_netlogon
= {
17010 .name
= "netlogon",
17012 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
17013 NDR_NETLOGON_VERSION
17015 .helpstring
= NDR_NETLOGON_HELPSTRING
,
17017 .calls
= netlogon_calls
,
17018 .endpoints
= &netlogon_endpoints
,
17019 .authservices
= &netlogon_authservices