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
, 5));
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_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
35 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
36 NDR_CHECK(ndr_push_uint3264(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_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
41 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
42 NDR_CHECK(ndr_push_uint3264(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_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
47 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
48 NDR_CHECK(ndr_push_uint3264(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_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
53 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
54 NDR_CHECK(ndr_push_uint3264(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
, 5));
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
, 5));
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
, 5));
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
, 5));
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
, 5));
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
, 5));
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_uint3264(ndr
, NDR_SCALARS
, r
->length
));
421 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
422 NDR_CHECK(ndr_push_uint3264(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
, 5));
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
, 5));
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
, 5));
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
, 5));
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_uint3264(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
, 5));
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_enum_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_enum_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
));
674 NDR_CHECK(ndr_push_union_align(ndr
, 5));
676 case NetlogonInteractiveInformation
: {
677 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
680 case NetlogonNetworkInformation
: {
681 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
684 case NetlogonServiceInformation
: {
685 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
688 case NetlogonGenericInformation
: {
689 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
692 case NetlogonInteractiveTransitiveInformation
: {
693 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
696 case NetlogonNetworkTransitiveInformation
: {
697 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
700 case NetlogonServiceTransitiveInformation
: {
701 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
705 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
708 if (ndr_flags
& NDR_BUFFERS
) {
709 int level
= ndr_push_get_switch_value(ndr
, r
);
711 case NetlogonInteractiveInformation
:
713 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
717 case NetlogonNetworkInformation
:
719 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
723 case NetlogonServiceInformation
:
725 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
729 case NetlogonGenericInformation
:
731 NDR_CHECK(ndr_push_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
735 case NetlogonInteractiveTransitiveInformation
:
737 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
741 case NetlogonNetworkTransitiveInformation
:
743 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
747 case NetlogonServiceTransitiveInformation
:
749 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
754 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
757 return NDR_ERR_SUCCESS
;
760 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LogonLevel(struct ndr_pull
*ndr
, int ndr_flags
, union netr_LogonLevel
*r
)
764 TALLOC_CTX
*_mem_save_password_0
;
765 TALLOC_CTX
*_mem_save_network_0
;
766 TALLOC_CTX
*_mem_save_generic_0
;
767 level
= ndr_pull_get_switch_value(ndr
, r
);
768 if (ndr_flags
& NDR_SCALARS
) {
769 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
770 if (_level
!= level
) {
771 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
773 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
775 case NetlogonInteractiveInformation
: {
776 uint32_t _ptr_password
;
777 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
779 NDR_PULL_ALLOC(ndr
, r
->password
);
785 case NetlogonNetworkInformation
: {
786 uint32_t _ptr_network
;
787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
789 NDR_PULL_ALLOC(ndr
, r
->network
);
795 case NetlogonServiceInformation
: {
796 uint32_t _ptr_password
;
797 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
799 NDR_PULL_ALLOC(ndr
, r
->password
);
805 case NetlogonGenericInformation
: {
806 uint32_t _ptr_generic
;
807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
809 NDR_PULL_ALLOC(ndr
, r
->generic
);
815 case NetlogonInteractiveTransitiveInformation
: {
816 uint32_t _ptr_password
;
817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
819 NDR_PULL_ALLOC(ndr
, r
->password
);
825 case NetlogonNetworkTransitiveInformation
: {
826 uint32_t _ptr_network
;
827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
829 NDR_PULL_ALLOC(ndr
, r
->network
);
835 case NetlogonServiceTransitiveInformation
: {
836 uint32_t _ptr_password
;
837 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
839 NDR_PULL_ALLOC(ndr
, r
->password
);
846 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
849 if (ndr_flags
& NDR_BUFFERS
) {
851 case NetlogonInteractiveInformation
:
853 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
854 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
855 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
860 case NetlogonNetworkInformation
:
862 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
863 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
864 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
869 case NetlogonServiceInformation
:
871 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
872 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
873 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
878 case NetlogonGenericInformation
:
880 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
881 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
882 NDR_CHECK(ndr_pull_netr_GenericInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
887 case NetlogonInteractiveTransitiveInformation
:
889 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
890 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
891 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
896 case NetlogonNetworkTransitiveInformation
:
898 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
899 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
900 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
905 case NetlogonServiceTransitiveInformation
:
907 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
908 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
909 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
915 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
918 return NDR_ERR_SUCCESS
;
921 _PUBLIC_
void ndr_print_netr_LogonLevel(struct ndr_print
*ndr
, const char *name
, const union netr_LogonLevel
*r
)
924 level
= ndr_print_get_switch_value(ndr
, r
);
925 ndr_print_union(ndr
, name
, level
, "netr_LogonLevel");
927 case NetlogonInteractiveInformation
:
928 ndr_print_ptr(ndr
, "password", r
->password
);
931 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
936 case NetlogonNetworkInformation
:
937 ndr_print_ptr(ndr
, "network", r
->network
);
940 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
945 case NetlogonServiceInformation
:
946 ndr_print_ptr(ndr
, "password", r
->password
);
949 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
954 case NetlogonGenericInformation
:
955 ndr_print_ptr(ndr
, "generic", r
->generic
);
958 ndr_print_netr_GenericInfo(ndr
, "generic", r
->generic
);
963 case NetlogonInteractiveTransitiveInformation
:
964 ndr_print_ptr(ndr
, "password", r
->password
);
967 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
972 case NetlogonNetworkTransitiveInformation
:
973 ndr_print_ptr(ndr
, "network", r
->network
);
976 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
981 case NetlogonServiceTransitiveInformation
:
982 ndr_print_ptr(ndr
, "password", r
->password
);
985 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
991 ndr_print_bad_level(ndr
, name
, level
);
995 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UserSessionKey
*r
)
998 uint32_t _flags_save_STRUCT
= ndr
->flags
;
999 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1000 if (ndr_flags
& NDR_SCALARS
) {
1001 NDR_CHECK(ndr_push_align(ndr
, 1));
1002 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
1004 if (ndr_flags
& NDR_BUFFERS
) {
1006 ndr
->flags
= _flags_save_STRUCT
;
1008 return NDR_ERR_SUCCESS
;
1011 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UserSessionKey
*r
)
1014 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1015 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1016 if (ndr_flags
& NDR_SCALARS
) {
1017 NDR_CHECK(ndr_pull_align(ndr
, 1));
1018 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
1020 if (ndr_flags
& NDR_BUFFERS
) {
1022 ndr
->flags
= _flags_save_STRUCT
;
1024 return NDR_ERR_SUCCESS
;
1027 _PUBLIC_
void ndr_print_netr_UserSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_UserSessionKey
*r
)
1029 ndr_print_struct(ndr
, name
, "netr_UserSessionKey");
1031 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1032 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1034 ndr_print_array_uint8(ndr
, "key", r
->key
, 16);
1036 ndr
->flags
= _flags_save_STRUCT
;
1040 _PUBLIC_
enum ndr_err_code
ndr_push_netr_LMSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LMSessionKey
*r
)
1043 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1044 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1045 if (ndr_flags
& NDR_SCALARS
) {
1046 NDR_CHECK(ndr_push_align(ndr
, 1));
1047 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
1049 if (ndr_flags
& NDR_BUFFERS
) {
1051 ndr
->flags
= _flags_save_STRUCT
;
1053 return NDR_ERR_SUCCESS
;
1056 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_LMSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LMSessionKey
*r
)
1059 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1060 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1061 if (ndr_flags
& NDR_SCALARS
) {
1062 NDR_CHECK(ndr_pull_align(ndr
, 1));
1063 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
1065 if (ndr_flags
& NDR_BUFFERS
) {
1067 ndr
->flags
= _flags_save_STRUCT
;
1069 return NDR_ERR_SUCCESS
;
1072 _PUBLIC_
void ndr_print_netr_LMSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_LMSessionKey
*r
)
1074 ndr_print_struct(ndr
, name
, "netr_LMSessionKey");
1076 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1077 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1079 ndr_print_array_uint8(ndr
, "key", r
->key
, 8);
1081 ndr
->flags
= _flags_save_STRUCT
;
1085 _PUBLIC_
enum ndr_err_code
ndr_push_netr_UserFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1088 return NDR_ERR_SUCCESS
;
1091 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_UserFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1094 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1096 return NDR_ERR_SUCCESS
;
1099 _PUBLIC_
void ndr_print_netr_UserFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1101 ndr_print_uint32(ndr
, name
, r
);
1103 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST
, r
);
1104 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION
, r
);
1105 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT
, r
);
1106 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD
, r
);
1107 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS
, r
);
1108 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY
, r
);
1109 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT
, r
);
1110 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED
, r
);
1111 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS
, r
);
1112 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED
, r
);
1113 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON
, r
);
1117 static enum ndr_err_code
ndr_push_netr_SamBaseInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamBaseInfo
*r
)
1119 uint32_t cntr_unknown_0
;
1120 if (ndr_flags
& NDR_SCALARS
) {
1121 NDR_CHECK(ndr_push_align(ndr
, 5));
1122 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
1123 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
1124 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
1125 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
1126 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
1127 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
1128 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1129 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1130 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1131 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1132 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1133 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1134 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
1135 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
1136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
1137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
1138 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1139 NDR_CHECK(ndr_push_netr_UserFlags(ndr
, NDR_SCALARS
, r
->user_flags
));
1140 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1141 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1142 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1143 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
1144 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1145 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
1146 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
1150 if (ndr_flags
& NDR_BUFFERS
) {
1151 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1152 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1153 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1154 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1155 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1156 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1157 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1158 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1159 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1160 if (r
->domain_sid
) {
1161 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1164 return NDR_ERR_SUCCESS
;
1167 static enum ndr_err_code
ndr_pull_netr_SamBaseInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamBaseInfo
*r
)
1169 uint32_t _ptr_domain_sid
;
1170 TALLOC_CTX
*_mem_save_domain_sid_0
;
1171 uint32_t cntr_unknown_0
;
1172 if (ndr_flags
& NDR_SCALARS
) {
1173 NDR_CHECK(ndr_pull_align(ndr
, 5));
1174 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
1175 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
1176 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
1177 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
1178 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
1179 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
1180 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1181 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1182 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1183 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1184 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1185 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1186 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
1187 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
1188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
1189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
1190 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1191 NDR_CHECK(ndr_pull_netr_UserFlags(ndr
, NDR_SCALARS
, &r
->user_flags
));
1192 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1193 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1194 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
1196 if (_ptr_domain_sid
) {
1197 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
1199 r
->domain_sid
= NULL
;
1201 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1202 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
1203 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1204 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
1207 if (ndr_flags
& NDR_BUFFERS
) {
1208 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1209 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1210 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1211 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1212 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1213 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1214 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1215 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1216 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1217 if (r
->domain_sid
) {
1218 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1219 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
1220 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
1224 return NDR_ERR_SUCCESS
;
1227 _PUBLIC_
void ndr_print_netr_SamBaseInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_SamBaseInfo
*r
)
1229 uint32_t cntr_unknown_0
;
1230 ndr_print_struct(ndr
, name
, "netr_SamBaseInfo");
1232 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
1233 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
1234 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
1235 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
1236 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
1237 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
1238 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1239 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1240 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
1241 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
1242 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
1243 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
1244 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
1245 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
1246 ndr_print_uint32(ndr
, "rid", r
->rid
);
1247 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1248 ndr_print_samr_RidWithAttributeArray(ndr
, "groups", &r
->groups
);
1249 ndr_print_netr_UserFlags(ndr
, "user_flags", r
->user_flags
);
1250 ndr_print_netr_UserSessionKey(ndr
, "key", &r
->key
);
1251 ndr_print_lsa_StringLarge(ndr
, "logon_server", &r
->logon_server
);
1252 ndr_print_lsa_StringLarge(ndr
, "domain", &r
->domain
);
1253 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
1255 if (r
->domain_sid
) {
1256 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
1259 ndr_print_netr_LMSessionKey(ndr
, "LMSessKey", &r
->LMSessKey
);
1260 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
1261 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", (int)7);
1263 for (cntr_unknown_0
=0;cntr_unknown_0
<7;cntr_unknown_0
++) {
1265 if (asprintf(&idx_0
, "[%d]", cntr_unknown_0
) != -1) {
1266 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1274 static enum ndr_err_code
ndr_push_netr_SamInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo2
*r
)
1276 if (ndr_flags
& NDR_SCALARS
) {
1277 NDR_CHECK(ndr_push_align(ndr
, 5));
1278 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1280 if (ndr_flags
& NDR_BUFFERS
) {
1281 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1283 return NDR_ERR_SUCCESS
;
1286 static enum ndr_err_code
ndr_pull_netr_SamInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo2
*r
)
1288 if (ndr_flags
& NDR_SCALARS
) {
1289 NDR_CHECK(ndr_pull_align(ndr
, 5));
1290 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1292 if (ndr_flags
& NDR_BUFFERS
) {
1293 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1295 return NDR_ERR_SUCCESS
;
1298 _PUBLIC_
void ndr_print_netr_SamInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo2
*r
)
1300 ndr_print_struct(ndr
, name
, "netr_SamInfo2");
1302 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1306 static enum ndr_err_code
ndr_push_netr_SidAttr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SidAttr
*r
)
1308 if (ndr_flags
& NDR_SCALARS
) {
1309 NDR_CHECK(ndr_push_align(ndr
, 5));
1310 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
1311 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->attributes
));
1313 if (ndr_flags
& NDR_BUFFERS
) {
1315 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1318 return NDR_ERR_SUCCESS
;
1321 static enum ndr_err_code
ndr_pull_netr_SidAttr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SidAttr
*r
)
1324 TALLOC_CTX
*_mem_save_sid_0
;
1325 if (ndr_flags
& NDR_SCALARS
) {
1326 NDR_CHECK(ndr_pull_align(ndr
, 5));
1327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
1329 NDR_PULL_ALLOC(ndr
, r
->sid
);
1333 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->attributes
));
1335 if (ndr_flags
& NDR_BUFFERS
) {
1337 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1338 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
1339 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
1343 return NDR_ERR_SUCCESS
;
1346 _PUBLIC_
void ndr_print_netr_SidAttr(struct ndr_print
*ndr
, const char *name
, const struct netr_SidAttr
*r
)
1348 ndr_print_struct(ndr
, name
, "netr_SidAttr");
1350 ndr_print_ptr(ndr
, "sid", r
->sid
);
1353 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
1356 ndr_print_samr_GroupAttrs(ndr
, "attributes", r
->attributes
);
1360 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SamInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo3
*r
)
1362 uint32_t cntr_sids_1
;
1363 if (ndr_flags
& NDR_SCALARS
) {
1364 NDR_CHECK(ndr_push_align(ndr
, 5));
1365 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1367 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1369 if (ndr_flags
& NDR_BUFFERS
) {
1370 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1372 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->sidcount
));
1373 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1374 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1376 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1377 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1381 return NDR_ERR_SUCCESS
;
1384 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SamInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo3
*r
)
1387 uint32_t cntr_sids_1
;
1388 TALLOC_CTX
*_mem_save_sids_0
;
1389 TALLOC_CTX
*_mem_save_sids_1
;
1390 if (ndr_flags
& NDR_SCALARS
) {
1391 NDR_CHECK(ndr_pull_align(ndr
, 5));
1392 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1394 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1396 NDR_PULL_ALLOC(ndr
, r
->sids
);
1401 if (ndr_flags
& NDR_BUFFERS
) {
1402 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1404 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1405 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1406 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1407 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1408 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1409 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1410 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1411 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1413 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1414 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1420 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1423 return NDR_ERR_SUCCESS
;
1426 _PUBLIC_
void ndr_print_netr_SamInfo3(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo3
*r
)
1428 uint32_t cntr_sids_1
;
1429 ndr_print_struct(ndr
, name
, "netr_SamInfo3");
1431 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1432 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1433 ndr_print_ptr(ndr
, "sids", r
->sids
);
1436 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1438 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1440 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1441 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1451 static enum ndr_err_code
ndr_push_netr_SamInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo6
*r
)
1453 uint32_t cntr_sids_1
;
1454 uint32_t cntr_unknown4_0
;
1455 if (ndr_flags
& NDR_SCALARS
) {
1456 NDR_CHECK(ndr_push_align(ndr
, 5));
1457 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1460 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1461 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1462 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
[cntr_unknown4_0
]));
1466 if (ndr_flags
& NDR_BUFFERS
) {
1467 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1469 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->sidcount
));
1470 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1471 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1473 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1474 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1477 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1478 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1480 return NDR_ERR_SUCCESS
;
1483 static enum ndr_err_code
ndr_pull_netr_SamInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo6
*r
)
1486 uint32_t cntr_sids_1
;
1487 TALLOC_CTX
*_mem_save_sids_0
;
1488 TALLOC_CTX
*_mem_save_sids_1
;
1489 uint32_t cntr_unknown4_0
;
1490 if (ndr_flags
& NDR_SCALARS
) {
1491 NDR_CHECK(ndr_pull_align(ndr
, 5));
1492 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1494 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1496 NDR_PULL_ALLOC(ndr
, r
->sids
);
1500 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1501 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1502 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1503 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
[cntr_unknown4_0
]));
1506 if (ndr_flags
& NDR_BUFFERS
) {
1507 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1509 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1510 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1511 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1512 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1513 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1514 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1515 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1516 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1518 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1519 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1524 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1525 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1527 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1530 return NDR_ERR_SUCCESS
;
1533 _PUBLIC_
void ndr_print_netr_SamInfo6(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo6
*r
)
1535 uint32_t cntr_sids_1
;
1536 uint32_t cntr_unknown4_0
;
1537 ndr_print_struct(ndr
, name
, "netr_SamInfo6");
1539 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1540 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1541 ndr_print_ptr(ndr
, "sids", r
->sids
);
1544 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->sidcount
);
1546 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1548 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
1549 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1556 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
1557 ndr_print_lsa_String(ndr
, "principle", &r
->principle
);
1558 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown4", (int)20);
1560 for (cntr_unknown4_0
=0;cntr_unknown4_0
<20;cntr_unknown4_0
++) {
1562 if (asprintf(&idx_0
, "[%d]", cntr_unknown4_0
) != -1) {
1563 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
[cntr_unknown4_0
]);
1571 static enum ndr_err_code
ndr_push_netr_PacInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PacInfo
*r
)
1573 uint32_t cntr_expansionroom_0
;
1574 if (ndr_flags
& NDR_SCALARS
) {
1575 NDR_CHECK(ndr_push_align(ndr
, 5));
1576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1578 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1579 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1580 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1581 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->auth
));
1583 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1584 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->expansionroom
[cntr_expansionroom_0
]));
1587 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1588 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1589 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1590 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1592 if (ndr_flags
& NDR_BUFFERS
) {
1594 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->pac_size
));
1595 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, r
->pac_size
));
1597 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1598 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1599 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1601 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->auth_size
));
1602 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, r
->auth_size
));
1604 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1605 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1606 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1607 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1609 return NDR_ERR_SUCCESS
;
1612 static enum ndr_err_code
ndr_pull_netr_PacInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PacInfo
*r
)
1615 TALLOC_CTX
*_mem_save_pac_0
;
1617 TALLOC_CTX
*_mem_save_auth_0
;
1618 uint32_t cntr_expansionroom_0
;
1619 if (ndr_flags
& NDR_SCALARS
) {
1620 NDR_CHECK(ndr_pull_align(ndr
, 5));
1621 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pac_size
));
1622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1624 NDR_PULL_ALLOC(ndr
, r
->pac
);
1628 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1629 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1630 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_size
));
1632 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_auth
));
1634 NDR_PULL_ALLOC(ndr
, r
->auth
);
1638 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1639 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1640 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->expansionroom
[cntr_expansionroom_0
]));
1642 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1643 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1644 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1645 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1647 if (ndr_flags
& NDR_BUFFERS
) {
1649 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1650 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1651 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pac
));
1652 NDR_PULL_ALLOC_N(ndr
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
));
1653 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
)));
1654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1656 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1657 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1658 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1660 _mem_save_auth_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1661 NDR_PULL_SET_MEM_CTX(ndr
, r
->auth
, 0);
1662 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->auth
));
1663 NDR_PULL_ALLOC_N(ndr
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
));
1664 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
)));
1665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_auth_0
, 0);
1667 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1668 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1669 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1670 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1672 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pac
, r
->pac_size
));
1675 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->auth
, r
->auth_size
));
1678 return NDR_ERR_SUCCESS
;
1681 _PUBLIC_
void ndr_print_netr_PacInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PacInfo
*r
)
1683 uint32_t cntr_expansionroom_0
;
1684 ndr_print_struct(ndr
, name
, "netr_PacInfo");
1686 ndr_print_uint32(ndr
, "pac_size", r
->pac_size
);
1687 ndr_print_ptr(ndr
, "pac", r
->pac
);
1690 ndr_print_array_uint8(ndr
, "pac", r
->pac
, r
->pac_size
);
1693 ndr_print_lsa_String(ndr
, "logon_domain", &r
->logon_domain
);
1694 ndr_print_lsa_String(ndr
, "logon_server", &r
->logon_server
);
1695 ndr_print_lsa_String(ndr
, "principal_name", &r
->principal_name
);
1696 ndr_print_uint32(ndr
, "auth_size", r
->auth_size
);
1697 ndr_print_ptr(ndr
, "auth", r
->auth
);
1700 ndr_print_array_uint8(ndr
, "auth", r
->auth
, r
->auth_size
);
1703 ndr_print_netr_UserSessionKey(ndr
, "user_session_key", &r
->user_session_key
);
1704 ndr
->print(ndr
, "%s: ARRAY(%d)", "expansionroom", (int)10);
1706 for (cntr_expansionroom_0
=0;cntr_expansionroom_0
<10;cntr_expansionroom_0
++) {
1708 if (asprintf(&idx_0
, "[%d]", cntr_expansionroom_0
) != -1) {
1709 ndr_print_uint32(ndr
, "expansionroom", r
->expansionroom
[cntr_expansionroom_0
]);
1714 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1715 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1716 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1717 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1721 static enum ndr_err_code
ndr_push_netr_GenericInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GenericInfo2
*r
)
1724 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1725 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1726 if (ndr_flags
& NDR_SCALARS
) {
1727 NDR_CHECK(ndr_push_align(ndr
, 5));
1728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
1729 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
1731 if (ndr_flags
& NDR_BUFFERS
) {
1733 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->length
));
1734 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
1737 ndr
->flags
= _flags_save_STRUCT
;
1739 return NDR_ERR_SUCCESS
;
1742 static enum ndr_err_code
ndr_pull_netr_GenericInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GenericInfo2
*r
)
1745 TALLOC_CTX
*_mem_save_data_0
;
1747 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1748 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1749 if (ndr_flags
& NDR_SCALARS
) {
1750 NDR_CHECK(ndr_pull_align(ndr
, 5));
1751 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
1752 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
1754 NDR_PULL_ALLOC(ndr
, r
->data
);
1759 if (ndr_flags
& NDR_BUFFERS
) {
1761 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1762 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
1763 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
1764 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
1765 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
1766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
1769 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
1772 ndr
->flags
= _flags_save_STRUCT
;
1774 return NDR_ERR_SUCCESS
;
1777 _PUBLIC_
void ndr_print_netr_GenericInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_GenericInfo2
*r
)
1779 ndr_print_struct(ndr
, name
, "netr_GenericInfo2");
1781 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1782 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1784 ndr_print_uint32(ndr
, "length", r
->length
);
1785 ndr_print_ptr(ndr
, "data", r
->data
);
1788 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
1792 ndr
->flags
= _flags_save_STRUCT
;
1796 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Validation(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Validation
*r
)
1798 if (ndr_flags
& NDR_SCALARS
) {
1799 int level
= ndr_push_get_switch_value(ndr
, r
);
1800 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
1801 NDR_CHECK(ndr_push_union_align(ndr
, 5));
1803 case NetlogonValidationSamInfo
: {
1804 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam2
));
1807 case NetlogonValidationSamInfo2
: {
1808 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam3
));
1812 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1815 case NetlogonValidationGenericInfo2
: {
1816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->generic
));
1819 case NetlogonValidationSamInfo4
: {
1820 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam6
));
1824 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1827 if (ndr_flags
& NDR_BUFFERS
) {
1828 int level
= ndr_push_get_switch_value(ndr
, r
);
1830 case NetlogonValidationSamInfo
:
1832 NDR_CHECK(ndr_push_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1836 case NetlogonValidationSamInfo2
:
1838 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1844 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1848 case NetlogonValidationGenericInfo2
:
1850 NDR_CHECK(ndr_push_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1854 case NetlogonValidationSamInfo4
:
1856 NDR_CHECK(ndr_push_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1861 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1864 return NDR_ERR_SUCCESS
;
1867 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Validation(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Validation
*r
)
1871 TALLOC_CTX
*_mem_save_sam2_0
;
1872 TALLOC_CTX
*_mem_save_sam3_0
;
1873 TALLOC_CTX
*_mem_save_pac_0
;
1874 TALLOC_CTX
*_mem_save_generic_0
;
1875 TALLOC_CTX
*_mem_save_sam6_0
;
1876 level
= ndr_pull_get_switch_value(ndr
, r
);
1877 if (ndr_flags
& NDR_SCALARS
) {
1878 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1879 if (_level
!= level
) {
1880 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
1882 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
1884 case NetlogonValidationSamInfo
: {
1886 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam2
));
1888 NDR_PULL_ALLOC(ndr
, r
->sam2
);
1894 case NetlogonValidationSamInfo2
: {
1896 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam3
));
1898 NDR_PULL_ALLOC(ndr
, r
->sam3
);
1906 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1908 NDR_PULL_ALLOC(ndr
, r
->pac
);
1914 case NetlogonValidationGenericInfo2
: {
1915 uint32_t _ptr_generic
;
1916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_generic
));
1918 NDR_PULL_ALLOC(ndr
, r
->generic
);
1924 case NetlogonValidationSamInfo4
: {
1926 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam6
));
1928 NDR_PULL_ALLOC(ndr
, r
->sam6
);
1935 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1938 if (ndr_flags
& NDR_BUFFERS
) {
1940 case NetlogonValidationSamInfo
:
1942 _mem_save_sam2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1943 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam2
, 0);
1944 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam2_0
, 0);
1949 case NetlogonValidationSamInfo2
:
1951 _mem_save_sam3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1952 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam3
, 0);
1953 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam3_0
, 0);
1960 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1961 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1962 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1967 case NetlogonValidationGenericInfo2
:
1969 _mem_save_generic_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1970 NDR_PULL_SET_MEM_CTX(ndr
, r
->generic
, 0);
1971 NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->generic
));
1972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_generic_0
, 0);
1976 case NetlogonValidationSamInfo4
:
1978 _mem_save_sam6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1979 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam6
, 0);
1980 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam6_0
, 0);
1986 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1989 return NDR_ERR_SUCCESS
;
1992 _PUBLIC_
void ndr_print_netr_Validation(struct ndr_print
*ndr
, const char *name
, const union netr_Validation
*r
)
1995 level
= ndr_print_get_switch_value(ndr
, r
);
1996 ndr_print_union(ndr
, name
, level
, "netr_Validation");
1998 case NetlogonValidationSamInfo
:
1999 ndr_print_ptr(ndr
, "sam2", r
->sam2
);
2002 ndr_print_netr_SamInfo2(ndr
, "sam2", r
->sam2
);
2007 case NetlogonValidationSamInfo2
:
2008 ndr_print_ptr(ndr
, "sam3", r
->sam3
);
2011 ndr_print_netr_SamInfo3(ndr
, "sam3", r
->sam3
);
2017 ndr_print_ptr(ndr
, "pac", r
->pac
);
2020 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
2025 case NetlogonValidationGenericInfo2
:
2026 ndr_print_ptr(ndr
, "generic", r
->generic
);
2029 ndr_print_netr_GenericInfo2(ndr
, "generic", r
->generic
);
2034 case NetlogonValidationSamInfo4
:
2035 ndr_print_ptr(ndr
, "sam6", r
->sam6
);
2038 ndr_print_netr_SamInfo6(ndr
, "sam6", r
->sam6
);
2044 ndr_print_bad_level(ndr
, name
, level
);
2048 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Credential(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Credential
*r
)
2051 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2052 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2053 if (ndr_flags
& NDR_SCALARS
) {
2054 NDR_CHECK(ndr_push_align(ndr
, 1));
2055 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
2057 if (ndr_flags
& NDR_BUFFERS
) {
2059 ndr
->flags
= _flags_save_STRUCT
;
2061 return NDR_ERR_SUCCESS
;
2064 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Credential(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Credential
*r
)
2067 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2068 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2069 if (ndr_flags
& NDR_SCALARS
) {
2070 NDR_CHECK(ndr_pull_align(ndr
, 1));
2071 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
2073 if (ndr_flags
& NDR_BUFFERS
) {
2075 ndr
->flags
= _flags_save_STRUCT
;
2077 return NDR_ERR_SUCCESS
;
2080 _PUBLIC_
void ndr_print_netr_Credential(struct ndr_print
*ndr
, const char *name
, const struct netr_Credential
*r
)
2082 ndr_print_struct(ndr
, name
, "netr_Credential");
2084 uint32_t _flags_save_STRUCT
= ndr
->flags
;
2085 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2087 ndr_print_array_uint8(ndr
, "data", r
->data
, 8);
2089 ndr
->flags
= _flags_save_STRUCT
;
2093 _PUBLIC_
enum ndr_err_code
ndr_push_netr_Authenticator(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Authenticator
*r
)
2095 if (ndr_flags
& NDR_SCALARS
) {
2096 NDR_CHECK(ndr_push_align(ndr
, 4));
2097 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2098 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
2100 if (ndr_flags
& NDR_BUFFERS
) {
2102 return NDR_ERR_SUCCESS
;
2105 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_Authenticator(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Authenticator
*r
)
2107 if (ndr_flags
& NDR_SCALARS
) {
2108 NDR_CHECK(ndr_pull_align(ndr
, 4));
2109 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
2110 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
2112 if (ndr_flags
& NDR_BUFFERS
) {
2114 return NDR_ERR_SUCCESS
;
2117 _PUBLIC_
void ndr_print_netr_Authenticator(struct ndr_print
*ndr
, const char *name
, const struct netr_Authenticator
*r
)
2119 ndr_print_struct(ndr
, name
, "netr_Authenticator");
2121 ndr_print_netr_Credential(ndr
, "cred", &r
->cred
);
2122 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
2126 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
)
2128 if (ndr_flags
& NDR_SCALARS
) {
2129 NDR_CHECK(ndr_push_align(ndr
, 5));
2130 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
2131 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2132 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2133 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2134 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2140 if (ndr_flags
& NDR_BUFFERS
) {
2141 if (r
->account_name
) {
2142 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2143 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
2144 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
2145 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
2147 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2148 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2149 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2150 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2152 return NDR_ERR_SUCCESS
;
2155 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_USER
*r
)
2157 uint32_t _ptr_account_name
;
2158 TALLOC_CTX
*_mem_save_account_name_0
;
2159 if (ndr_flags
& NDR_SCALARS
) {
2160 NDR_CHECK(ndr_pull_align(ndr
, 5));
2161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
2162 if (_ptr_account_name
) {
2163 NDR_PULL_ALLOC(ndr
, r
->account_name
);
2165 r
->account_name
= NULL
;
2167 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2168 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2169 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2170 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2171 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2172 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2173 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2176 if (ndr_flags
& NDR_BUFFERS
) {
2177 if (r
->account_name
) {
2178 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2179 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
2180 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
2181 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
2182 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
2183 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
));
2185 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
2186 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
2187 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
2189 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2190 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2191 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2192 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2194 return NDR_ERR_SUCCESS
;
2197 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_USER
*r
)
2199 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_USER");
2201 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
2203 if (r
->account_name
) {
2204 ndr_print_string(ndr
, "account_name", r
->account_name
);
2207 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2208 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2209 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2210 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2211 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2212 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2213 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2214 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2218 static enum ndr_err_code
ndr_push_netr_USER_KEY16(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY16
*r
)
2220 if (ndr_flags
& NDR_SCALARS
) {
2221 NDR_CHECK(ndr_push_align(ndr
, 4));
2222 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2223 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
2225 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2227 if (ndr_flags
& NDR_BUFFERS
) {
2229 return NDR_ERR_SUCCESS
;
2232 static enum ndr_err_code
ndr_pull_netr_USER_KEY16(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY16
*r
)
2234 if (ndr_flags
& NDR_SCALARS
) {
2235 NDR_CHECK(ndr_pull_align(ndr
, 4));
2236 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
2237 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
2238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
2239 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2241 if (ndr_flags
& NDR_BUFFERS
) {
2243 return NDR_ERR_SUCCESS
;
2246 _PUBLIC_
void ndr_print_netr_USER_KEY16(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY16
*r
)
2248 ndr_print_struct(ndr
, name
, "netr_USER_KEY16");
2250 ndr_print_uint16(ndr
, "length", r
->length
);
2251 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
2252 ndr_print_uint32(ndr
, "flags", r
->flags
);
2253 ndr_print_samr_Password(ndr
, "pwd", &r
->pwd
);
2257 static enum ndr_err_code
ndr_push_netr_PasswordHistory(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordHistory
*r
)
2259 if (ndr_flags
& NDR_SCALARS
) {
2260 NDR_CHECK(ndr_push_align(ndr
, 4));
2261 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2262 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nt_flags
));
2264 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2265 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lm_flags
));
2267 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2268 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2270 if (ndr_flags
& NDR_BUFFERS
) {
2272 return NDR_ERR_SUCCESS
;
2275 static enum ndr_err_code
ndr_pull_netr_PasswordHistory(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordHistory
*r
)
2277 if (ndr_flags
& NDR_SCALARS
) {
2278 NDR_CHECK(ndr_pull_align(ndr
, 4));
2279 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_length
));
2280 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_size
));
2281 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nt_flags
));
2282 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_length
));
2283 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_size
));
2284 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lm_flags
));
2285 NDR_PULL_ALLOC_N(ndr
, r
->nt_history
, r
->nt_length
);
2286 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2287 NDR_PULL_ALLOC_N(ndr
, r
->lm_history
, r
->lm_length
);
2288 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2290 if (ndr_flags
& NDR_BUFFERS
) {
2292 return NDR_ERR_SUCCESS
;
2295 _PUBLIC_
void ndr_print_netr_PasswordHistory(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordHistory
*r
)
2297 ndr_print_struct(ndr
, name
, "netr_PasswordHistory");
2299 ndr_print_uint16(ndr
, "nt_length", r
->nt_length
);
2300 ndr_print_uint16(ndr
, "nt_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->nt_length
:r
->nt_size
);
2301 ndr_print_uint32(ndr
, "nt_flags", r
->nt_flags
);
2302 ndr_print_uint16(ndr
, "lm_length", r
->lm_length
);
2303 ndr_print_uint16(ndr
, "lm_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->lm_length
:r
->lm_size
);
2304 ndr_print_uint32(ndr
, "lm_flags", r
->lm_flags
);
2305 ndr_print_array_uint8(ndr
, "nt_history", r
->nt_history
, r
->nt_length
);
2306 ndr_print_array_uint8(ndr
, "lm_history", r
->lm_history
, r
->lm_length
);
2310 static enum ndr_err_code
ndr_push_netr_USER_KEYS2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS2
*r
)
2312 if (ndr_flags
& NDR_SCALARS
) {
2313 NDR_CHECK(ndr_push_align(ndr
, 4));
2314 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2315 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2316 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2318 if (ndr_flags
& NDR_BUFFERS
) {
2320 return NDR_ERR_SUCCESS
;
2323 static enum ndr_err_code
ndr_pull_netr_USER_KEYS2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS2
*r
)
2325 if (ndr_flags
& NDR_SCALARS
) {
2326 NDR_CHECK(ndr_pull_align(ndr
, 4));
2327 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2328 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2329 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->history
));
2331 if (ndr_flags
& NDR_BUFFERS
) {
2333 return NDR_ERR_SUCCESS
;
2336 _PUBLIC_
void ndr_print_netr_USER_KEYS2(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS2
*r
)
2338 ndr_print_struct(ndr
, name
, "netr_USER_KEYS2");
2340 ndr_print_netr_USER_KEY16(ndr
, "lmpassword", &r
->lmpassword
);
2341 ndr_print_netr_USER_KEY16(ndr
, "ntpassword", &r
->ntpassword
);
2342 ndr_print_netr_PasswordHistory(ndr
, "history", &r
->history
);
2346 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
)
2348 if (ndr_flags
& NDR_SCALARS
) {
2349 NDR_CHECK(ndr_push_align(ndr
, 4));
2350 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2352 if (ndr_flags
& NDR_BUFFERS
) {
2354 return NDR_ERR_SUCCESS
;
2357 static enum ndr_err_code
ndr_pull_netr_USER_KEY_UNION(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY_UNION
*r
)
2359 if (ndr_flags
& NDR_SCALARS
) {
2360 NDR_CHECK(ndr_pull_align(ndr
, 4));
2361 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2363 if (ndr_flags
& NDR_BUFFERS
) {
2365 return NDR_ERR_SUCCESS
;
2368 _PUBLIC_
void ndr_print_netr_USER_KEY_UNION(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY_UNION
*r
)
2370 ndr_print_struct(ndr
, name
, "netr_USER_KEY_UNION");
2372 ndr_print_netr_USER_KEYS2(ndr
, "keys2", &r
->keys2
);
2376 _PUBLIC_
enum ndr_err_code
ndr_push_netr_USER_KEYS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS
*r
)
2378 if (ndr_flags
& NDR_SCALARS
) {
2379 NDR_CHECK(ndr_push_align(ndr
, 4));
2380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2381 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2383 if (ndr_flags
& NDR_BUFFERS
) {
2385 return NDR_ERR_SUCCESS
;
2388 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_USER_KEYS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS
*r
)
2390 if (ndr_flags
& NDR_SCALARS
) {
2391 NDR_CHECK(ndr_pull_align(ndr
, 4));
2392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2393 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2395 if (ndr_flags
& NDR_BUFFERS
) {
2397 return NDR_ERR_SUCCESS
;
2400 _PUBLIC_
void ndr_print_netr_USER_KEYS(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS
*r
)
2402 ndr_print_struct(ndr
, name
, "netr_USER_KEYS");
2404 ndr_print_uint32(ndr
, "version", r
->version
);
2405 ndr_print_netr_USER_KEY_UNION(ndr
, "keys", &r
->keys
);
2409 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
)
2411 if (ndr_flags
& NDR_SCALARS
) {
2412 NDR_CHECK(ndr_push_align(ndr
, 5));
2413 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->SensitiveDataFlag
));
2414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2416 uint32_t _flags_save_uint8
= ndr
->flags
;
2417 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2418 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->SensitiveData
));
2419 ndr
->flags
= _flags_save_uint8
;
2422 if (ndr_flags
& NDR_BUFFERS
) {
2424 uint32_t _flags_save_uint8
= ndr
->flags
;
2425 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2426 if (r
->SensitiveData
) {
2427 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->DataLength
));
2428 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, r
->DataLength
));
2430 ndr
->flags
= _flags_save_uint8
;
2433 return NDR_ERR_SUCCESS
;
2436 static enum ndr_err_code
ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_PRIVATE_INFO
*r
)
2438 uint32_t _ptr_SensitiveData
;
2439 TALLOC_CTX
*_mem_save_SensitiveData_0
;
2440 if (ndr_flags
& NDR_SCALARS
) {
2441 NDR_CHECK(ndr_pull_align(ndr
, 5));
2442 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->SensitiveDataFlag
));
2443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->DataLength
));
2445 uint32_t _flags_save_uint8
= ndr
->flags
;
2446 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_SensitiveData
));
2448 if (_ptr_SensitiveData
) {
2449 NDR_PULL_ALLOC(ndr
, r
->SensitiveData
);
2451 r
->SensitiveData
= NULL
;
2453 ndr
->flags
= _flags_save_uint8
;
2456 if (ndr_flags
& NDR_BUFFERS
) {
2458 uint32_t _flags_save_uint8
= ndr
->flags
;
2459 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2460 if (r
->SensitiveData
) {
2461 _mem_save_SensitiveData_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2462 NDR_PULL_SET_MEM_CTX(ndr
, r
->SensitiveData
, 0);
2463 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->SensitiveData
));
2464 NDR_PULL_ALLOC_N(ndr
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
));
2465 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
)));
2466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_SensitiveData_0
, 0);
2468 ndr
->flags
= _flags_save_uint8
;
2470 if (r
->SensitiveData
) {
2471 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->SensitiveData
, r
->DataLength
));
2474 return NDR_ERR_SUCCESS
;
2477 _PUBLIC_
void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_PRIVATE_INFO
*r
)
2479 ndr_print_struct(ndr
, name
, "netr_USER_PRIVATE_INFO");
2481 ndr_print_uint8(ndr
, "SensitiveDataFlag", r
->SensitiveDataFlag
);
2482 ndr_print_uint32(ndr
, "DataLength", r
->DataLength
);
2483 ndr_print_ptr(ndr
, "SensitiveData", r
->SensitiveData
);
2485 if (r
->SensitiveData
) {
2486 ndr_print_array_uint8(ndr
, "SensitiveData", r
->SensitiveData
, r
->DataLength
);
2492 static enum ndr_err_code
ndr_push_netr_DELTA_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_USER
*r
)
2494 if (ndr_flags
& NDR_SCALARS
) {
2495 NDR_CHECK(ndr_push_align(ndr
, 5));
2496 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2497 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2500 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2501 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2502 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2503 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2504 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2505 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2506 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2507 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2508 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2509 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2510 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2511 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2512 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2513 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2514 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2515 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_present
));
2516 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_present
));
2517 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2518 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2519 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2520 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2521 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2522 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2524 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2525 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2526 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2527 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2528 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2534 if (ndr_flags
& NDR_BUFFERS
) {
2535 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2536 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2537 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2538 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2539 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2540 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2541 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2542 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2543 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2544 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2545 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2546 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2547 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2548 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2549 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2550 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2552 return NDR_ERR_SUCCESS
;
2555 static enum ndr_err_code
ndr_pull_netr_DELTA_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_USER
*r
)
2557 if (ndr_flags
& NDR_SCALARS
) {
2558 NDR_CHECK(ndr_pull_align(ndr
, 5));
2559 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2560 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2561 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2562 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2563 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2564 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2565 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2566 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2567 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2568 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2569 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2570 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2571 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2572 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2573 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2574 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2575 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2576 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2577 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2578 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_present
));
2579 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_present
));
2580 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2581 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2582 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->parameters
));
2583 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2584 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2585 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2586 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2587 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2588 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2589 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2590 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2591 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2592 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2593 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2594 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2595 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2597 if (ndr_flags
& NDR_BUFFERS
) {
2598 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2599 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2600 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2601 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2602 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2603 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2604 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2605 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2606 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2607 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->parameters
));
2608 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2609 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2610 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2611 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2612 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2613 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2615 return NDR_ERR_SUCCESS
;
2618 _PUBLIC_
void ndr_print_netr_DELTA_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_USER
*r
)
2620 ndr_print_struct(ndr
, name
, "netr_DELTA_USER");
2622 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2623 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2624 ndr_print_uint32(ndr
, "rid", r
->rid
);
2625 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2626 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2627 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2628 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2629 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2630 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2631 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2632 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2633 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2634 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2635 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2636 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2637 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2638 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2639 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
2640 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
2641 ndr_print_uint8(ndr
, "nt_password_present", r
->nt_password_present
);
2642 ndr_print_uint8(ndr
, "lm_password_present", r
->lm_password_present
);
2643 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2644 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2645 ndr_print_lsa_BinaryString(ndr
, "parameters", &r
->parameters
);
2646 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2647 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2648 ndr_print_netr_USER_PRIVATE_INFO(ndr
, "user_private_info", &r
->user_private_info
);
2649 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2650 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2651 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2652 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2653 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2654 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2655 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2656 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2657 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2658 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2662 static enum ndr_err_code
ndr_push_netr_DELTA_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DOMAIN
*r
)
2664 if (ndr_flags
& NDR_SCALARS
) {
2665 NDR_CHECK(ndr_push_align(ndr
, 5));
2666 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2667 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2668 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
2669 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
2670 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
2671 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
2672 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
2673 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2674 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
2675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2676 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2677 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2678 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2679 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2680 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2681 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_to_chgpass
));
2682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2686 if (ndr_flags
& NDR_BUFFERS
) {
2687 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2688 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2689 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2690 NDR_CHECK(ndr_push_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2691 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2692 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2693 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2695 return NDR_ERR_SUCCESS
;
2698 static enum ndr_err_code
ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DOMAIN
*r
)
2700 if (ndr_flags
& NDR_SCALARS
) {
2701 NDR_CHECK(ndr_pull_align(ndr
, 5));
2702 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2703 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->oem_information
));
2704 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
2705 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
2706 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
2707 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
2708 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
2709 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
2710 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
2711 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2712 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2713 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2714 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2715 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2716 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_to_chgpass
));
2718 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2719 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2722 if (ndr_flags
& NDR_BUFFERS
) {
2723 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2724 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->oem_information
));
2725 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2726 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2727 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2728 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2729 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2731 return NDR_ERR_SUCCESS
;
2734 _PUBLIC_
void ndr_print_netr_DELTA_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DOMAIN
*r
)
2736 ndr_print_struct(ndr
, name
, "netr_DELTA_DOMAIN");
2738 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
2739 ndr_print_lsa_String(ndr
, "oem_information", &r
->oem_information
);
2740 ndr_print_dlong(ndr
, "force_logoff_time", r
->force_logoff_time
);
2741 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
2742 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
2743 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
2744 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
2745 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
2746 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
2747 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2748 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2749 ndr_print_lsa_BinaryString(ndr
, "account_lockout", &r
->account_lockout
);
2750 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2751 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2752 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2753 ndr_print_uint32(ndr
, "logon_to_chgpass", r
->logon_to_chgpass
);
2754 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2755 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2756 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2760 static enum ndr_err_code
ndr_push_netr_DELTA_GROUP(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP
*r
)
2762 if (ndr_flags
& NDR_SCALARS
) {
2763 NDR_CHECK(ndr_push_align(ndr
, 5));
2764 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
2767 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2769 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2770 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2771 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2772 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2773 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2779 if (ndr_flags
& NDR_BUFFERS
) {
2780 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2781 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2782 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2783 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2784 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2785 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2786 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2788 return NDR_ERR_SUCCESS
;
2791 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP
*r
)
2793 if (ndr_flags
& NDR_SCALARS
) {
2794 NDR_CHECK(ndr_pull_align(ndr
, 5));
2795 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2796 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2797 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
2798 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2799 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2800 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2801 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2802 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2803 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2804 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2805 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2810 if (ndr_flags
& NDR_BUFFERS
) {
2811 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2812 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2813 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2814 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2815 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2816 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2817 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2819 return NDR_ERR_SUCCESS
;
2822 _PUBLIC_
void ndr_print_netr_DELTA_GROUP(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP
*r
)
2824 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP");
2826 ndr_print_lsa_String(ndr
, "group_name", &r
->group_name
);
2827 ndr_print_uint32(ndr
, "rid", r
->rid
);
2828 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
2829 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2830 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2831 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2832 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2833 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2834 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2835 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2836 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2837 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2838 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2839 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2843 static enum ndr_err_code
ndr_push_netr_DELTA_RENAME(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_RENAME
*r
)
2845 if (ndr_flags
& NDR_SCALARS
) {
2846 NDR_CHECK(ndr_push_align(ndr
, 5));
2847 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2848 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2849 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2850 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2851 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2852 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2858 if (ndr_flags
& NDR_BUFFERS
) {
2859 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2860 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2861 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2862 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2863 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2864 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2866 return NDR_ERR_SUCCESS
;
2869 static enum ndr_err_code
ndr_pull_netr_DELTA_RENAME(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_RENAME
*r
)
2871 if (ndr_flags
& NDR_SCALARS
) {
2872 NDR_CHECK(ndr_pull_align(ndr
, 5));
2873 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2874 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2875 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2876 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2877 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2878 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2879 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2880 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2881 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2882 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2884 if (ndr_flags
& NDR_BUFFERS
) {
2885 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2886 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2887 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2888 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2889 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2890 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2892 return NDR_ERR_SUCCESS
;
2895 _PUBLIC_
void ndr_print_netr_DELTA_RENAME(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_RENAME
*r
)
2897 ndr_print_struct(ndr
, name
, "netr_DELTA_RENAME");
2899 ndr_print_lsa_String(ndr
, "OldName", &r
->OldName
);
2900 ndr_print_lsa_String(ndr
, "NewName", &r
->NewName
);
2901 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2902 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2903 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2904 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2905 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2906 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2907 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2908 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2912 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
)
2914 uint32_t cntr_rids_1
;
2915 uint32_t cntr_attribs_1
;
2916 if (ndr_flags
& NDR_SCALARS
) {
2917 NDR_CHECK(ndr_push_align(ndr
, 5));
2918 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
2919 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribs
));
2920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2926 if (ndr_flags
& NDR_BUFFERS
) {
2928 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->num_rids
));
2929 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
2934 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->num_rids
));
2935 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribs
[cntr_attribs_1
]));
2940 return NDR_ERR_SUCCESS
;
2943 static enum ndr_err_code
ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP_MEMBER
*r
)
2946 uint32_t cntr_rids_1
;
2947 TALLOC_CTX
*_mem_save_rids_0
;
2948 TALLOC_CTX
*_mem_save_rids_1
;
2949 uint32_t _ptr_attribs
;
2950 uint32_t cntr_attribs_1
;
2951 TALLOC_CTX
*_mem_save_attribs_0
;
2952 TALLOC_CTX
*_mem_save_attribs_1
;
2953 if (ndr_flags
& NDR_SCALARS
) {
2954 NDR_CHECK(ndr_pull_align(ndr
, 5));
2955 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
2957 NDR_PULL_ALLOC(ndr
, r
->rids
);
2961 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribs
));
2963 NDR_PULL_ALLOC(ndr
, r
->attribs
);
2967 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_rids
));
2968 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2969 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2970 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2971 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2973 if (ndr_flags
& NDR_BUFFERS
) {
2975 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2976 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2977 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
2978 NDR_PULL_ALLOC_N(ndr
, r
->rids
, ndr_get_array_size(ndr
, &r
->rids
));
2979 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2980 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2981 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2982 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
2984 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
2985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
2988 _mem_save_attribs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2989 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2990 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribs
));
2991 NDR_PULL_ALLOC_N(ndr
, r
->attribs
, ndr_get_array_size(ndr
, &r
->attribs
));
2992 _mem_save_attribs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2993 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2994 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribs
[cntr_attribs_1
]));
2997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_1
, 0);
2998 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_0
, 0);
3001 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->num_rids
));
3004 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attribs
, r
->num_rids
));
3007 return NDR_ERR_SUCCESS
;
3010 _PUBLIC_
void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP_MEMBER
*r
)
3012 uint32_t cntr_rids_1
;
3013 uint32_t cntr_attribs_1
;
3014 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP_MEMBER");
3016 ndr_print_ptr(ndr
, "rids", r
->rids
);
3019 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", (int)r
->num_rids
);
3021 for (cntr_rids_1
=0;cntr_rids_1
<r
->num_rids
;cntr_rids_1
++) {
3023 if (asprintf(&idx_1
, "[%d]", cntr_rids_1
) != -1) {
3024 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
3031 ndr_print_ptr(ndr
, "attribs", r
->attribs
);
3034 ndr
->print(ndr
, "%s: ARRAY(%d)", "attribs", (int)r
->num_rids
);
3036 for (cntr_attribs_1
=0;cntr_attribs_1
<r
->num_rids
;cntr_attribs_1
++) {
3038 if (asprintf(&idx_1
, "[%d]", cntr_attribs_1
) != -1) {
3039 ndr_print_uint32(ndr
, "attribs", r
->attribs
[cntr_attribs_1
]);
3046 ndr_print_uint32(ndr
, "num_rids", r
->num_rids
);
3047 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3048 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3049 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3050 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3054 static enum ndr_err_code
ndr_push_netr_DELTA_ALIAS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS
*r
)
3056 if (ndr_flags
& NDR_SCALARS
) {
3057 NDR_CHECK(ndr_push_align(ndr
, 5));
3058 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
3060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3061 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3062 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3063 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3064 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3065 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3071 if (ndr_flags
& NDR_BUFFERS
) {
3072 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3073 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3074 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3075 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3076 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3077 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3079 return NDR_ERR_SUCCESS
;
3082 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS
*r
)
3084 if (ndr_flags
& NDR_SCALARS
) {
3085 NDR_CHECK(ndr_pull_align(ndr
, 5));
3086 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
3087 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
3088 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3089 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3090 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
3091 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3092 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3093 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3094 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3095 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3096 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3097 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3099 if (ndr_flags
& NDR_BUFFERS
) {
3100 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
3101 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3102 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
3103 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3104 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3105 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3107 return NDR_ERR_SUCCESS
;
3110 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS
*r
)
3112 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS");
3114 ndr_print_lsa_String(ndr
, "alias_name", &r
->alias_name
);
3115 ndr_print_uint32(ndr
, "rid", r
->rid
);
3116 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3117 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3118 ndr_print_lsa_String(ndr
, "description", &r
->description
);
3119 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3120 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3121 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3122 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3123 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3124 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3125 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3129 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
)
3131 if (ndr_flags
& NDR_SCALARS
) {
3132 NDR_CHECK(ndr_push_align(ndr
, 5));
3133 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
3135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
3136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
3137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
3139 if (ndr_flags
& NDR_BUFFERS
) {
3140 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3142 return NDR_ERR_SUCCESS
;
3145 static enum ndr_err_code
ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS_MEMBER
*r
)
3147 if (ndr_flags
& NDR_SCALARS
) {
3148 NDR_CHECK(ndr_pull_align(ndr
, 5));
3149 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
3150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
3151 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
3152 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
3153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
3155 if (ndr_flags
& NDR_BUFFERS
) {
3156 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
3158 return NDR_ERR_SUCCESS
;
3161 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
3163 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS_MEMBER");
3165 ndr_print_lsa_SidArray(ndr
, "sids", &r
->sids
);
3166 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
3167 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
3168 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
3169 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
3173 static enum ndr_err_code
ndr_push_netr_QUOTA_LIMITS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_QUOTA_LIMITS
*r
)
3175 if (ndr_flags
& NDR_SCALARS
) {
3176 NDR_CHECK(ndr_push_align(ndr
, 4));
3177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagedpoollimit
));
3178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nonpagedpoollimit
));
3179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minimumworkingsetsize
));
3180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maximumworkingsetsize
));
3181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagefilelimit
));
3182 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timelimit
));
3184 if (ndr_flags
& NDR_BUFFERS
) {
3186 return NDR_ERR_SUCCESS
;
3189 static enum ndr_err_code
ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_QUOTA_LIMITS
*r
)
3191 if (ndr_flags
& NDR_SCALARS
) {
3192 NDR_CHECK(ndr_pull_align(ndr
, 4));
3193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagedpoollimit
));
3194 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nonpagedpoollimit
));
3195 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minimumworkingsetsize
));
3196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maximumworkingsetsize
));
3197 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagefilelimit
));
3198 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timelimit
));
3200 if (ndr_flags
& NDR_BUFFERS
) {
3202 return NDR_ERR_SUCCESS
;
3205 _PUBLIC_
void ndr_print_netr_QUOTA_LIMITS(struct ndr_print
*ndr
, const char *name
, const struct netr_QUOTA_LIMITS
*r
)
3207 ndr_print_struct(ndr
, name
, "netr_QUOTA_LIMITS");
3209 ndr_print_uint32(ndr
, "pagedpoollimit", r
->pagedpoollimit
);
3210 ndr_print_uint32(ndr
, "nonpagedpoollimit", r
->nonpagedpoollimit
);
3211 ndr_print_uint32(ndr
, "minimumworkingsetsize", r
->minimumworkingsetsize
);
3212 ndr_print_uint32(ndr
, "maximumworkingsetsize", r
->maximumworkingsetsize
);
3213 ndr_print_uint32(ndr
, "pagefilelimit", r
->pagefilelimit
);
3214 ndr_print_NTTIME(ndr
, "timelimit", r
->timelimit
);
3218 static enum ndr_err_code
ndr_push_netr_DELTA_POLICY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_POLICY
*r
)
3220 uint32_t cntr_eventauditoptions_1
;
3221 if (ndr_flags
& NDR_SCALARS
) {
3222 NDR_CHECK(ndr_push_align(ndr
, 5));
3223 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlogsize
));
3224 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->auditretentionperiod
));
3225 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auditingmode
));
3226 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
));
3227 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eventauditoptions
));
3228 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3229 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
3230 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3231 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
3232 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->db_create_time
));
3233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3234 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3235 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3236 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3237 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3238 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3240 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3244 if (ndr_flags
& NDR_BUFFERS
) {
3245 if (r
->eventauditoptions
) {
3246 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->maxauditeventcount
+ 1));
3247 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3251 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3253 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3255 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3256 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3257 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3258 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3259 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3261 return NDR_ERR_SUCCESS
;
3264 static enum ndr_err_code
ndr_pull_netr_DELTA_POLICY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_POLICY
*r
)
3266 uint32_t _ptr_eventauditoptions
;
3267 uint32_t cntr_eventauditoptions_1
;
3268 TALLOC_CTX
*_mem_save_eventauditoptions_0
;
3269 TALLOC_CTX
*_mem_save_eventauditoptions_1
;
3271 TALLOC_CTX
*_mem_save_sid_0
;
3272 if (ndr_flags
& NDR_SCALARS
) {
3273 NDR_CHECK(ndr_pull_align(ndr
, 5));
3274 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlogsize
));
3275 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->auditretentionperiod
));
3276 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auditingmode
));
3277 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxauditeventcount
));
3278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eventauditoptions
));
3279 if (_ptr_eventauditoptions
) {
3280 NDR_PULL_ALLOC(ndr
, r
->eventauditoptions
);
3282 r
->eventauditoptions
= NULL
;
3284 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
3287 NDR_PULL_ALLOC(ndr
, r
->sid
);
3291 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3292 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
3293 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->db_create_time
));
3294 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3295 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3296 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3297 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3298 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3299 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3300 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3301 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3302 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3305 if (ndr_flags
& NDR_BUFFERS
) {
3306 if (r
->eventauditoptions
) {
3307 _mem_save_eventauditoptions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3308 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3309 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eventauditoptions
));
3310 NDR_PULL_ALLOC_N(ndr
, r
->eventauditoptions
, ndr_get_array_size(ndr
, &r
->eventauditoptions
));
3311 _mem_save_eventauditoptions_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3312 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3313 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+ 1; cntr_eventauditoptions_1
++) {
3314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_1
, 0);
3317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_0
, 0);
3319 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3321 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3322 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
3323 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
3326 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3327 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3328 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3329 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3330 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3331 if (r
->eventauditoptions
) {
3332 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eventauditoptions
, r
->maxauditeventcount
+ 1));
3335 return NDR_ERR_SUCCESS
;
3338 _PUBLIC_
void ndr_print_netr_DELTA_POLICY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_POLICY
*r
)
3340 uint32_t cntr_eventauditoptions_1
;
3341 ndr_print_struct(ndr
, name
, "netr_DELTA_POLICY");
3343 ndr_print_uint32(ndr
, "maxlogsize", r
->maxlogsize
);
3344 ndr_print_NTTIME(ndr
, "auditretentionperiod", r
->auditretentionperiod
);
3345 ndr_print_uint8(ndr
, "auditingmode", r
->auditingmode
);
3346 ndr_print_uint32(ndr
, "maxauditeventcount", r
->maxauditeventcount
);
3347 ndr_print_ptr(ndr
, "eventauditoptions", r
->eventauditoptions
);
3349 if (r
->eventauditoptions
) {
3350 ndr
->print(ndr
, "%s: ARRAY(%d)", "eventauditoptions", (int)r
->maxauditeventcount
+ 1);
3352 for (cntr_eventauditoptions_1
=0;cntr_eventauditoptions_1
<r
->maxauditeventcount
+ 1;cntr_eventauditoptions_1
++) {
3354 if (asprintf(&idx_1
, "[%d]", cntr_eventauditoptions_1
) != -1) {
3355 ndr_print_uint32(ndr
, "eventauditoptions", r
->eventauditoptions
[cntr_eventauditoptions_1
]);
3362 ndr_print_lsa_String(ndr
, "primary_domain_name", &r
->primary_domain_name
);
3363 ndr_print_ptr(ndr
, "sid", r
->sid
);
3366 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
3369 ndr_print_netr_QUOTA_LIMITS(ndr
, "quota_limits", &r
->quota_limits
);
3370 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
3371 ndr_print_NTTIME(ndr
, "db_create_time", r
->db_create_time
);
3372 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3373 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3374 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3375 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3376 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3377 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3378 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3379 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3380 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3381 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3385 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
)
3387 uint32_t cntr_controller_names_1
;
3388 if (ndr_flags
& NDR_SCALARS
) {
3389 NDR_CHECK(ndr_push_align(ndr
, 5));
3390 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3392 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->controller_names
));
3393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3394 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3395 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3396 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3397 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3398 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->posix_offset
));
3400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3404 if (ndr_flags
& NDR_BUFFERS
) {
3405 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3406 if (r
->controller_names
) {
3407 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->num_controllers
));
3408 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3409 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3411 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3412 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3415 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3416 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3417 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3418 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3419 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3421 return NDR_ERR_SUCCESS
;
3424 static enum ndr_err_code
ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3426 uint32_t _ptr_controller_names
;
3427 uint32_t cntr_controller_names_1
;
3428 TALLOC_CTX
*_mem_save_controller_names_0
;
3429 TALLOC_CTX
*_mem_save_controller_names_1
;
3430 if (ndr_flags
& NDR_SCALARS
) {
3431 NDR_CHECK(ndr_pull_align(ndr
, 5));
3432 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_controllers
));
3434 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_controller_names
));
3435 if (_ptr_controller_names
) {
3436 NDR_PULL_ALLOC(ndr
, r
->controller_names
);
3438 r
->controller_names
= NULL
;
3440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3441 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3442 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3443 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3444 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3445 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->posix_offset
));
3447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3451 if (ndr_flags
& NDR_BUFFERS
) {
3452 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3453 if (r
->controller_names
) {
3454 _mem_save_controller_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3455 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3456 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->controller_names
));
3457 NDR_PULL_ALLOC_N(ndr
, r
->controller_names
, ndr_get_array_size(ndr
, &r
->controller_names
));
3458 _mem_save_controller_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3459 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3460 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3461 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3463 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3464 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_1
, 0);
3467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_0
, 0);
3469 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3470 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3471 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3472 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3473 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3474 if (r
->controller_names
) {
3475 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->controller_names
, r
->num_controllers
));
3478 return NDR_ERR_SUCCESS
;
3481 _PUBLIC_
void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3483 uint32_t cntr_controller_names_1
;
3484 ndr_print_struct(ndr
, name
, "netr_DELTA_TRUSTED_DOMAIN");
3486 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
3487 ndr_print_uint32(ndr
, "num_controllers", r
->num_controllers
);
3488 ndr_print_ptr(ndr
, "controller_names", r
->controller_names
);
3490 if (r
->controller_names
) {
3491 ndr
->print(ndr
, "%s: ARRAY(%d)", "controller_names", (int)r
->num_controllers
);
3493 for (cntr_controller_names_1
=0;cntr_controller_names_1
<r
->num_controllers
;cntr_controller_names_1
++) {
3495 if (asprintf(&idx_1
, "[%d]", cntr_controller_names_1
) != -1) {
3496 ndr_print_lsa_String(ndr
, "controller_names", &r
->controller_names
[cntr_controller_names_1
]);
3503 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3504 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3505 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3506 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3507 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3508 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3509 ndr_print_uint32(ndr
, "posix_offset", r
->posix_offset
);
3510 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3511 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3512 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3516 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
)
3518 if (ndr_flags
& NDR_SCALARS
) {
3519 NDR_CHECK(ndr_push_align(ndr
, 2));
3520 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3522 if (ndr_flags
& NDR_BUFFERS
) {
3524 return NDR_ERR_SUCCESS
;
3527 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_TRUST
*r
)
3529 if (ndr_flags
& NDR_SCALARS
) {
3530 NDR_CHECK(ndr_pull_align(ndr
, 2));
3531 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3533 if (ndr_flags
& NDR_BUFFERS
) {
3535 return NDR_ERR_SUCCESS
;
3538 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_TRUST
*r
)
3540 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_TRUST");
3542 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3546 static enum ndr_err_code
ndr_push_netr_DELTA_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ACCOUNT
*r
)
3548 uint32_t cntr_privilege_attrib_1
;
3549 uint32_t cntr_privilege_name_1
;
3550 if (ndr_flags
& NDR_SCALARS
) {
3551 NDR_CHECK(ndr_push_align(ndr
, 5));
3552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_control
));
3554 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_attrib
));
3555 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_name
));
3556 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->system_flags
));
3558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3559 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3560 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3561 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3562 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3563 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3564 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3569 if (ndr_flags
& NDR_BUFFERS
) {
3570 if (r
->privilege_attrib
) {
3571 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3572 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3576 if (r
->privilege_name
) {
3577 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3578 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3579 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3581 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3582 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3585 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3586 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3587 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3588 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3589 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3591 return NDR_ERR_SUCCESS
;
3594 static enum ndr_err_code
ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ACCOUNT
*r
)
3596 uint32_t _ptr_privilege_attrib
;
3597 uint32_t cntr_privilege_attrib_1
;
3598 TALLOC_CTX
*_mem_save_privilege_attrib_0
;
3599 TALLOC_CTX
*_mem_save_privilege_attrib_1
;
3600 uint32_t _ptr_privilege_name
;
3601 uint32_t cntr_privilege_name_1
;
3602 TALLOC_CTX
*_mem_save_privilege_name_0
;
3603 TALLOC_CTX
*_mem_save_privilege_name_1
;
3604 if (ndr_flags
& NDR_SCALARS
) {
3605 NDR_CHECK(ndr_pull_align(ndr
, 5));
3606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_entries
));
3607 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_control
));
3608 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_attrib
));
3609 if (_ptr_privilege_attrib
) {
3610 NDR_PULL_ALLOC(ndr
, r
->privilege_attrib
);
3612 r
->privilege_attrib
= NULL
;
3614 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_name
));
3615 if (_ptr_privilege_name
) {
3616 NDR_PULL_ALLOC(ndr
, r
->privilege_name
);
3618 r
->privilege_name
= NULL
;
3620 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3621 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->system_flags
));
3622 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3623 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3624 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3625 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3626 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3627 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3628 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3629 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3630 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3633 if (ndr_flags
& NDR_BUFFERS
) {
3634 if (r
->privilege_attrib
) {
3635 _mem_save_privilege_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3636 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3637 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_attrib
));
3638 NDR_PULL_ALLOC_N(ndr
, r
->privilege_attrib
, ndr_get_array_size(ndr
, &r
->privilege_attrib
));
3639 _mem_save_privilege_attrib_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3640 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3641 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3642 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_1
, 0);
3645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_0
, 0);
3647 if (r
->privilege_name
) {
3648 _mem_save_privilege_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3649 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3650 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_name
));
3651 NDR_PULL_ALLOC_N(ndr
, r
->privilege_name
, ndr_get_array_size(ndr
, &r
->privilege_name
));
3652 _mem_save_privilege_name_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3653 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3654 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3655 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3657 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3658 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_1
, 0);
3661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_0
, 0);
3663 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3664 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3665 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3666 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3667 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3668 if (r
->privilege_attrib
) {
3669 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_attrib
, r
->privilege_entries
));
3671 if (r
->privilege_name
) {
3672 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_name
, r
->privilege_entries
));
3675 return NDR_ERR_SUCCESS
;
3678 _PUBLIC_
void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ACCOUNT
*r
)
3680 uint32_t cntr_privilege_attrib_1
;
3681 uint32_t cntr_privilege_name_1
;
3682 ndr_print_struct(ndr
, name
, "netr_DELTA_ACCOUNT");
3684 ndr_print_uint32(ndr
, "privilege_entries", r
->privilege_entries
);
3685 ndr_print_uint32(ndr
, "privilege_control", r
->privilege_control
);
3686 ndr_print_ptr(ndr
, "privilege_attrib", r
->privilege_attrib
);
3688 if (r
->privilege_attrib
) {
3689 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_attrib", (int)r
->privilege_entries
);
3691 for (cntr_privilege_attrib_1
=0;cntr_privilege_attrib_1
<r
->privilege_entries
;cntr_privilege_attrib_1
++) {
3693 if (asprintf(&idx_1
, "[%d]", cntr_privilege_attrib_1
) != -1) {
3694 ndr_print_uint32(ndr
, "privilege_attrib", r
->privilege_attrib
[cntr_privilege_attrib_1
]);
3701 ndr_print_ptr(ndr
, "privilege_name", r
->privilege_name
);
3703 if (r
->privilege_name
) {
3704 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_name", (int)r
->privilege_entries
);
3706 for (cntr_privilege_name_1
=0;cntr_privilege_name_1
<r
->privilege_entries
;cntr_privilege_name_1
++) {
3708 if (asprintf(&idx_1
, "[%d]", cntr_privilege_name_1
) != -1) {
3709 ndr_print_lsa_String(ndr
, "privilege_name", &r
->privilege_name
[cntr_privilege_name_1
]);
3716 ndr_print_netr_QUOTA_LIMITS(ndr
, "quotalimits", &r
->quotalimits
);
3717 ndr_print_uint32(ndr
, "system_flags", r
->system_flags
);
3718 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3719 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3720 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3721 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3722 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3723 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3724 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3725 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3726 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3727 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3731 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
)
3733 if (ndr_flags
& NDR_SCALARS
) {
3734 NDR_CHECK(ndr_push_align(ndr
, 2));
3735 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3737 if (ndr_flags
& NDR_BUFFERS
) {
3739 return NDR_ERR_SUCCESS
;
3742 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_ACCOUNT
*r
)
3744 if (ndr_flags
& NDR_SCALARS
) {
3745 NDR_CHECK(ndr_pull_align(ndr
, 2));
3746 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3748 if (ndr_flags
& NDR_BUFFERS
) {
3750 return NDR_ERR_SUCCESS
;
3753 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3755 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_ACCOUNT");
3757 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3761 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
)
3763 if (ndr_flags
& NDR_SCALARS
) {
3764 NDR_CHECK(ndr_push_align(ndr
, 2));
3765 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3767 if (ndr_flags
& NDR_BUFFERS
) {
3769 return NDR_ERR_SUCCESS
;
3772 static enum ndr_err_code
ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_SECRET
*r
)
3774 if (ndr_flags
& NDR_SCALARS
) {
3775 NDR_CHECK(ndr_pull_align(ndr
, 2));
3776 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3778 if (ndr_flags
& NDR_BUFFERS
) {
3780 return NDR_ERR_SUCCESS
;
3783 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_SECRET
*r
)
3785 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_SECRET");
3787 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3791 static enum ndr_err_code
ndr_push_netr_CIPHER_VALUE(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CIPHER_VALUE
*r
)
3793 if (ndr_flags
& NDR_SCALARS
) {
3794 NDR_CHECK(ndr_push_align(ndr
, 5));
3795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3797 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cipher_data
));
3799 if (ndr_flags
& NDR_BUFFERS
) {
3800 if (r
->cipher_data
) {
3801 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->maxlen
));
3802 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
3803 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->len
));
3804 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, r
->len
));
3807 return NDR_ERR_SUCCESS
;
3810 static enum ndr_err_code
ndr_pull_netr_CIPHER_VALUE(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CIPHER_VALUE
*r
)
3812 uint32_t _ptr_cipher_data
;
3813 TALLOC_CTX
*_mem_save_cipher_data_0
;
3814 if (ndr_flags
& NDR_SCALARS
) {
3815 NDR_CHECK(ndr_pull_align(ndr
, 5));
3816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
3817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlen
));
3818 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cipher_data
));
3819 if (_ptr_cipher_data
) {
3820 NDR_PULL_ALLOC(ndr
, r
->cipher_data
);
3822 r
->cipher_data
= NULL
;
3825 if (ndr_flags
& NDR_BUFFERS
) {
3826 if (r
->cipher_data
) {
3827 _mem_save_cipher_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3828 NDR_PULL_SET_MEM_CTX(ndr
, r
->cipher_data
, 0);
3829 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cipher_data
));
3830 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->cipher_data
));
3831 if (ndr_get_array_length(ndr
, &r
->cipher_data
) > ndr_get_array_size(ndr
, &r
->cipher_data
)) {
3832 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
));
3834 NDR_PULL_ALLOC_N(ndr
, r
->cipher_data
, ndr_get_array_size(ndr
, &r
->cipher_data
));
3835 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, ndr_get_array_length(ndr
, &r
->cipher_data
)));
3836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cipher_data_0
, 0);
3838 if (r
->cipher_data
) {
3839 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cipher_data
, r
->maxlen
));
3841 if (r
->cipher_data
) {
3842 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->cipher_data
, r
->len
));
3845 return NDR_ERR_SUCCESS
;
3848 _PUBLIC_
void ndr_print_netr_CIPHER_VALUE(struct ndr_print
*ndr
, const char *name
, const struct netr_CIPHER_VALUE
*r
)
3850 ndr_print_struct(ndr
, name
, "netr_CIPHER_VALUE");
3852 ndr_print_uint32(ndr
, "len", r
->len
);
3853 ndr_print_uint32(ndr
, "maxlen", r
->maxlen
);
3854 ndr_print_ptr(ndr
, "cipher_data", r
->cipher_data
);
3856 if (r
->cipher_data
) {
3857 ndr_print_array_uint8(ndr
, "cipher_data", r
->cipher_data
, r
->len
);
3863 static enum ndr_err_code
ndr_push_netr_DELTA_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_SECRET
*r
)
3865 if (ndr_flags
& NDR_SCALARS
) {
3866 NDR_CHECK(ndr_push_align(ndr
, 5));
3867 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3868 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->current_cipher_set_time
));
3869 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3870 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->old_cipher_set_time
));
3871 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3872 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3873 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3874 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3875 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3876 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3877 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3882 if (ndr_flags
& NDR_BUFFERS
) {
3883 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3884 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3885 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3886 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3887 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3888 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3889 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3891 return NDR_ERR_SUCCESS
;
3894 static enum ndr_err_code
ndr_pull_netr_DELTA_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_SECRET
*r
)
3896 if (ndr_flags
& NDR_SCALARS
) {
3897 NDR_CHECK(ndr_pull_align(ndr
, 5));
3898 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3899 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->current_cipher_set_time
));
3900 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3901 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->old_cipher_set_time
));
3902 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3903 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3904 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3905 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3906 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3907 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3908 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3910 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3913 if (ndr_flags
& NDR_BUFFERS
) {
3914 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3915 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3916 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3917 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3918 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3919 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3920 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3922 return NDR_ERR_SUCCESS
;
3925 _PUBLIC_
void ndr_print_netr_DELTA_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_SECRET
*r
)
3927 ndr_print_struct(ndr
, name
, "netr_DELTA_SECRET");
3929 ndr_print_netr_CIPHER_VALUE(ndr
, "current_cipher", &r
->current_cipher
);
3930 ndr_print_NTTIME(ndr
, "current_cipher_set_time", r
->current_cipher_set_time
);
3931 ndr_print_netr_CIPHER_VALUE(ndr
, "old_cipher", &r
->old_cipher
);
3932 ndr_print_NTTIME(ndr
, "old_cipher_set_time", r
->old_cipher_set_time
);
3933 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3934 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3935 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3936 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3937 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3938 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3939 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3940 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3941 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3942 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3946 static enum ndr_err_code
ndr_push_netr_DeltaEnum(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DeltaEnum r
)
3948 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
3949 return NDR_ERR_SUCCESS
;
3952 static enum ndr_err_code
ndr_pull_netr_DeltaEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DeltaEnum
*r
)
3955 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
3957 return NDR_ERR_SUCCESS
;
3960 _PUBLIC_
void ndr_print_netr_DeltaEnum(struct ndr_print
*ndr
, const char *name
, enum netr_DeltaEnum r
)
3962 const char *val
= NULL
;
3965 case NETR_DELTA_DOMAIN
: val
= "NETR_DELTA_DOMAIN"; break;
3966 case NETR_DELTA_GROUP
: val
= "NETR_DELTA_GROUP"; break;
3967 case NETR_DELTA_DELETE_GROUP
: val
= "NETR_DELTA_DELETE_GROUP"; break;
3968 case NETR_DELTA_RENAME_GROUP
: val
= "NETR_DELTA_RENAME_GROUP"; break;
3969 case NETR_DELTA_USER
: val
= "NETR_DELTA_USER"; break;
3970 case NETR_DELTA_DELETE_USER
: val
= "NETR_DELTA_DELETE_USER"; break;
3971 case NETR_DELTA_RENAME_USER
: val
= "NETR_DELTA_RENAME_USER"; break;
3972 case NETR_DELTA_GROUP_MEMBER
: val
= "NETR_DELTA_GROUP_MEMBER"; break;
3973 case NETR_DELTA_ALIAS
: val
= "NETR_DELTA_ALIAS"; break;
3974 case NETR_DELTA_DELETE_ALIAS
: val
= "NETR_DELTA_DELETE_ALIAS"; break;
3975 case NETR_DELTA_RENAME_ALIAS
: val
= "NETR_DELTA_RENAME_ALIAS"; break;
3976 case NETR_DELTA_ALIAS_MEMBER
: val
= "NETR_DELTA_ALIAS_MEMBER"; break;
3977 case NETR_DELTA_POLICY
: val
= "NETR_DELTA_POLICY"; break;
3978 case NETR_DELTA_TRUSTED_DOMAIN
: val
= "NETR_DELTA_TRUSTED_DOMAIN"; break;
3979 case NETR_DELTA_DELETE_TRUST
: val
= "NETR_DELTA_DELETE_TRUST"; break;
3980 case NETR_DELTA_ACCOUNT
: val
= "NETR_DELTA_ACCOUNT"; break;
3981 case NETR_DELTA_DELETE_ACCOUNT
: val
= "NETR_DELTA_DELETE_ACCOUNT"; break;
3982 case NETR_DELTA_SECRET
: val
= "NETR_DELTA_SECRET"; break;
3983 case NETR_DELTA_DELETE_SECRET
: val
= "NETR_DELTA_DELETE_SECRET"; break;
3984 case NETR_DELTA_DELETE_GROUP2
: val
= "NETR_DELTA_DELETE_GROUP2"; break;
3985 case NETR_DELTA_DELETE_USER2
: val
= "NETR_DELTA_DELETE_USER2"; break;
3986 case NETR_DELTA_MODIFY_COUNT
: val
= "NETR_DELTA_MODIFY_COUNT"; break;
3988 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3991 static enum ndr_err_code
ndr_push_netr_DELTA_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_UNION
*r
)
3993 if (ndr_flags
& NDR_SCALARS
) {
3994 int level
= ndr_push_get_switch_value(ndr
, r
);
3995 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
3996 NDR_CHECK(ndr_push_union_align(ndr
, 5));
3998 case NETR_DELTA_DOMAIN
: {
3999 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
4002 case NETR_DELTA_GROUP
: {
4003 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group
));
4006 case NETR_DELTA_DELETE_GROUP
: {
4009 case NETR_DELTA_RENAME_GROUP
: {
4010 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_group
));
4013 case NETR_DELTA_USER
: {
4014 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
4017 case NETR_DELTA_DELETE_USER
: {
4020 case NETR_DELTA_RENAME_USER
: {
4021 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_user
));
4024 case NETR_DELTA_GROUP_MEMBER
: {
4025 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_member
));
4028 case NETR_DELTA_ALIAS
: {
4029 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias
));
4032 case NETR_DELTA_DELETE_ALIAS
: {
4035 case NETR_DELTA_RENAME_ALIAS
: {
4036 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_alias
));
4039 case NETR_DELTA_ALIAS_MEMBER
: {
4040 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias_member
));
4043 case NETR_DELTA_POLICY
: {
4044 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
4047 case NETR_DELTA_TRUSTED_DOMAIN
: {
4048 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain
));
4051 case NETR_DELTA_DELETE_TRUST
: {
4052 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4055 case NETR_DELTA_ACCOUNT
: {
4056 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account
));
4059 case NETR_DELTA_DELETE_ACCOUNT
: {
4060 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4063 case NETR_DELTA_SECRET
: {
4064 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secret
));
4067 case NETR_DELTA_DELETE_SECRET
: {
4068 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4071 case NETR_DELTA_DELETE_GROUP2
: {
4072 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_group
));
4075 case NETR_DELTA_DELETE_USER2
: {
4076 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_user
));
4079 case NETR_DELTA_MODIFY_COUNT
: {
4080 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->modified_count
));
4084 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4087 if (ndr_flags
& NDR_BUFFERS
) {
4088 int level
= ndr_push_get_switch_value(ndr
, r
);
4090 case NETR_DELTA_DOMAIN
:
4092 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4096 case NETR_DELTA_GROUP
:
4098 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4102 case NETR_DELTA_DELETE_GROUP
:
4105 case NETR_DELTA_RENAME_GROUP
:
4106 if (r
->rename_group
) {
4107 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4111 case NETR_DELTA_USER
:
4113 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4117 case NETR_DELTA_DELETE_USER
:
4120 case NETR_DELTA_RENAME_USER
:
4121 if (r
->rename_user
) {
4122 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4126 case NETR_DELTA_GROUP_MEMBER
:
4127 if (r
->group_member
) {
4128 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4132 case NETR_DELTA_ALIAS
:
4134 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4138 case NETR_DELTA_DELETE_ALIAS
:
4141 case NETR_DELTA_RENAME_ALIAS
:
4142 if (r
->rename_alias
) {
4143 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4147 case NETR_DELTA_ALIAS_MEMBER
:
4148 if (r
->alias_member
) {
4149 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4153 case NETR_DELTA_POLICY
:
4155 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4159 case NETR_DELTA_TRUSTED_DOMAIN
:
4160 if (r
->trusted_domain
) {
4161 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4165 case NETR_DELTA_DELETE_TRUST
:
4168 case NETR_DELTA_ACCOUNT
:
4170 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4174 case NETR_DELTA_DELETE_ACCOUNT
:
4177 case NETR_DELTA_SECRET
:
4179 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4183 case NETR_DELTA_DELETE_SECRET
:
4186 case NETR_DELTA_DELETE_GROUP2
:
4187 if (r
->delete_group
) {
4188 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4192 case NETR_DELTA_DELETE_USER2
:
4193 if (r
->delete_user
) {
4194 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4198 case NETR_DELTA_MODIFY_COUNT
:
4199 if (r
->modified_count
) {
4200 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->modified_count
));
4205 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4208 return NDR_ERR_SUCCESS
;
4211 static enum ndr_err_code
ndr_pull_netr_DELTA_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_UNION
*r
)
4215 TALLOC_CTX
*_mem_save_domain_0
;
4216 TALLOC_CTX
*_mem_save_group_0
;
4217 TALLOC_CTX
*_mem_save_rename_group_0
;
4218 TALLOC_CTX
*_mem_save_user_0
;
4219 TALLOC_CTX
*_mem_save_rename_user_0
;
4220 TALLOC_CTX
*_mem_save_group_member_0
;
4221 TALLOC_CTX
*_mem_save_alias_0
;
4222 TALLOC_CTX
*_mem_save_rename_alias_0
;
4223 TALLOC_CTX
*_mem_save_alias_member_0
;
4224 TALLOC_CTX
*_mem_save_policy_0
;
4225 TALLOC_CTX
*_mem_save_trusted_domain_0
;
4226 TALLOC_CTX
*_mem_save_account_0
;
4227 TALLOC_CTX
*_mem_save_secret_0
;
4228 TALLOC_CTX
*_mem_save_delete_group_0
;
4229 TALLOC_CTX
*_mem_save_delete_user_0
;
4230 TALLOC_CTX
*_mem_save_modified_count_0
;
4231 level
= ndr_pull_get_switch_value(ndr
, r
);
4232 if (ndr_flags
& NDR_SCALARS
) {
4233 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4234 if (_level
!= level
) {
4235 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4237 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
4239 case NETR_DELTA_DOMAIN
: {
4240 uint32_t _ptr_domain
;
4241 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
4243 NDR_PULL_ALLOC(ndr
, r
->domain
);
4249 case NETR_DELTA_GROUP
: {
4250 uint32_t _ptr_group
;
4251 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group
));
4253 NDR_PULL_ALLOC(ndr
, r
->group
);
4259 case NETR_DELTA_DELETE_GROUP
: {
4262 case NETR_DELTA_RENAME_GROUP
: {
4263 uint32_t _ptr_rename_group
;
4264 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_group
));
4265 if (_ptr_rename_group
) {
4266 NDR_PULL_ALLOC(ndr
, r
->rename_group
);
4268 r
->rename_group
= NULL
;
4272 case NETR_DELTA_USER
: {
4274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
4276 NDR_PULL_ALLOC(ndr
, r
->user
);
4282 case NETR_DELTA_DELETE_USER
: {
4285 case NETR_DELTA_RENAME_USER
: {
4286 uint32_t _ptr_rename_user
;
4287 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_user
));
4288 if (_ptr_rename_user
) {
4289 NDR_PULL_ALLOC(ndr
, r
->rename_user
);
4291 r
->rename_user
= NULL
;
4295 case NETR_DELTA_GROUP_MEMBER
: {
4296 uint32_t _ptr_group_member
;
4297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_member
));
4298 if (_ptr_group_member
) {
4299 NDR_PULL_ALLOC(ndr
, r
->group_member
);
4301 r
->group_member
= NULL
;
4305 case NETR_DELTA_ALIAS
: {
4306 uint32_t _ptr_alias
;
4307 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias
));
4309 NDR_PULL_ALLOC(ndr
, r
->alias
);
4315 case NETR_DELTA_DELETE_ALIAS
: {
4318 case NETR_DELTA_RENAME_ALIAS
: {
4319 uint32_t _ptr_rename_alias
;
4320 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_alias
));
4321 if (_ptr_rename_alias
) {
4322 NDR_PULL_ALLOC(ndr
, r
->rename_alias
);
4324 r
->rename_alias
= NULL
;
4328 case NETR_DELTA_ALIAS_MEMBER
: {
4329 uint32_t _ptr_alias_member
;
4330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias_member
));
4331 if (_ptr_alias_member
) {
4332 NDR_PULL_ALLOC(ndr
, r
->alias_member
);
4334 r
->alias_member
= NULL
;
4338 case NETR_DELTA_POLICY
: {
4339 uint32_t _ptr_policy
;
4340 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
4342 NDR_PULL_ALLOC(ndr
, r
->policy
);
4348 case NETR_DELTA_TRUSTED_DOMAIN
: {
4349 uint32_t _ptr_trusted_domain
;
4350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain
));
4351 if (_ptr_trusted_domain
) {
4352 NDR_PULL_ALLOC(ndr
, r
->trusted_domain
);
4354 r
->trusted_domain
= NULL
;
4358 case NETR_DELTA_DELETE_TRUST
: {
4359 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4362 case NETR_DELTA_ACCOUNT
: {
4363 uint32_t _ptr_account
;
4364 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account
));
4366 NDR_PULL_ALLOC(ndr
, r
->account
);
4372 case NETR_DELTA_DELETE_ACCOUNT
: {
4373 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4376 case NETR_DELTA_SECRET
: {
4377 uint32_t _ptr_secret
;
4378 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secret
));
4380 NDR_PULL_ALLOC(ndr
, r
->secret
);
4386 case NETR_DELTA_DELETE_SECRET
: {
4387 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4390 case NETR_DELTA_DELETE_GROUP2
: {
4391 uint32_t _ptr_delete_group
;
4392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_group
));
4393 if (_ptr_delete_group
) {
4394 NDR_PULL_ALLOC(ndr
, r
->delete_group
);
4396 r
->delete_group
= NULL
;
4400 case NETR_DELTA_DELETE_USER2
: {
4401 uint32_t _ptr_delete_user
;
4402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_user
));
4403 if (_ptr_delete_user
) {
4404 NDR_PULL_ALLOC(ndr
, r
->delete_user
);
4406 r
->delete_user
= NULL
;
4410 case NETR_DELTA_MODIFY_COUNT
: {
4411 uint32_t _ptr_modified_count
;
4412 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_modified_count
));
4413 if (_ptr_modified_count
) {
4414 NDR_PULL_ALLOC(ndr
, r
->modified_count
);
4416 r
->modified_count
= NULL
;
4421 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4424 if (ndr_flags
& NDR_BUFFERS
) {
4426 case NETR_DELTA_DOMAIN
:
4428 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4429 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4430 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4431 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4435 case NETR_DELTA_GROUP
:
4437 _mem_save_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4438 NDR_PULL_SET_MEM_CTX(ndr
, r
->group
, 0);
4439 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4440 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_0
, 0);
4444 case NETR_DELTA_DELETE_GROUP
:
4447 case NETR_DELTA_RENAME_GROUP
:
4448 if (r
->rename_group
) {
4449 _mem_save_rename_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4450 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_group
, 0);
4451 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_group_0
, 0);
4456 case NETR_DELTA_USER
:
4458 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4459 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
4460 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
4465 case NETR_DELTA_DELETE_USER
:
4468 case NETR_DELTA_RENAME_USER
:
4469 if (r
->rename_user
) {
4470 _mem_save_rename_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4471 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_user
, 0);
4472 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_user_0
, 0);
4477 case NETR_DELTA_GROUP_MEMBER
:
4478 if (r
->group_member
) {
4479 _mem_save_group_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4480 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_member
, 0);
4481 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4482 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_member_0
, 0);
4486 case NETR_DELTA_ALIAS
:
4488 _mem_save_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4489 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias
, 0);
4490 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_0
, 0);
4495 case NETR_DELTA_DELETE_ALIAS
:
4498 case NETR_DELTA_RENAME_ALIAS
:
4499 if (r
->rename_alias
) {
4500 _mem_save_rename_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4501 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_alias
, 0);
4502 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_alias_0
, 0);
4507 case NETR_DELTA_ALIAS_MEMBER
:
4508 if (r
->alias_member
) {
4509 _mem_save_alias_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4510 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias_member
, 0);
4511 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_member_0
, 0);
4516 case NETR_DELTA_POLICY
:
4518 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4519 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
4520 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
4525 case NETR_DELTA_TRUSTED_DOMAIN
:
4526 if (r
->trusted_domain
) {
4527 _mem_save_trusted_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4528 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain
, 0);
4529 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_0
, 0);
4534 case NETR_DELTA_DELETE_TRUST
:
4537 case NETR_DELTA_ACCOUNT
:
4539 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4540 NDR_PULL_SET_MEM_CTX(ndr
, r
->account
, 0);
4541 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, 0);
4546 case NETR_DELTA_DELETE_ACCOUNT
:
4549 case NETR_DELTA_SECRET
:
4551 _mem_save_secret_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4552 NDR_PULL_SET_MEM_CTX(ndr
, r
->secret
, 0);
4553 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secret_0
, 0);
4558 case NETR_DELTA_DELETE_SECRET
:
4561 case NETR_DELTA_DELETE_GROUP2
:
4562 if (r
->delete_group
) {
4563 _mem_save_delete_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4564 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_group
, 0);
4565 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_group_0
, 0);
4570 case NETR_DELTA_DELETE_USER2
:
4571 if (r
->delete_user
) {
4572 _mem_save_delete_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4573 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_user
, 0);
4574 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_user_0
, 0);
4579 case NETR_DELTA_MODIFY_COUNT
:
4580 if (r
->modified_count
) {
4581 _mem_save_modified_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4582 NDR_PULL_SET_MEM_CTX(ndr
, r
->modified_count
, 0);
4583 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->modified_count
));
4584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_modified_count_0
, 0);
4589 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4592 return NDR_ERR_SUCCESS
;
4595 _PUBLIC_
void ndr_print_netr_DELTA_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_UNION
*r
)
4598 level
= ndr_print_get_switch_value(ndr
, r
);
4599 ndr_print_union(ndr
, name
, level
, "netr_DELTA_UNION");
4601 case NETR_DELTA_DOMAIN
:
4602 ndr_print_ptr(ndr
, "domain", r
->domain
);
4605 ndr_print_netr_DELTA_DOMAIN(ndr
, "domain", r
->domain
);
4610 case NETR_DELTA_GROUP
:
4611 ndr_print_ptr(ndr
, "group", r
->group
);
4614 ndr_print_netr_DELTA_GROUP(ndr
, "group", r
->group
);
4619 case NETR_DELTA_DELETE_GROUP
:
4622 case NETR_DELTA_RENAME_GROUP
:
4623 ndr_print_ptr(ndr
, "rename_group", r
->rename_group
);
4625 if (r
->rename_group
) {
4626 ndr_print_netr_DELTA_RENAME(ndr
, "rename_group", r
->rename_group
);
4631 case NETR_DELTA_USER
:
4632 ndr_print_ptr(ndr
, "user", r
->user
);
4635 ndr_print_netr_DELTA_USER(ndr
, "user", r
->user
);
4640 case NETR_DELTA_DELETE_USER
:
4643 case NETR_DELTA_RENAME_USER
:
4644 ndr_print_ptr(ndr
, "rename_user", r
->rename_user
);
4646 if (r
->rename_user
) {
4647 ndr_print_netr_DELTA_RENAME(ndr
, "rename_user", r
->rename_user
);
4652 case NETR_DELTA_GROUP_MEMBER
:
4653 ndr_print_ptr(ndr
, "group_member", r
->group_member
);
4655 if (r
->group_member
) {
4656 ndr_print_netr_DELTA_GROUP_MEMBER(ndr
, "group_member", r
->group_member
);
4661 case NETR_DELTA_ALIAS
:
4662 ndr_print_ptr(ndr
, "alias", r
->alias
);
4665 ndr_print_netr_DELTA_ALIAS(ndr
, "alias", r
->alias
);
4670 case NETR_DELTA_DELETE_ALIAS
:
4673 case NETR_DELTA_RENAME_ALIAS
:
4674 ndr_print_ptr(ndr
, "rename_alias", r
->rename_alias
);
4676 if (r
->rename_alias
) {
4677 ndr_print_netr_DELTA_RENAME(ndr
, "rename_alias", r
->rename_alias
);
4682 case NETR_DELTA_ALIAS_MEMBER
:
4683 ndr_print_ptr(ndr
, "alias_member", r
->alias_member
);
4685 if (r
->alias_member
) {
4686 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr
, "alias_member", r
->alias_member
);
4691 case NETR_DELTA_POLICY
:
4692 ndr_print_ptr(ndr
, "policy", r
->policy
);
4695 ndr_print_netr_DELTA_POLICY(ndr
, "policy", r
->policy
);
4700 case NETR_DELTA_TRUSTED_DOMAIN
:
4701 ndr_print_ptr(ndr
, "trusted_domain", r
->trusted_domain
);
4703 if (r
->trusted_domain
) {
4704 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr
, "trusted_domain", r
->trusted_domain
);
4709 case NETR_DELTA_DELETE_TRUST
:
4710 ndr_print_netr_DELTA_DELETE_TRUST(ndr
, "delete_trust", &r
->delete_trust
);
4713 case NETR_DELTA_ACCOUNT
:
4714 ndr_print_ptr(ndr
, "account", r
->account
);
4717 ndr_print_netr_DELTA_ACCOUNT(ndr
, "account", r
->account
);
4722 case NETR_DELTA_DELETE_ACCOUNT
:
4723 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr
, "delete_account", &r
->delete_account
);
4726 case NETR_DELTA_SECRET
:
4727 ndr_print_ptr(ndr
, "secret", r
->secret
);
4730 ndr_print_netr_DELTA_SECRET(ndr
, "secret", r
->secret
);
4735 case NETR_DELTA_DELETE_SECRET
:
4736 ndr_print_netr_DELTA_DELETE_SECRET(ndr
, "delete_secret", &r
->delete_secret
);
4739 case NETR_DELTA_DELETE_GROUP2
:
4740 ndr_print_ptr(ndr
, "delete_group", r
->delete_group
);
4742 if (r
->delete_group
) {
4743 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_group", r
->delete_group
);
4748 case NETR_DELTA_DELETE_USER2
:
4749 ndr_print_ptr(ndr
, "delete_user", r
->delete_user
);
4751 if (r
->delete_user
) {
4752 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_user", r
->delete_user
);
4757 case NETR_DELTA_MODIFY_COUNT
:
4758 ndr_print_ptr(ndr
, "modified_count", r
->modified_count
);
4760 if (r
->modified_count
) {
4761 ndr_print_udlong(ndr
, "modified_count", *r
->modified_count
);
4767 ndr_print_bad_level(ndr
, name
, level
);
4771 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
)
4773 if (ndr_flags
& NDR_SCALARS
) {
4774 int level
= ndr_push_get_switch_value(ndr
, r
);
4775 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4776 NDR_CHECK(ndr_push_union_align(ndr
, 5));
4778 case NETR_DELTA_DOMAIN
: {
4779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4782 case NETR_DELTA_GROUP
: {
4783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4786 case NETR_DELTA_DELETE_GROUP
: {
4787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4790 case NETR_DELTA_RENAME_GROUP
: {
4791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4794 case NETR_DELTA_USER
: {
4795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4798 case NETR_DELTA_DELETE_USER
: {
4799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4802 case NETR_DELTA_RENAME_USER
: {
4803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4806 case NETR_DELTA_GROUP_MEMBER
: {
4807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4810 case NETR_DELTA_ALIAS
: {
4811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4814 case NETR_DELTA_DELETE_ALIAS
: {
4815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4818 case NETR_DELTA_RENAME_ALIAS
: {
4819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4822 case NETR_DELTA_ALIAS_MEMBER
: {
4823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4826 case NETR_DELTA_POLICY
: {
4827 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4830 case NETR_DELTA_TRUSTED_DOMAIN
: {
4831 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4834 case NETR_DELTA_DELETE_TRUST
: {
4835 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4838 case NETR_DELTA_ACCOUNT
: {
4839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4842 case NETR_DELTA_DELETE_ACCOUNT
: {
4843 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4846 case NETR_DELTA_SECRET
: {
4847 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4850 case NETR_DELTA_DELETE_SECRET
: {
4851 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4854 case NETR_DELTA_DELETE_GROUP2
: {
4855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4858 case NETR_DELTA_DELETE_USER2
: {
4859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4862 case NETR_DELTA_MODIFY_COUNT
: {
4866 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4869 if (ndr_flags
& NDR_BUFFERS
) {
4870 int level
= ndr_push_get_switch_value(ndr
, r
);
4872 case NETR_DELTA_DOMAIN
:
4875 case NETR_DELTA_GROUP
:
4878 case NETR_DELTA_DELETE_GROUP
:
4881 case NETR_DELTA_RENAME_GROUP
:
4884 case NETR_DELTA_USER
:
4887 case NETR_DELTA_DELETE_USER
:
4890 case NETR_DELTA_RENAME_USER
:
4893 case NETR_DELTA_GROUP_MEMBER
:
4896 case NETR_DELTA_ALIAS
:
4899 case NETR_DELTA_DELETE_ALIAS
:
4902 case NETR_DELTA_RENAME_ALIAS
:
4905 case NETR_DELTA_ALIAS_MEMBER
:
4908 case NETR_DELTA_POLICY
:
4910 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4914 case NETR_DELTA_TRUSTED_DOMAIN
:
4916 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4920 case NETR_DELTA_DELETE_TRUST
:
4922 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4926 case NETR_DELTA_ACCOUNT
:
4928 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4932 case NETR_DELTA_DELETE_ACCOUNT
:
4934 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4938 case NETR_DELTA_SECRET
:
4940 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4941 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4942 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4943 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4947 case NETR_DELTA_DELETE_SECRET
:
4949 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4950 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4951 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4952 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4956 case NETR_DELTA_DELETE_GROUP2
:
4959 case NETR_DELTA_DELETE_USER2
:
4962 case NETR_DELTA_MODIFY_COUNT
:
4966 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4969 return NDR_ERR_SUCCESS
;
4972 static enum ndr_err_code
ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_ID_UNION
*r
)
4976 TALLOC_CTX
*_mem_save_sid_0
;
4977 TALLOC_CTX
*_mem_save_name_0
;
4978 level
= ndr_pull_get_switch_value(ndr
, r
);
4979 if (ndr_flags
& NDR_SCALARS
) {
4980 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4981 if (_level
!= level
) {
4982 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4984 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
4986 case NETR_DELTA_DOMAIN
: {
4987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4990 case NETR_DELTA_GROUP
: {
4991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4994 case NETR_DELTA_DELETE_GROUP
: {
4995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4998 case NETR_DELTA_RENAME_GROUP
: {
4999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5002 case NETR_DELTA_USER
: {
5003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5006 case NETR_DELTA_DELETE_USER
: {
5007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5010 case NETR_DELTA_RENAME_USER
: {
5011 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5014 case NETR_DELTA_GROUP_MEMBER
: {
5015 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5018 case NETR_DELTA_ALIAS
: {
5019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5022 case NETR_DELTA_DELETE_ALIAS
: {
5023 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5026 case NETR_DELTA_RENAME_ALIAS
: {
5027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5030 case NETR_DELTA_ALIAS_MEMBER
: {
5031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5034 case NETR_DELTA_POLICY
: {
5036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5038 NDR_PULL_ALLOC(ndr
, r
->sid
);
5044 case NETR_DELTA_TRUSTED_DOMAIN
: {
5046 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5048 NDR_PULL_ALLOC(ndr
, r
->sid
);
5054 case NETR_DELTA_DELETE_TRUST
: {
5056 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5058 NDR_PULL_ALLOC(ndr
, r
->sid
);
5064 case NETR_DELTA_ACCOUNT
: {
5066 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5068 NDR_PULL_ALLOC(ndr
, r
->sid
);
5074 case NETR_DELTA_DELETE_ACCOUNT
: {
5076 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
5078 NDR_PULL_ALLOC(ndr
, r
->sid
);
5084 case NETR_DELTA_SECRET
: {
5086 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5088 NDR_PULL_ALLOC(ndr
, r
->name
);
5094 case NETR_DELTA_DELETE_SECRET
: {
5096 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5098 NDR_PULL_ALLOC(ndr
, r
->name
);
5104 case NETR_DELTA_DELETE_GROUP2
: {
5105 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5108 case NETR_DELTA_DELETE_USER2
: {
5109 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
5112 case NETR_DELTA_MODIFY_COUNT
: {
5116 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5119 if (ndr_flags
& NDR_BUFFERS
) {
5121 case NETR_DELTA_DOMAIN
:
5124 case NETR_DELTA_GROUP
:
5127 case NETR_DELTA_DELETE_GROUP
:
5130 case NETR_DELTA_RENAME_GROUP
:
5133 case NETR_DELTA_USER
:
5136 case NETR_DELTA_DELETE_USER
:
5139 case NETR_DELTA_RENAME_USER
:
5142 case NETR_DELTA_GROUP_MEMBER
:
5145 case NETR_DELTA_ALIAS
:
5148 case NETR_DELTA_DELETE_ALIAS
:
5151 case NETR_DELTA_RENAME_ALIAS
:
5154 case NETR_DELTA_ALIAS_MEMBER
:
5157 case NETR_DELTA_POLICY
:
5159 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5160 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5161 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5162 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5166 case NETR_DELTA_TRUSTED_DOMAIN
:
5168 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5169 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5170 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5175 case NETR_DELTA_DELETE_TRUST
:
5177 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5178 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5179 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5184 case NETR_DELTA_ACCOUNT
:
5186 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5187 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5188 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5193 case NETR_DELTA_DELETE_ACCOUNT
:
5195 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5196 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
5197 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
5198 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
5202 case NETR_DELTA_SECRET
:
5204 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5205 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5206 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5207 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5208 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5209 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
));
5211 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5212 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5213 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5217 case NETR_DELTA_DELETE_SECRET
:
5219 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5220 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5221 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5222 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5223 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5224 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
));
5226 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5227 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5228 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5232 case NETR_DELTA_DELETE_GROUP2
:
5235 case NETR_DELTA_DELETE_USER2
:
5238 case NETR_DELTA_MODIFY_COUNT
:
5242 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5245 return NDR_ERR_SUCCESS
;
5248 _PUBLIC_
void ndr_print_netr_DELTA_ID_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_ID_UNION
*r
)
5251 level
= ndr_print_get_switch_value(ndr
, r
);
5252 ndr_print_union(ndr
, name
, level
, "netr_DELTA_ID_UNION");
5254 case NETR_DELTA_DOMAIN
:
5255 ndr_print_uint32(ndr
, "rid", r
->rid
);
5258 case NETR_DELTA_GROUP
:
5259 ndr_print_uint32(ndr
, "rid", r
->rid
);
5262 case NETR_DELTA_DELETE_GROUP
:
5263 ndr_print_uint32(ndr
, "rid", r
->rid
);
5266 case NETR_DELTA_RENAME_GROUP
:
5267 ndr_print_uint32(ndr
, "rid", r
->rid
);
5270 case NETR_DELTA_USER
:
5271 ndr_print_uint32(ndr
, "rid", r
->rid
);
5274 case NETR_DELTA_DELETE_USER
:
5275 ndr_print_uint32(ndr
, "rid", r
->rid
);
5278 case NETR_DELTA_RENAME_USER
:
5279 ndr_print_uint32(ndr
, "rid", r
->rid
);
5282 case NETR_DELTA_GROUP_MEMBER
:
5283 ndr_print_uint32(ndr
, "rid", r
->rid
);
5286 case NETR_DELTA_ALIAS
:
5287 ndr_print_uint32(ndr
, "rid", r
->rid
);
5290 case NETR_DELTA_DELETE_ALIAS
:
5291 ndr_print_uint32(ndr
, "rid", r
->rid
);
5294 case NETR_DELTA_RENAME_ALIAS
:
5295 ndr_print_uint32(ndr
, "rid", r
->rid
);
5298 case NETR_DELTA_ALIAS_MEMBER
:
5299 ndr_print_uint32(ndr
, "rid", r
->rid
);
5302 case NETR_DELTA_POLICY
:
5303 ndr_print_ptr(ndr
, "sid", r
->sid
);
5306 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5311 case NETR_DELTA_TRUSTED_DOMAIN
:
5312 ndr_print_ptr(ndr
, "sid", r
->sid
);
5315 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5320 case NETR_DELTA_DELETE_TRUST
:
5321 ndr_print_ptr(ndr
, "sid", r
->sid
);
5324 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5329 case NETR_DELTA_ACCOUNT
:
5330 ndr_print_ptr(ndr
, "sid", r
->sid
);
5333 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5338 case NETR_DELTA_DELETE_ACCOUNT
:
5339 ndr_print_ptr(ndr
, "sid", r
->sid
);
5342 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5347 case NETR_DELTA_SECRET
:
5348 ndr_print_ptr(ndr
, "name", r
->name
);
5351 ndr_print_string(ndr
, "name", r
->name
);
5356 case NETR_DELTA_DELETE_SECRET
:
5357 ndr_print_ptr(ndr
, "name", r
->name
);
5360 ndr_print_string(ndr
, "name", r
->name
);
5365 case NETR_DELTA_DELETE_GROUP2
:
5366 ndr_print_uint32(ndr
, "rid", r
->rid
);
5369 case NETR_DELTA_DELETE_USER2
:
5370 ndr_print_uint32(ndr
, "rid", r
->rid
);
5373 case NETR_DELTA_MODIFY_COUNT
:
5377 ndr_print_bad_level(ndr
, name
, level
);
5381 static enum ndr_err_code
ndr_push_netr_DELTA_ENUM(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM
*r
)
5383 if (ndr_flags
& NDR_SCALARS
) {
5384 NDR_CHECK(ndr_push_align(ndr
, 5));
5385 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, r
->delta_type
));
5386 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5387 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5388 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5389 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5391 if (ndr_flags
& NDR_BUFFERS
) {
5392 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5393 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5395 return NDR_ERR_SUCCESS
;
5398 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM
*r
)
5400 if (ndr_flags
& NDR_SCALARS
) {
5401 NDR_CHECK(ndr_pull_align(ndr
, 5));
5402 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr
, NDR_SCALARS
, &r
->delta_type
));
5403 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5404 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5405 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5406 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5408 if (ndr_flags
& NDR_BUFFERS
) {
5409 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5410 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5412 return NDR_ERR_SUCCESS
;
5415 _PUBLIC_
void ndr_print_netr_DELTA_ENUM(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM
*r
)
5417 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM");
5419 ndr_print_netr_DeltaEnum(ndr
, "delta_type", r
->delta_type
);
5420 ndr_print_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
);
5421 ndr_print_netr_DELTA_ID_UNION(ndr
, "delta_id_union", &r
->delta_id_union
);
5422 ndr_print_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
);
5423 ndr_print_netr_DELTA_UNION(ndr
, "delta_union", &r
->delta_union
);
5427 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
)
5429 uint32_t cntr_delta_enum_1
;
5430 if (ndr_flags
& NDR_SCALARS
) {
5431 NDR_CHECK(ndr_push_align(ndr
, 5));
5432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5433 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delta_enum
));
5435 if (ndr_flags
& NDR_BUFFERS
) {
5436 if (r
->delta_enum
) {
5437 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->num_deltas
));
5438 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5439 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5441 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5442 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5446 return NDR_ERR_SUCCESS
;
5449 static enum ndr_err_code
ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM_ARRAY
*r
)
5451 uint32_t _ptr_delta_enum
;
5452 uint32_t cntr_delta_enum_1
;
5453 TALLOC_CTX
*_mem_save_delta_enum_0
;
5454 TALLOC_CTX
*_mem_save_delta_enum_1
;
5455 if (ndr_flags
& NDR_SCALARS
) {
5456 NDR_CHECK(ndr_pull_align(ndr
, 5));
5457 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_deltas
));
5458 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum
));
5459 if (_ptr_delta_enum
) {
5460 NDR_PULL_ALLOC(ndr
, r
->delta_enum
);
5462 r
->delta_enum
= NULL
;
5465 if (ndr_flags
& NDR_BUFFERS
) {
5466 if (r
->delta_enum
) {
5467 _mem_save_delta_enum_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5468 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5469 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->delta_enum
));
5470 NDR_PULL_ALLOC_N(ndr
, r
->delta_enum
, ndr_get_array_size(ndr
, &r
->delta_enum
));
5471 _mem_save_delta_enum_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5472 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5473 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5474 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5476 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5477 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5479 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_1
, 0);
5480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_0
, 0);
5482 if (r
->delta_enum
) {
5483 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->delta_enum
, r
->num_deltas
));
5486 return NDR_ERR_SUCCESS
;
5489 _PUBLIC_
void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5491 uint32_t cntr_delta_enum_1
;
5492 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM_ARRAY");
5494 ndr_print_uint32(ndr
, "num_deltas", r
->num_deltas
);
5495 ndr_print_ptr(ndr
, "delta_enum", r
->delta_enum
);
5497 if (r
->delta_enum
) {
5498 ndr
->print(ndr
, "%s: ARRAY(%d)", "delta_enum", (int)r
->num_deltas
);
5500 for (cntr_delta_enum_1
=0;cntr_delta_enum_1
<r
->num_deltas
;cntr_delta_enum_1
++) {
5502 if (asprintf(&idx_1
, "[%d]", cntr_delta_enum_1
) != -1) {
5503 ndr_print_netr_DELTA_ENUM(ndr
, "delta_enum", &r
->delta_enum
[cntr_delta_enum_1
]);
5513 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
)
5516 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5517 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5518 if (ndr_flags
& NDR_SCALARS
) {
5519 NDR_CHECK(ndr_push_align(ndr
, 4));
5520 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timecreated
));
5522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number
));
5524 if (ndr_flags
& NDR_BUFFERS
) {
5526 ndr
->flags
= _flags_save_STRUCT
;
5528 return NDR_ERR_SUCCESS
;
5531 static enum ndr_err_code
ndr_pull_netr_UAS_INFO_0(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UAS_INFO_0
*r
)
5534 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5535 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5536 if (ndr_flags
& NDR_SCALARS
) {
5537 NDR_CHECK(ndr_pull_align(ndr
, 4));
5538 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timecreated
));
5540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number
));
5542 if (ndr_flags
& NDR_BUFFERS
) {
5544 ndr
->flags
= _flags_save_STRUCT
;
5546 return NDR_ERR_SUCCESS
;
5549 _PUBLIC_
void ndr_print_netr_UAS_INFO_0(struct ndr_print
*ndr
, const char *name
, const struct netr_UAS_INFO_0
*r
)
5551 ndr_print_struct(ndr
, name
, "netr_UAS_INFO_0");
5553 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5554 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5556 ndr_print_array_uint8(ndr
, "computer_name", r
->computer_name
, 16);
5557 ndr_print_uint32(ndr
, "timecreated", r
->timecreated
);
5558 ndr_print_uint32(ndr
, "serial_number", r
->serial_number
);
5560 ndr
->flags
= _flags_save_STRUCT
;
5564 static enum ndr_err_code
ndr_push_netr_AccountBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AccountBuffer
*r
)
5566 if (ndr_flags
& NDR_SCALARS
) {
5567 NDR_CHECK(ndr_push_align(ndr
, 4));
5569 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5571 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
5572 ndr
->flags
= _flags_save_DATA_BLOB
;
5575 if (ndr_flags
& NDR_BUFFERS
) {
5577 return NDR_ERR_SUCCESS
;
5580 static enum ndr_err_code
ndr_pull_netr_AccountBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AccountBuffer
*r
)
5582 if (ndr_flags
& NDR_SCALARS
) {
5583 NDR_CHECK(ndr_pull_align(ndr
, 4));
5585 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5587 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->blob
));
5588 ndr
->flags
= _flags_save_DATA_BLOB
;
5591 if (ndr_flags
& NDR_BUFFERS
) {
5593 return NDR_ERR_SUCCESS
;
5596 _PUBLIC_
void ndr_print_netr_AccountBuffer(struct ndr_print
*ndr
, const char *name
, const struct netr_AccountBuffer
*r
)
5598 ndr_print_struct(ndr
, name
, "netr_AccountBuffer");
5600 ndr_print_DATA_BLOB(ndr
, "blob", r
->blob
);
5604 static enum ndr_err_code
ndr_push_netr_InfoFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
5606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5607 return NDR_ERR_SUCCESS
;
5610 static enum ndr_err_code
ndr_pull_netr_InfoFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
5613 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5615 return NDR_ERR_SUCCESS
;
5618 _PUBLIC_
void ndr_print_netr_InfoFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
5620 ndr_print_uint32(ndr
, name
, r
);
5622 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REPLICATION_NEEDED", NETLOGON_REPLICATION_NEEDED
, r
);
5623 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REPLICATION_IN_PROGRESS", NETLOGON_REPLICATION_IN_PROGRESS
, r
);
5624 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_FULL_SYNC_REPLICATION", NETLOGON_FULL_SYNC_REPLICATION
, r
);
5625 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_REDO_NEEDED", NETLOGON_REDO_NEEDED
, r
);
5626 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_HAS_IP", NETLOGON_HAS_IP
, r
);
5627 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_HAS_TIMESERV", NETLOGON_HAS_TIMESERV
, r
);
5628 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_DNS_UPDATE_FAILURE", NETLOGON_DNS_UPDATE_FAILURE
, r
);
5629 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_VERIFY_STATUS_RETURNED", NETLOGON_VERIFY_STATUS_RETURNED
, r
);
5633 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
)
5635 if (ndr_flags
& NDR_SCALARS
) {
5636 NDR_CHECK(ndr_push_align(ndr
, 4));
5637 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5638 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5640 if (ndr_flags
& NDR_BUFFERS
) {
5642 return NDR_ERR_SUCCESS
;
5645 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5647 if (ndr_flags
& NDR_SCALARS
) {
5648 NDR_CHECK(ndr_pull_align(ndr
, 4));
5649 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5650 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5652 if (ndr_flags
& NDR_BUFFERS
) {
5654 return NDR_ERR_SUCCESS
;
5657 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5659 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5661 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5662 ndr_print_WERROR(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5666 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
)
5668 if (ndr_flags
& NDR_SCALARS
) {
5669 NDR_CHECK(ndr_push_align(ndr
, 5));
5670 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5671 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5672 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5673 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5675 if (ndr_flags
& NDR_BUFFERS
) {
5676 if (r
->trusted_dc_name
) {
5677 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5678 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5679 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5680 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
));
5683 return NDR_ERR_SUCCESS
;
5686 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5688 uint32_t _ptr_trusted_dc_name
;
5689 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5690 if (ndr_flags
& NDR_SCALARS
) {
5691 NDR_CHECK(ndr_pull_align(ndr
, 5));
5692 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5693 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5694 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5695 if (_ptr_trusted_dc_name
) {
5696 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5698 r
->trusted_dc_name
= NULL
;
5700 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5702 if (ndr_flags
& NDR_BUFFERS
) {
5703 if (r
->trusted_dc_name
) {
5704 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5705 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5706 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5707 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5708 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5709 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
));
5711 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5712 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
));
5713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5716 return NDR_ERR_SUCCESS
;
5719 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5721 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5723 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5724 ndr_print_WERROR(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5725 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5727 if (r
->trusted_dc_name
) {
5728 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5731 ndr_print_WERROR(ndr
, "tc_connection_status", r
->tc_connection_status
);
5735 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
)
5737 if (ndr_flags
& NDR_SCALARS
) {
5738 NDR_CHECK(ndr_push_align(ndr
, 4));
5739 NDR_CHECK(ndr_push_netr_InfoFlags(ndr
, NDR_SCALARS
, r
->flags
));
5740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5747 if (ndr_flags
& NDR_BUFFERS
) {
5749 return NDR_ERR_SUCCESS
;
5752 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5754 if (ndr_flags
& NDR_SCALARS
) {
5755 NDR_CHECK(ndr_pull_align(ndr
, 4));
5756 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5757 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5758 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5759 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5760 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5761 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5764 if (ndr_flags
& NDR_BUFFERS
) {
5766 return NDR_ERR_SUCCESS
;
5769 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5771 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5773 ndr_print_netr_InfoFlags(ndr
, "flags", r
->flags
);
5774 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5775 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5776 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5777 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5778 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5779 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5783 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
)
5785 if (ndr_flags
& NDR_SCALARS
) {
5786 NDR_CHECK(ndr_push_align(ndr
, 5));
5787 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_dc_name
));
5788 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain_name
));
5790 if (ndr_flags
& NDR_BUFFERS
) {
5791 if (r
->trusted_dc_name
) {
5792 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5793 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5794 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5795 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
));
5797 if (r
->trusted_domain_name
) {
5798 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5799 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5800 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_domain_name
, CH_UTF16
)));
5801 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
));
5804 return NDR_ERR_SUCCESS
;
5807 static enum ndr_err_code
ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_4
*r
)
5809 uint32_t _ptr_trusted_dc_name
;
5810 TALLOC_CTX
*_mem_save_trusted_dc_name_0
;
5811 uint32_t _ptr_trusted_domain_name
;
5812 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
5813 if (ndr_flags
& NDR_SCALARS
) {
5814 NDR_CHECK(ndr_pull_align(ndr
, 5));
5815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_dc_name
));
5816 if (_ptr_trusted_dc_name
) {
5817 NDR_PULL_ALLOC(ndr
, r
->trusted_dc_name
);
5819 r
->trusted_dc_name
= NULL
;
5821 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
5822 if (_ptr_trusted_domain_name
) {
5823 NDR_PULL_ALLOC(ndr
, r
->trusted_domain_name
);
5825 r
->trusted_domain_name
= NULL
;
5828 if (ndr_flags
& NDR_BUFFERS
) {
5829 if (r
->trusted_dc_name
) {
5830 _mem_save_trusted_dc_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5831 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_dc_name
, 0);
5832 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5833 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5834 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5835 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
));
5837 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5838 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
));
5839 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_dc_name_0
, 0);
5841 if (r
->trusted_domain_name
) {
5842 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5843 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain_name
, 0);
5844 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domain_name
));
5845 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_domain_name
));
5846 if (ndr_get_array_length(ndr
, &r
->trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->trusted_domain_name
)) {
5847 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
));
5849 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_domain_name
), sizeof(uint16_t)));
5850 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
));
5851 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
5854 return NDR_ERR_SUCCESS
;
5857 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_4
*r
)
5859 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_4");
5861 ndr_print_ptr(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5863 if (r
->trusted_dc_name
) {
5864 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5867 ndr_print_ptr(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5869 if (r
->trusted_domain_name
) {
5870 ndr_print_string(ndr
, "trusted_domain_name", r
->trusted_domain_name
);
5876 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
)
5878 if (ndr_flags
& NDR_SCALARS
) {
5879 int level
= ndr_push_get_switch_value(ndr
, r
);
5880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5881 NDR_CHECK(ndr_push_union_align(ndr
, 5));
5884 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5888 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5892 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5896 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5904 if (ndr_flags
& NDR_BUFFERS
) {
5905 int level
= ndr_push_get_switch_value(ndr
, r
);
5909 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5915 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5921 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5927 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5936 return NDR_ERR_SUCCESS
;
5939 static enum ndr_err_code
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5943 TALLOC_CTX
*_mem_save_info1_0
;
5944 TALLOC_CTX
*_mem_save_info2_0
;
5945 TALLOC_CTX
*_mem_save_info3_0
;
5946 TALLOC_CTX
*_mem_save_info4_0
;
5947 level
= ndr_pull_get_switch_value(ndr
, r
);
5948 if (ndr_flags
& NDR_SCALARS
) {
5949 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5950 if (_level
!= level
) {
5951 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5953 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
5956 uint32_t _ptr_info1
;
5957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5959 NDR_PULL_ALLOC(ndr
, r
->info1
);
5966 uint32_t _ptr_info2
;
5967 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5969 NDR_PULL_ALLOC(ndr
, r
->info2
);
5976 uint32_t _ptr_info3
;
5977 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5979 NDR_PULL_ALLOC(ndr
, r
->info3
);
5986 uint32_t _ptr_info4
;
5987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5989 NDR_PULL_ALLOC(ndr
, r
->info4
);
6000 if (ndr_flags
& NDR_BUFFERS
) {
6004 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6005 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
6006 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
6007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6013 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6014 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6015 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6022 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6023 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6024 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
6025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6031 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6032 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6033 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6043 return NDR_ERR_SUCCESS
;
6046 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
6049 level
= ndr_print_get_switch_value(ndr
, r
);
6050 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
6053 ndr_print_ptr(ndr
, "info1", r
->info1
);
6056 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
6062 ndr_print_ptr(ndr
, "info2", r
->info2
);
6065 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
6071 ndr_print_ptr(ndr
, "info3", r
->info3
);
6074 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
6080 ndr_print_ptr(ndr
, "info4", r
->info4
);
6083 ndr_print_netr_NETLOGON_INFO_4(ndr
, "info4", r
->info4
);
6094 static enum ndr_err_code
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
6096 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6097 return NDR_ERR_SUCCESS
;
6100 static enum ndr_err_code
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
6103 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6105 return NDR_ERR_SUCCESS
;
6108 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
6110 const char *val
= NULL
;
6113 case NETLOGON_CONTROL_QUERY
: val
= "NETLOGON_CONTROL_QUERY"; break;
6114 case NETLOGON_CONTROL_REPLICATE
: val
= "NETLOGON_CONTROL_REPLICATE"; break;
6115 case NETLOGON_CONTROL_SYNCHRONIZE
: val
= "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6116 case NETLOGON_CONTROL_PDC_REPLICATE
: val
= "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6117 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
6118 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
6119 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6120 case NETLOGON_CONTROL_FIND_USER
: val
= "NETLOGON_CONTROL_FIND_USER"; break;
6121 case NETLOGON_CONTROL_CHANGE_PASSWORD
: val
= "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6122 case NETLOGON_CONTROL_TC_VERIFY
: val
= "NETLOGON_CONTROL_TC_VERIFY"; break;
6123 case NETLOGON_CONTROL_FORCE_DNS_REG
: val
= "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6124 case NETLOGON_CONTROL_QUERY_DNS_REG
: val
= "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6125 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG
: val
= "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6126 case NETLOGON_CONTROL_TRUNCATE_LOG
: val
= "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6127 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
6128 case NETLOGON_CONTROL_BREAKPOINT
: val
= "NETLOGON_CONTROL_BREAKPOINT"; break;
6130 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6133 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
)
6135 if (ndr_flags
& NDR_SCALARS
) {
6136 int level
= ndr_push_get_switch_value(ndr
, r
);
6137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6138 NDR_CHECK(ndr_push_union_align(ndr
, 5));
6140 case NETLOGON_CONTROL_REDISCOVER
: {
6141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6144 case NETLOGON_CONTROL_TC_QUERY
: {
6145 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6148 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6149 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6152 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6153 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6156 case NETLOGON_CONTROL_TC_VERIFY
: {
6157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
6160 case NETLOGON_CONTROL_FIND_USER
: {
6161 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
6164 case NETLOGON_CONTROL_SET_DBFLAG
: {
6165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
6173 if (ndr_flags
& NDR_BUFFERS
) {
6174 int level
= ndr_push_get_switch_value(ndr
, r
);
6176 case NETLOGON_CONTROL_REDISCOVER
:
6178 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6179 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6180 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6181 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6185 case NETLOGON_CONTROL_TC_QUERY
:
6187 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6188 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6189 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6190 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6194 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6196 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6197 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6198 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6199 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6203 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6205 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6206 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6207 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6208 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6212 case NETLOGON_CONTROL_TC_VERIFY
:
6214 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6215 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6216 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
6217 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6221 case NETLOGON_CONTROL_FIND_USER
:
6223 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6224 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6225 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
6226 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6230 case NETLOGON_CONTROL_SET_DBFLAG
:
6238 return NDR_ERR_SUCCESS
;
6241 static enum ndr_err_code
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
6245 TALLOC_CTX
*_mem_save_domain_0
;
6246 TALLOC_CTX
*_mem_save_user_0
;
6247 level
= ndr_pull_get_switch_value(ndr
, r
);
6248 if (ndr_flags
& NDR_SCALARS
) {
6249 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6250 if (_level
!= level
) {
6251 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6253 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
6255 case NETLOGON_CONTROL_REDISCOVER
: {
6256 uint32_t _ptr_domain
;
6257 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6259 NDR_PULL_ALLOC(ndr
, r
->domain
);
6265 case NETLOGON_CONTROL_TC_QUERY
: {
6266 uint32_t _ptr_domain
;
6267 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6269 NDR_PULL_ALLOC(ndr
, r
->domain
);
6275 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
6276 uint32_t _ptr_domain
;
6277 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6279 NDR_PULL_ALLOC(ndr
, r
->domain
);
6285 case NETLOGON_CONTROL_CHANGE_PASSWORD
: {
6286 uint32_t _ptr_domain
;
6287 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6289 NDR_PULL_ALLOC(ndr
, r
->domain
);
6295 case NETLOGON_CONTROL_TC_VERIFY
: {
6296 uint32_t _ptr_domain
;
6297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
6299 NDR_PULL_ALLOC(ndr
, r
->domain
);
6305 case NETLOGON_CONTROL_FIND_USER
: {
6307 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
6309 NDR_PULL_ALLOC(ndr
, r
->user
);
6315 case NETLOGON_CONTROL_SET_DBFLAG
: {
6316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
6324 if (ndr_flags
& NDR_BUFFERS
) {
6326 case NETLOGON_CONTROL_REDISCOVER
:
6328 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6329 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6330 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6331 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6332 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6333 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
));
6335 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6336 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6337 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6341 case NETLOGON_CONTROL_TC_QUERY
:
6343 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6344 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6345 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6346 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6347 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6348 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
));
6350 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6351 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6356 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6358 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6359 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6360 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6361 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6362 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6363 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
));
6365 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6366 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6371 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6373 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6374 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6375 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6376 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6377 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6378 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
));
6380 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6381 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6386 case NETLOGON_CONTROL_TC_VERIFY
:
6388 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6389 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
6390 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
6391 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
6392 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
6393 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
));
6395 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
6396 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
6397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
6401 case NETLOGON_CONTROL_FIND_USER
:
6403 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6404 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
6405 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
6406 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
6407 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
6408 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
));
6410 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
6411 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
6412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
6416 case NETLOGON_CONTROL_SET_DBFLAG
:
6424 return NDR_ERR_SUCCESS
;
6427 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
6430 level
= ndr_print_get_switch_value(ndr
, r
);
6431 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
6433 case NETLOGON_CONTROL_REDISCOVER
:
6434 ndr_print_ptr(ndr
, "domain", r
->domain
);
6437 ndr_print_string(ndr
, "domain", r
->domain
);
6442 case NETLOGON_CONTROL_TC_QUERY
:
6443 ndr_print_ptr(ndr
, "domain", r
->domain
);
6446 ndr_print_string(ndr
, "domain", r
->domain
);
6451 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
6452 ndr_print_ptr(ndr
, "domain", r
->domain
);
6455 ndr_print_string(ndr
, "domain", r
->domain
);
6460 case NETLOGON_CONTROL_CHANGE_PASSWORD
:
6461 ndr_print_ptr(ndr
, "domain", r
->domain
);
6464 ndr_print_string(ndr
, "domain", r
->domain
);
6469 case NETLOGON_CONTROL_TC_VERIFY
:
6470 ndr_print_ptr(ndr
, "domain", r
->domain
);
6473 ndr_print_string(ndr
, "domain", r
->domain
);
6478 case NETLOGON_CONTROL_FIND_USER
:
6479 ndr_print_ptr(ndr
, "user", r
->user
);
6482 ndr_print_string(ndr
, "user", r
->user
);
6487 case NETLOGON_CONTROL_SET_DBFLAG
:
6488 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
6497 _PUBLIC_
enum ndr_err_code
ndr_push_netr_NegotiateFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6500 return NDR_ERR_SUCCESS
;
6503 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_NegotiateFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6508 return NDR_ERR_SUCCESS
;
6511 _PUBLIC_
void ndr_print_netr_NegotiateFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6513 ndr_print_uint32(ndr
, name
, r
);
6515 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT
, r
);
6516 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL
, r
);
6517 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR
, r
);
6518 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT
, r
);
6519 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC
, r
);
6520 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL
, r
);
6521 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS
, r
);
6522 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO
, r
);
6523 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL
, r
);
6524 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC
, r
);
6525 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH
, r
);
6526 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC
, r
);
6527 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL
, r
);
6528 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL
, r
);
6529 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS
, r
);
6530 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS
, r
);
6531 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS
, r
);
6532 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2
, r
);
6533 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO
, r
);
6534 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS
, r
);
6535 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION
, r
);
6536 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH
, r
);
6537 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2
, r
);
6538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES", NETLOGON_NEG_SUPPORTS_AES
, r
);
6539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS
, r
);
6540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC
, r
);
6544 static enum ndr_err_code
ndr_push_SyncStateEnum(struct ndr_push
*ndr
, int ndr_flags
, enum SyncStateEnum r
)
6546 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
6547 return NDR_ERR_SUCCESS
;
6550 static enum ndr_err_code
ndr_pull_SyncStateEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum SyncStateEnum
*r
)
6553 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
6555 return NDR_ERR_SUCCESS
;
6558 _PUBLIC_
void ndr_print_SyncStateEnum(struct ndr_print
*ndr
, const char *name
, enum SyncStateEnum r
)
6560 const char *val
= NULL
;
6563 case SYNCSTATE_NORMAL_STATE
: val
= "SYNCSTATE_NORMAL_STATE"; break;
6564 case SYNCSTATE_DOMAIN_STATE
: val
= "SYNCSTATE_DOMAIN_STATE"; break;
6565 case SYNCSTATE_GROUP_STATE
: val
= "SYNCSTATE_GROUP_STATE"; break;
6566 case SYNCSTATE_UAS_BUILT_IN_GROUP_STATE
: val
= "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE"; break;
6567 case SYNCSTATE_USER_STATE
: val
= "SYNCSTATE_USER_STATE"; break;
6568 case SYNCSTATE_GROUP_MEMBER_STATE
: val
= "SYNCSTATE_GROUP_MEMBER_STATE"; break;
6569 case SYNCSTATE_ALIAS_STATE
: val
= "SYNCSTATE_ALIAS_STATE"; break;
6570 case SYNCSTATE_ALIAS_MEMBER_STATE
: val
= "SYNCSTATE_ALIAS_MEMBER_STATE"; break;
6571 case SYNCSTATE_SAM_DONE_STATE
: val
= "SYNCSTATE_SAM_DONE_STATE"; break;
6573 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6576 static enum ndr_err_code
ndr_push_netr_ChangeLogFlags(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
6578 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
6579 return NDR_ERR_SUCCESS
;
6582 static enum ndr_err_code
ndr_pull_netr_ChangeLogFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
6585 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
6587 return NDR_ERR_SUCCESS
;
6590 _PUBLIC_
void ndr_print_netr_ChangeLogFlags(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
6592 ndr_print_uint16(ndr
, name
, r
);
6594 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED
, r
);
6595 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD
, r
);
6596 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED
, r
);
6597 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED
, r
);
6598 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ
, r
);
6602 static enum ndr_err_code
ndr_push_netr_ChangeLogObject(struct ndr_push
*ndr
, int ndr_flags
, const union netr_ChangeLogObject
*r
)
6604 if (ndr_flags
& NDR_SCALARS
) {
6605 int level
= ndr_push_get_switch_value(ndr
, r
);
6606 NDR_CHECK(ndr_push_union_align(ndr
, 4));
6608 case NETR_CHANGELOG_SID_INCLUDED
: {
6609 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6612 case NETR_CHANGELOG_NAME_INCLUDED
: {
6614 uint32_t _flags_save_string
= ndr
->flags
;
6615 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6616 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->object_name
));
6617 ndr
->flags
= _flags_save_string
;
6626 if (ndr_flags
& NDR_BUFFERS
) {
6627 int level
= ndr_push_get_switch_value(ndr
, r
);
6629 case NETR_CHANGELOG_SID_INCLUDED
:
6632 case NETR_CHANGELOG_NAME_INCLUDED
:
6640 return NDR_ERR_SUCCESS
;
6643 static enum ndr_err_code
ndr_pull_netr_ChangeLogObject(struct ndr_pull
*ndr
, int ndr_flags
, union netr_ChangeLogObject
*r
)
6646 level
= ndr_pull_get_switch_value(ndr
, r
);
6647 if (ndr_flags
& NDR_SCALARS
) {
6648 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
6650 case NETR_CHANGELOG_SID_INCLUDED
: {
6651 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_SCALARS
, &r
->object_sid
));
6654 case NETR_CHANGELOG_NAME_INCLUDED
: {
6656 uint32_t _flags_save_string
= ndr
->flags
;
6657 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6658 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->object_name
));
6659 ndr
->flags
= _flags_save_string
;
6668 if (ndr_flags
& NDR_BUFFERS
) {
6670 case NETR_CHANGELOG_SID_INCLUDED
:
6673 case NETR_CHANGELOG_NAME_INCLUDED
:
6681 return NDR_ERR_SUCCESS
;
6684 _PUBLIC_
void ndr_print_netr_ChangeLogObject(struct ndr_print
*ndr
, const char *name
, const union netr_ChangeLogObject
*r
)
6687 level
= ndr_print_get_switch_value(ndr
, r
);
6688 ndr_print_union(ndr
, name
, level
, "netr_ChangeLogObject");
6690 case NETR_CHANGELOG_SID_INCLUDED
:
6691 ndr_print_dom_sid(ndr
, "object_sid", &r
->object_sid
);
6694 case NETR_CHANGELOG_NAME_INCLUDED
:
6695 ndr_print_string(ndr
, "object_name", r
->object_name
);
6704 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ChangeLogEntry(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChangeLogEntry
*r
)
6706 if (ndr_flags
& NDR_SCALARS
) {
6707 NDR_CHECK(ndr_push_align(ndr
, 4));
6708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number1
));
6709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number2
));
6710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_rid
));
6711 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, r
->flags
));
6712 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, r
->db_index
));
6713 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, r
->delta_type
));
6714 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6715 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6717 if (ndr_flags
& NDR_BUFFERS
) {
6718 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6720 return NDR_ERR_SUCCESS
;
6723 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ChangeLogEntry(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChangeLogEntry
*r
)
6725 if (ndr_flags
& NDR_SCALARS
) {
6726 NDR_CHECK(ndr_pull_align(ndr
, 4));
6727 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number1
));
6728 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number2
));
6729 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_rid
));
6730 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6731 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr
, NDR_SCALARS
, &r
->db_index
));
6732 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr
, NDR_SCALARS
, &r
->delta_type
));
6733 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
)));
6734 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_SCALARS
, &r
->object
));
6736 if (ndr_flags
& NDR_BUFFERS
) {
6737 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr
, NDR_BUFFERS
, &r
->object
));
6739 return NDR_ERR_SUCCESS
;
6742 _PUBLIC_
void ndr_print_netr_ChangeLogEntry(struct ndr_print
*ndr
, const char *name
, const struct netr_ChangeLogEntry
*r
)
6744 ndr_print_struct(ndr
, name
, "netr_ChangeLogEntry");
6746 ndr_print_uint32(ndr
, "serial_number1", r
->serial_number1
);
6747 ndr_print_uint32(ndr
, "serial_number2", r
->serial_number2
);
6748 ndr_print_uint32(ndr
, "object_rid", r
->object_rid
);
6749 ndr_print_netr_ChangeLogFlags(ndr
, "flags", r
->flags
);
6750 ndr_print_netr_SamDatabaseID8Bit(ndr
, "db_index", r
->db_index
);
6751 ndr_print_netr_DeltaEnum8Bit(ndr
, "delta_type", r
->delta_type
);
6752 ndr_print_set_switch_value(ndr
, &r
->object
, r
->flags
& (NETR_CHANGELOG_SID_INCLUDED
| NETR_CHANGELOG_NAME_INCLUDED
));
6753 ndr_print_netr_ChangeLogObject(ndr
, "object", &r
->object
);
6757 _PUBLIC_
size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry
*r
, struct smb_iconv_convenience
*ic
, int flags
)
6759 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_netr_ChangeLogEntry
, ic
);
6762 static enum ndr_err_code
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
6764 if (ndr_flags
& NDR_SCALARS
) {
6765 NDR_CHECK(ndr_push_align(ndr
, 5));
6766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6769 if (ndr_flags
& NDR_BUFFERS
) {
6771 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->length
));
6772 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6775 return NDR_ERR_SUCCESS
;
6778 static enum ndr_err_code
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6781 TALLOC_CTX
*_mem_save_data_0
;
6782 if (ndr_flags
& NDR_SCALARS
) {
6783 NDR_CHECK(ndr_pull_align(ndr
, 5));
6784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6787 NDR_PULL_ALLOC(ndr
, r
->data
);
6792 if (ndr_flags
& NDR_BUFFERS
) {
6794 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6795 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6796 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6797 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6798 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
6799 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6802 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6805 return NDR_ERR_SUCCESS
;
6808 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6810 ndr_print_struct(ndr
, name
, "netr_Blob");
6812 ndr_print_uint32(ndr
, "length", r
->length
);
6813 ndr_print_ptr(ndr
, "data", r
->data
);
6816 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6822 static enum ndr_err_code
ndr_push_netr_DsRGetDCName_flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6825 return NDR_ERR_SUCCESS
;
6828 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6831 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6833 return NDR_ERR_SUCCESS
;
6836 _PUBLIC_
void ndr_print_netr_DsRGetDCName_flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6838 ndr_print_uint32(ndr
, name
, r
);
6840 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY
, r
);
6841 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED
, r
);
6842 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED
, r
);
6843 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED
, r
);
6844 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED
, r
);
6845 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY
, r
);
6846 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED
, r
);
6847 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED
, r
);
6848 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED
, r
);
6849 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED
, r
);
6850 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED
, r
);
6851 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF
, r
);
6852 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED
, r
);
6853 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME
, r
);
6854 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME
, r
);
6855 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE
, r
);
6856 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED
, r
);
6857 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_WEB_SERVICE_REQUIRED", DS_WEB_SERVICE_REQUIRED
, r
);
6858 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME
, r
);
6859 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME
, r
);
6863 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType r
)
6865 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6866 return NDR_ERR_SUCCESS
;
6869 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DsRGetDCNameInfo_AddressType
*r
)
6872 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6874 return NDR_ERR_SUCCESS
;
6877 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print
*ndr
, const char *name
, enum netr_DsRGetDCNameInfo_AddressType r
)
6879 const char *val
= NULL
;
6882 case DS_ADDRESS_TYPE_INET
: val
= "DS_ADDRESS_TYPE_INET"; break;
6883 case DS_ADDRESS_TYPE_NETBIOS
: val
= "DS_ADDRESS_TYPE_NETBIOS"; break;
6885 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6888 static enum ndr_err_code
ndr_push_netr_DsR_DcFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
6890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6891 return NDR_ERR_SUCCESS
;
6894 static enum ndr_err_code
ndr_pull_netr_DsR_DcFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
6897 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6899 return NDR_ERR_SUCCESS
;
6902 _PUBLIC_
void ndr_print_netr_DsR_DcFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
6904 ndr_print_uint32(ndr
, name
, r
);
6906 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC
, r
);
6907 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC
, r
);
6908 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP
, r
);
6909 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS
, r
);
6910 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC
, r
);
6911 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV
, r
);
6912 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST
, r
);
6913 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE
, r
);
6914 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV
, r
);
6915 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC
, r
);
6916 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6
, r
);
6917 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6
, r
);
6918 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER
, r
);
6919 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN
, r
);
6920 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST
, r
);
6924 _PUBLIC_
enum ndr_err_code
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
6926 if (ndr_flags
& NDR_SCALARS
) {
6927 NDR_CHECK(ndr_push_align(ndr
, 5));
6928 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
6929 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
6930 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, r
->dc_address_type
));
6931 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6932 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6933 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
6934 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, r
->dc_flags
));
6935 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
6936 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
6938 if (ndr_flags
& NDR_BUFFERS
) {
6940 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6941 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6942 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
6943 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6945 if (r
->dc_address
) {
6946 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6947 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6948 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
6949 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6951 if (r
->domain_name
) {
6952 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6953 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6954 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6955 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6957 if (r
->forest_name
) {
6958 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6959 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6960 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
6961 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6963 if (r
->dc_site_name
) {
6964 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6965 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6966 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
6967 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
));
6969 if (r
->client_site_name
) {
6970 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6971 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
6973 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
));
6976 return NDR_ERR_SUCCESS
;
6979 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
6981 uint32_t _ptr_dc_unc
;
6982 TALLOC_CTX
*_mem_save_dc_unc_0
;
6983 uint32_t _ptr_dc_address
;
6984 TALLOC_CTX
*_mem_save_dc_address_0
;
6985 uint32_t _ptr_domain_name
;
6986 TALLOC_CTX
*_mem_save_domain_name_0
;
6987 uint32_t _ptr_forest_name
;
6988 TALLOC_CTX
*_mem_save_forest_name_0
;
6989 uint32_t _ptr_dc_site_name
;
6990 TALLOC_CTX
*_mem_save_dc_site_name_0
;
6991 uint32_t _ptr_client_site_name
;
6992 TALLOC_CTX
*_mem_save_client_site_name_0
;
6993 if (ndr_flags
& NDR_SCALARS
) {
6994 NDR_CHECK(ndr_pull_align(ndr
, 5));
6995 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
6997 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
7001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
7002 if (_ptr_dc_address
) {
7003 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
7005 r
->dc_address
= NULL
;
7007 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
7008 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
7009 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
7010 if (_ptr_domain_name
) {
7011 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
7013 r
->domain_name
= NULL
;
7015 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
7016 if (_ptr_forest_name
) {
7017 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
7019 r
->forest_name
= NULL
;
7021 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr
, NDR_SCALARS
, &r
->dc_flags
));
7022 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
7023 if (_ptr_dc_site_name
) {
7024 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
7026 r
->dc_site_name
= NULL
;
7028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
7029 if (_ptr_client_site_name
) {
7030 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
7032 r
->client_site_name
= NULL
;
7035 if (ndr_flags
& NDR_BUFFERS
) {
7037 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7038 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
7039 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
7040 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
7041 if (ndr_get_array_length(ndr
, &r
->dc_unc
) > ndr_get_array_size(ndr
, &r
->dc_unc
)) {
7042 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
));
7044 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t)));
7045 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t), CH_UTF16
));
7046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
7048 if (r
->dc_address
) {
7049 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7050 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
7051 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
7052 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
7053 if (ndr_get_array_length(ndr
, &r
->dc_address
) > ndr_get_array_size(ndr
, &r
->dc_address
)) {
7054 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
));
7056 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t)));
7057 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t), CH_UTF16
));
7058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
7060 if (r
->domain_name
) {
7061 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7062 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
7063 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
7064 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
7065 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
7066 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
));
7068 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
7069 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
7070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
7072 if (r
->forest_name
) {
7073 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7074 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
7075 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
7076 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
7077 if (ndr_get_array_length(ndr
, &r
->forest_name
) > ndr_get_array_size(ndr
, &r
->forest_name
)) {
7078 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
));
7080 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t)));
7081 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t), CH_UTF16
));
7082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
7084 if (r
->dc_site_name
) {
7085 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7086 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
7087 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
7088 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
7089 if (ndr_get_array_length(ndr
, &r
->dc_site_name
) > ndr_get_array_size(ndr
, &r
->dc_site_name
)) {
7090 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
));
7092 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t)));
7093 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
));
7094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
7096 if (r
->client_site_name
) {
7097 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7098 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
7099 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
7100 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
7101 if (ndr_get_array_length(ndr
, &r
->client_site_name
) > ndr_get_array_size(ndr
, &r
->client_site_name
)) {
7102 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
));
7104 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t)));
7105 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
));
7106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
7109 return NDR_ERR_SUCCESS
;
7112 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
7114 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
7116 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
7119 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
7122 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
7124 if (r
->dc_address
) {
7125 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
7128 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr
, "dc_address_type", r
->dc_address_type
);
7129 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
7130 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
7132 if (r
->domain_name
) {
7133 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
7136 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
7138 if (r
->forest_name
) {
7139 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
7142 ndr_print_netr_DsR_DcFlags(ndr
, "dc_flags", r
->dc_flags
);
7143 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
7145 if (r
->dc_site_name
) {
7146 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
7149 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
7151 if (r
->client_site_name
) {
7152 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
7158 static enum ndr_err_code
ndr_push_netr_Capabilities(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Capabilities
*r
)
7160 if (ndr_flags
& NDR_SCALARS
) {
7161 int level
= ndr_push_get_switch_value(ndr
, r
);
7162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7163 NDR_CHECK(ndr_push_union_align(ndr
, 4));
7166 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->server_capabilities
));
7170 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7173 if (ndr_flags
& NDR_BUFFERS
) {
7174 int level
= ndr_push_get_switch_value(ndr
, r
);
7180 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7183 return NDR_ERR_SUCCESS
;
7186 static enum ndr_err_code
ndr_pull_netr_Capabilities(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Capabilities
*r
)
7190 level
= ndr_pull_get_switch_value(ndr
, r
);
7191 if (ndr_flags
& NDR_SCALARS
) {
7192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7193 if (_level
!= level
) {
7194 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7196 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
7199 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->server_capabilities
));
7203 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7206 if (ndr_flags
& NDR_BUFFERS
) {
7212 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7215 return NDR_ERR_SUCCESS
;
7218 _PUBLIC_
void ndr_print_netr_Capabilities(struct ndr_print
*ndr
, const char *name
, const union netr_Capabilities
*r
)
7221 level
= ndr_print_get_switch_value(ndr
, r
);
7222 ndr_print_union(ndr
, name
, level
, "netr_Capabilities");
7225 ndr_print_netr_NegotiateFlags(ndr
, "server_capabilities", r
->server_capabilities
);
7229 ndr_print_bad_level(ndr
, name
, level
);
7233 static enum ndr_err_code
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7236 return NDR_ERR_SUCCESS
;
7239 static enum ndr_err_code
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7242 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7244 return NDR_ERR_SUCCESS
;
7247 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7249 ndr_print_uint32(ndr
, name
, r
);
7251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5
, r
);
7258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES
, r
);
7262 static enum ndr_err_code
ndr_push_netr_WorkstationFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7265 return NDR_ERR_SUCCESS
;
7268 static enum ndr_err_code
ndr_pull_netr_WorkstationFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7271 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7273 return NDR_ERR_SUCCESS
;
7276 _PUBLIC_
void ndr_print_netr_WorkstationFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7278 ndr_print_uint32(ndr
, name
, r
);
7280 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS
, r
);
7281 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE
, r
);
7285 static enum ndr_err_code
ndr_push_netr_SuiteMask(struct ndr_push
*ndr
, int ndr_flags
, uint16_t r
)
7287 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
7288 return NDR_ERR_SUCCESS
;
7291 static enum ndr_err_code
ndr_pull_netr_SuiteMask(struct ndr_pull
*ndr
, int ndr_flags
, uint16_t *r
)
7294 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
7296 return NDR_ERR_SUCCESS
;
7299 _PUBLIC_
void ndr_print_netr_SuiteMask(struct ndr_print
*ndr
, const char *name
, uint16_t r
)
7301 ndr_print_uint16(ndr
, name
, r
);
7303 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE
, r
);
7304 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE
, r
);
7305 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER
, r
);
7306 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER
, r
);
7307 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE
, r
);
7308 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT
, r
);
7309 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL
, r
);
7310 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS
, r
);
7311 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS
, r
);
7312 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED
, r
);
7313 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER
, r
);
7314 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL
, r
);
7315 ndr_print_bitmap_flag(ndr
, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER
, r
);
7319 static enum ndr_err_code
ndr_push_netr_ProductType(struct ndr_push
*ndr
, int ndr_flags
, uint8_t r
)
7321 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
));
7322 return NDR_ERR_SUCCESS
;
7325 static enum ndr_err_code
ndr_pull_netr_ProductType(struct ndr_pull
*ndr
, int ndr_flags
, uint8_t *r
)
7328 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &v
));
7330 return NDR_ERR_SUCCESS
;
7333 _PUBLIC_
void ndr_print_netr_ProductType(struct ndr_print
*ndr
, const char *name
, uint8_t r
)
7335 ndr_print_uint8(ndr
, name
, r
);
7337 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER
, r
);
7338 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER
, r
);
7339 ndr_print_bitmap_flag(ndr
, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION
, r
);
7343 static enum ndr_err_code
ndr_push_netr_LsaPolicyInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LsaPolicyInformation
*r
)
7345 if (ndr_flags
& NDR_SCALARS
) {
7346 NDR_CHECK(ndr_push_align(ndr
, 5));
7347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->policy_size
));
7348 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
7350 if (ndr_flags
& NDR_BUFFERS
) {
7352 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->policy_size
));
7353 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, r
->policy_size
));
7356 return NDR_ERR_SUCCESS
;
7359 static enum ndr_err_code
ndr_pull_netr_LsaPolicyInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LsaPolicyInformation
*r
)
7361 uint32_t _ptr_policy
;
7362 TALLOC_CTX
*_mem_save_policy_0
;
7363 if (ndr_flags
& NDR_SCALARS
) {
7364 NDR_CHECK(ndr_pull_align(ndr
, 5));
7365 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->policy_size
));
7366 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
7368 NDR_PULL_ALLOC(ndr
, r
->policy
);
7373 if (ndr_flags
& NDR_BUFFERS
) {
7375 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7376 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
7377 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->policy
));
7378 NDR_PULL_ALLOC_N(ndr
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
));
7379 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->policy
, ndr_get_array_size(ndr
, &r
->policy
)));
7380 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
7383 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->policy
, r
->policy_size
));
7386 return NDR_ERR_SUCCESS
;
7389 _PUBLIC_
void ndr_print_netr_LsaPolicyInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_LsaPolicyInformation
*r
)
7391 ndr_print_struct(ndr
, name
, "netr_LsaPolicyInformation");
7393 ndr_print_uint32(ndr
, "policy_size", r
->policy_size
);
7394 ndr_print_ptr(ndr
, "policy", r
->policy
);
7397 ndr_print_array_uint8(ndr
, "policy", r
->policy
, r
->policy_size
);
7403 static enum ndr_err_code
ndr_push_netr_OsVersionInfoEx(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionInfoEx
*r
)
7405 if (ndr_flags
& NDR_SCALARS
) {
7406 NDR_CHECK(ndr_push_align(ndr
, 4));
7407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 284));
7408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MajorVersion
));
7409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->MinorVersion
));
7410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->BuildNumber
));
7411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->PlatformId
));
7413 uint32_t _flags_save_string
= ndr
->flags
;
7414 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7416 struct ndr_push
*_ndr_CSDVersion
;
7417 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_CSDVersion
, 0, 256));
7418 NDR_CHECK(ndr_push_string(_ndr_CSDVersion
, NDR_SCALARS
, r
->CSDVersion
));
7419 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_CSDVersion
, 0, 256));
7421 ndr
->flags
= _flags_save_string
;
7423 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMajor
));
7424 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ServicePackMinor
));
7425 NDR_CHECK(ndr_push_netr_SuiteMask(ndr
, NDR_SCALARS
, r
->SuiteMask
));
7426 NDR_CHECK(ndr_push_netr_ProductType(ndr
, NDR_SCALARS
, r
->ProductType
));
7427 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->Reserved
));
7429 if (ndr_flags
& NDR_BUFFERS
) {
7431 return NDR_ERR_SUCCESS
;
7434 static enum ndr_err_code
ndr_pull_netr_OsVersionInfoEx(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionInfoEx
*r
)
7436 if (ndr_flags
& NDR_SCALARS
) {
7437 NDR_CHECK(ndr_pull_align(ndr
, 4));
7438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->OSVersionInfoSize
));
7439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MajorVersion
));
7440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->MinorVersion
));
7441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->BuildNumber
));
7442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->PlatformId
));
7444 uint32_t _flags_save_string
= ndr
->flags
;
7445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7447 struct ndr_pull
*_ndr_CSDVersion
;
7448 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_CSDVersion
, 0, 256));
7449 NDR_CHECK(ndr_pull_string(_ndr_CSDVersion
, NDR_SCALARS
, &r
->CSDVersion
));
7450 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_CSDVersion
, 0, 256));
7452 ndr
->flags
= _flags_save_string
;
7454 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMajor
));
7455 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ServicePackMinor
));
7456 NDR_CHECK(ndr_pull_netr_SuiteMask(ndr
, NDR_SCALARS
, &r
->SuiteMask
));
7457 NDR_CHECK(ndr_pull_netr_ProductType(ndr
, NDR_SCALARS
, &r
->ProductType
));
7458 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->Reserved
));
7460 if (ndr_flags
& NDR_BUFFERS
) {
7462 return NDR_ERR_SUCCESS
;
7465 _PUBLIC_
void ndr_print_netr_OsVersionInfoEx(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionInfoEx
*r
)
7467 ndr_print_struct(ndr
, name
, "netr_OsVersionInfoEx");
7469 ndr_print_uint32(ndr
, "OSVersionInfoSize", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?284:r
->OSVersionInfoSize
);
7470 ndr_print_uint32(ndr
, "MajorVersion", r
->MajorVersion
);
7471 ndr_print_uint32(ndr
, "MinorVersion", r
->MinorVersion
);
7472 ndr_print_uint32(ndr
, "BuildNumber", r
->BuildNumber
);
7473 ndr_print_uint32(ndr
, "PlatformId", r
->PlatformId
);
7474 ndr_print_string(ndr
, "CSDVersion", r
->CSDVersion
);
7475 ndr_print_uint16(ndr
, "ServicePackMajor", r
->ServicePackMajor
);
7476 ndr_print_uint16(ndr
, "ServicePackMinor", r
->ServicePackMinor
);
7477 ndr_print_netr_SuiteMask(ndr
, "SuiteMask", r
->SuiteMask
);
7478 ndr_print_netr_ProductType(ndr
, "ProductType", r
->ProductType
);
7479 ndr_print_uint8(ndr
, "Reserved", r
->Reserved
);
7483 static enum ndr_err_code
ndr_push_netr_OsVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersion
*r
)
7485 if (ndr_flags
& NDR_SCALARS
) {
7486 NDR_CHECK(ndr_push_align(ndr
, 4));
7487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 142));
7490 NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7492 if (ndr_flags
& NDR_BUFFERS
) {
7494 return NDR_ERR_SUCCESS
;
7497 static enum ndr_err_code
ndr_pull_netr_OsVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersion
*r
)
7499 if (ndr_flags
& NDR_SCALARS
) {
7500 NDR_CHECK(ndr_pull_align(ndr
, 4));
7501 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7502 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7503 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
7504 NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr
, NDR_SCALARS
, &r
->os
));
7506 if (ndr_flags
& NDR_BUFFERS
) {
7508 return NDR_ERR_SUCCESS
;
7511 _PUBLIC_
void ndr_print_netr_OsVersion(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersion
*r
)
7513 ndr_print_struct(ndr
, name
, "netr_OsVersion");
7515 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->length
);
7516 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
7517 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?142:r
->size
);
7518 ndr_print_netr_OsVersionInfoEx(ndr
, "os", &r
->os
);
7522 static enum ndr_err_code
ndr_push_netr_OsVersionContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OsVersionContainer
*r
)
7524 if (ndr_flags
& NDR_SCALARS
) {
7525 NDR_CHECK(ndr_push_align(ndr
, 5));
7526 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7527 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->os
== NULL
?0:284));
7528 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->os
));
7530 if (ndr_flags
& NDR_BUFFERS
) {
7532 NDR_CHECK(ndr_push_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7535 return NDR_ERR_SUCCESS
;
7538 static enum ndr_err_code
ndr_pull_netr_OsVersionContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OsVersionContainer
*r
)
7541 TALLOC_CTX
*_mem_save_os_0
;
7542 if (ndr_flags
& NDR_SCALARS
) {
7543 NDR_CHECK(ndr_pull_align(ndr
, 5));
7544 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
7545 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
7546 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_os
));
7548 NDR_PULL_ALLOC(ndr
, r
->os
);
7553 if (ndr_flags
& NDR_BUFFERS
) {
7555 _mem_save_os_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7556 NDR_PULL_SET_MEM_CTX(ndr
, r
->os
, 0);
7557 NDR_CHECK(ndr_pull_netr_OsVersion(ndr
, NDR_SCALARS
, r
->os
));
7558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_os_0
, 0);
7561 return NDR_ERR_SUCCESS
;
7564 _PUBLIC_
void ndr_print_netr_OsVersionContainer(struct ndr_print
*ndr
, const char *name
, const struct netr_OsVersionContainer
*r
)
7566 ndr_print_struct(ndr
, name
, "netr_OsVersionContainer");
7568 ndr_print_uint16(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->length
);
7569 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->os
== NULL
?0:284:r
->size
);
7570 ndr_print_ptr(ndr
, "os", r
->os
);
7573 ndr_print_netr_OsVersion(ndr
, "os", r
->os
);
7579 static enum ndr_err_code
ndr_push_netr_WorkstationInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_WorkstationInformation
*r
)
7581 if (ndr_flags
& NDR_SCALARS
) {
7582 NDR_CHECK(ndr_push_align(ndr
, 5));
7583 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_hostname
));
7585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
7586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy1
));
7587 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy2
));
7588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy3
));
7589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dummy4
));
7590 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7591 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7592 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7593 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7594 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
7595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
7596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
7597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
7599 if (ndr_flags
& NDR_BUFFERS
) {
7600 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7601 if (r
->dns_hostname
) {
7602 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7603 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7604 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
)));
7605 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_hostname
, ndr_charset_length(r
->dns_hostname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7608 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7609 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7610 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sitename
, CH_UTF16
)));
7611 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sitename
, ndr_charset_length(r
->sitename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7614 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7615 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7616 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy1
, CH_UTF16
)));
7617 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy1
, ndr_charset_length(r
->dummy1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7620 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7621 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7622 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy2
, CH_UTF16
)));
7623 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy2
, ndr_charset_length(r
->dummy2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7626 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7627 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7628 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy3
, CH_UTF16
)));
7629 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy3
, ndr_charset_length(r
->dummy3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7632 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7633 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7634 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dummy4
, CH_UTF16
)));
7635 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dummy4
, ndr_charset_length(r
->dummy4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7637 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7638 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7639 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7640 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7642 return NDR_ERR_SUCCESS
;
7645 static enum ndr_err_code
ndr_pull_netr_WorkstationInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_WorkstationInformation
*r
)
7647 uint32_t _ptr_dns_hostname
;
7648 TALLOC_CTX
*_mem_save_dns_hostname_0
;
7649 uint32_t _ptr_sitename
;
7650 TALLOC_CTX
*_mem_save_sitename_0
;
7651 uint32_t _ptr_dummy1
;
7652 TALLOC_CTX
*_mem_save_dummy1_0
;
7653 uint32_t _ptr_dummy2
;
7654 TALLOC_CTX
*_mem_save_dummy2_0
;
7655 uint32_t _ptr_dummy3
;
7656 TALLOC_CTX
*_mem_save_dummy3_0
;
7657 uint32_t _ptr_dummy4
;
7658 TALLOC_CTX
*_mem_save_dummy4_0
;
7659 if (ndr_flags
& NDR_SCALARS
) {
7660 NDR_CHECK(ndr_pull_align(ndr
, 5));
7661 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
7662 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_hostname
));
7663 if (_ptr_dns_hostname
) {
7664 NDR_PULL_ALLOC(ndr
, r
->dns_hostname
);
7666 r
->dns_hostname
= NULL
;
7668 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
7669 if (_ptr_sitename
) {
7670 NDR_PULL_ALLOC(ndr
, r
->sitename
);
7674 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy1
));
7676 NDR_PULL_ALLOC(ndr
, r
->dummy1
);
7680 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy2
));
7682 NDR_PULL_ALLOC(ndr
, r
->dummy2
);
7686 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy3
));
7688 NDR_PULL_ALLOC(ndr
, r
->dummy3
);
7692 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dummy4
));
7694 NDR_PULL_ALLOC(ndr
, r
->dummy4
);
7698 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_SCALARS
, &r
->os_version
));
7699 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->os_name
));
7700 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
7701 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
7702 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
7703 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
7704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
7705 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
7707 if (ndr_flags
& NDR_BUFFERS
) {
7708 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
7709 if (r
->dns_hostname
) {
7710 _mem_save_dns_hostname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7711 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_hostname
, 0);
7712 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_hostname
));
7713 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_hostname
));
7714 if (ndr_get_array_length(ndr
, &r
->dns_hostname
) > ndr_get_array_size(ndr
, &r
->dns_hostname
)) {
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
->dns_hostname
), ndr_get_array_length(ndr
, &r
->dns_hostname
));
7717 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t)));
7718 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_hostname
, ndr_get_array_length(ndr
, &r
->dns_hostname
), sizeof(uint16_t), CH_UTF16
));
7719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_hostname_0
, 0);
7722 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7723 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
7724 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
7725 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sitename
));
7726 if (ndr_get_array_length(ndr
, &r
->sitename
) > ndr_get_array_size(ndr
, &r
->sitename
)) {
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
->sitename
), ndr_get_array_length(ndr
, &r
->sitename
));
7729 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t)));
7730 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sitename
, ndr_get_array_length(ndr
, &r
->sitename
), sizeof(uint16_t), CH_UTF16
));
7731 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
7734 _mem_save_dummy1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7735 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy1
, 0);
7736 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy1
));
7737 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy1
));
7738 if (ndr_get_array_length(ndr
, &r
->dummy1
) > ndr_get_array_size(ndr
, &r
->dummy1
)) {
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
->dummy1
), ndr_get_array_length(ndr
, &r
->dummy1
));
7741 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t)));
7742 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy1
, ndr_get_array_length(ndr
, &r
->dummy1
), sizeof(uint16_t), CH_UTF16
));
7743 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy1_0
, 0);
7746 _mem_save_dummy2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7747 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy2
, 0);
7748 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy2
));
7749 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy2
));
7750 if (ndr_get_array_length(ndr
, &r
->dummy2
) > ndr_get_array_size(ndr
, &r
->dummy2
)) {
7751 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
));
7753 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t)));
7754 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy2
, ndr_get_array_length(ndr
, &r
->dummy2
), sizeof(uint16_t), CH_UTF16
));
7755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy2_0
, 0);
7758 _mem_save_dummy3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7759 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy3
, 0);
7760 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy3
));
7761 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy3
));
7762 if (ndr_get_array_length(ndr
, &r
->dummy3
) > ndr_get_array_size(ndr
, &r
->dummy3
)) {
7763 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
));
7765 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t)));
7766 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy3
, ndr_get_array_length(ndr
, &r
->dummy3
), sizeof(uint16_t), CH_UTF16
));
7767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy3_0
, 0);
7770 _mem_save_dummy4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7771 NDR_PULL_SET_MEM_CTX(ndr
, r
->dummy4
, 0);
7772 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dummy4
));
7773 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dummy4
));
7774 if (ndr_get_array_length(ndr
, &r
->dummy4
) > ndr_get_array_size(ndr
, &r
->dummy4
)) {
7775 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
));
7777 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t)));
7778 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dummy4
, ndr_get_array_length(ndr
, &r
->dummy4
), sizeof(uint16_t), CH_UTF16
));
7779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dummy4_0
, 0);
7781 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr
, NDR_BUFFERS
, &r
->os_version
));
7782 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->os_name
));
7783 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
7784 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
7786 return NDR_ERR_SUCCESS
;
7789 _PUBLIC_
void ndr_print_netr_WorkstationInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_WorkstationInformation
*r
)
7791 ndr_print_struct(ndr
, name
, "netr_WorkstationInformation");
7793 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
7794 ndr_print_ptr(ndr
, "dns_hostname", r
->dns_hostname
);
7796 if (r
->dns_hostname
) {
7797 ndr_print_string(ndr
, "dns_hostname", r
->dns_hostname
);
7800 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
7803 ndr_print_string(ndr
, "sitename", r
->sitename
);
7806 ndr_print_ptr(ndr
, "dummy1", r
->dummy1
);
7809 ndr_print_string(ndr
, "dummy1", r
->dummy1
);
7812 ndr_print_ptr(ndr
, "dummy2", r
->dummy2
);
7815 ndr_print_string(ndr
, "dummy2", r
->dummy2
);
7818 ndr_print_ptr(ndr
, "dummy3", r
->dummy3
);
7821 ndr_print_string(ndr
, "dummy3", r
->dummy3
);
7824 ndr_print_ptr(ndr
, "dummy4", r
->dummy4
);
7827 ndr_print_string(ndr
, "dummy4", r
->dummy4
);
7830 ndr_print_netr_OsVersionContainer(ndr
, "os_version", &r
->os_version
);
7831 ndr_print_lsa_String(ndr
, "os_name", &r
->os_name
);
7832 ndr_print_lsa_String(ndr
, "dummy_string3", &r
->dummy_string3
);
7833 ndr_print_lsa_String(ndr
, "dummy_string4", &r
->dummy_string4
);
7834 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
7835 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
7836 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
7837 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
7841 static enum ndr_err_code
ndr_push_netr_WorkstationInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_WorkstationInfo
*r
)
7843 if (ndr_flags
& NDR_SCALARS
) {
7844 int level
= ndr_push_get_switch_value(ndr
, r
);
7845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7846 NDR_CHECK(ndr_push_union_align(ndr
, 5));
7849 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_info
));
7853 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
7857 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7860 if (ndr_flags
& NDR_BUFFERS
) {
7861 int level
= ndr_push_get_switch_value(ndr
, r
);
7864 if (r
->workstation_info
) {
7865 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7870 if (r
->lsa_policy_info
) {
7871 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7876 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7879 return NDR_ERR_SUCCESS
;
7882 static enum ndr_err_code
ndr_pull_netr_WorkstationInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_WorkstationInfo
*r
)
7886 TALLOC_CTX
*_mem_save_workstation_info_0
;
7887 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
7888 level
= ndr_pull_get_switch_value(ndr
, r
);
7889 if (ndr_flags
& NDR_SCALARS
) {
7890 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7891 if (_level
!= level
) {
7892 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7894 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
7897 uint32_t _ptr_workstation_info
;
7898 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_info
));
7899 if (_ptr_workstation_info
) {
7900 NDR_PULL_ALLOC(ndr
, r
->workstation_info
);
7902 r
->workstation_info
= NULL
;
7907 uint32_t _ptr_lsa_policy_info
;
7908 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
7909 if (_ptr_lsa_policy_info
) {
7910 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
7912 r
->lsa_policy_info
= NULL
;
7917 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7920 if (ndr_flags
& NDR_BUFFERS
) {
7923 if (r
->workstation_info
) {
7924 _mem_save_workstation_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7925 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_info
, 0);
7926 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->workstation_info
));
7927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_info_0
, 0);
7932 if (r
->lsa_policy_info
) {
7933 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7934 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
7935 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
7936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
7941 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7944 return NDR_ERR_SUCCESS
;
7947 _PUBLIC_
void ndr_print_netr_WorkstationInfo(struct ndr_print
*ndr
, const char *name
, const union netr_WorkstationInfo
*r
)
7950 level
= ndr_print_get_switch_value(ndr
, r
);
7951 ndr_print_union(ndr
, name
, level
, "netr_WorkstationInfo");
7954 ndr_print_ptr(ndr
, "workstation_info", r
->workstation_info
);
7956 if (r
->workstation_info
) {
7957 ndr_print_netr_WorkstationInformation(ndr
, "workstation_info", r
->workstation_info
);
7963 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7965 if (r
->lsa_policy_info
) {
7966 ndr_print_netr_WorkstationInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
7972 ndr_print_bad_level(ndr
, name
, level
);
7976 static enum ndr_err_code
ndr_push_netr_trust_extension(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_trust_extension
*r
)
7978 if (ndr_flags
& NDR_SCALARS
) {
7979 NDR_CHECK(ndr_push_align(ndr
, 4));
7980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 8));
7983 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->flags
));
7984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_type
));
7986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7988 if (ndr_flags
& NDR_BUFFERS
) {
7990 return NDR_ERR_SUCCESS
;
7993 static enum ndr_err_code
ndr_pull_netr_trust_extension(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension
*r
)
7995 if (ndr_flags
& NDR_SCALARS
) {
7996 NDR_CHECK(ndr_pull_align(ndr
, 4));
7997 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7998 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
7999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
8000 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->flags
));
8001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
8002 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_type
));
8003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
8005 if (ndr_flags
& NDR_BUFFERS
) {
8007 return NDR_ERR_SUCCESS
;
8010 _PUBLIC_
void ndr_print_netr_trust_extension(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension
*r
)
8012 ndr_print_struct(ndr
, name
, "netr_trust_extension");
8014 ndr_print_uint32(ndr
, "length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->length
);
8015 ndr_print_uint32(ndr
, "dummy", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->dummy
);
8016 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?8:r
->size
);
8017 ndr_print_netr_TrustFlags(ndr
, "flags", r
->flags
);
8018 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
8019 ndr_print_uint32(ndr
, "trust_type", r
->trust_type
);
8020 ndr_print_uint32(ndr
, "trust_attributes", r
->trust_attributes
);
8024 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
)
8026 if (ndr_flags
& NDR_SCALARS
) {
8027 NDR_CHECK(ndr_push_align(ndr
, 5));
8028 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
8029 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
8030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
8032 if (ndr_flags
& NDR_BUFFERS
) {
8034 NDR_CHECK(ndr_push_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
8037 return NDR_ERR_SUCCESS
;
8040 static enum ndr_err_code
ndr_pull_netr_trust_extension_container(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_trust_extension_container
*r
)
8043 TALLOC_CTX
*_mem_save_info_0
;
8044 if (ndr_flags
& NDR_SCALARS
) {
8045 NDR_CHECK(ndr_pull_align(ndr
, 5));
8046 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
8047 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
8048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
8050 NDR_PULL_ALLOC(ndr
, r
->info
);
8055 if (ndr_flags
& NDR_BUFFERS
) {
8057 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8058 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
8059 NDR_CHECK(ndr_pull_netr_trust_extension(ndr
, NDR_SCALARS
, r
->info
));
8060 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
8063 return NDR_ERR_SUCCESS
;
8066 _PUBLIC_
void ndr_print_netr_trust_extension_container(struct ndr_print
*ndr
, const char *name
, const struct netr_trust_extension_container
*r
)
8068 ndr_print_struct(ndr
, name
, "netr_trust_extension_container");
8070 ndr_print_uint16(ndr
, "length", r
->length
);
8071 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
8072 ndr_print_ptr(ndr
, "info", r
->info
);
8075 ndr_print_netr_trust_extension(ndr
, "info", r
->info
);
8081 static enum ndr_err_code
ndr_push_netr_OneDomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_OneDomainInfo
*r
)
8083 if (ndr_flags
& NDR_SCALARS
) {
8084 NDR_CHECK(ndr_push_align(ndr
, 5));
8085 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domainname
));
8086 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8087 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8088 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8089 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
8090 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8091 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8092 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8093 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long1
));
8095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long2
));
8096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8097 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8099 if (ndr_flags
& NDR_BUFFERS
) {
8100 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domainname
));
8101 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8102 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8103 if (r
->domain_sid
) {
8104 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8106 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8107 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8108 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8109 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8111 return NDR_ERR_SUCCESS
;
8114 static enum ndr_err_code
ndr_pull_netr_OneDomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_OneDomainInfo
*r
)
8116 uint32_t _ptr_domain_sid
;
8117 TALLOC_CTX
*_mem_save_domain_sid_0
;
8118 if (ndr_flags
& NDR_SCALARS
) {
8119 NDR_CHECK(ndr_pull_align(ndr
, 5));
8120 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domainname
));
8121 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dns_domainname
));
8122 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dns_forestname
));
8123 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
8124 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
8125 if (_ptr_domain_sid
) {
8126 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
8128 r
->domain_sid
= NULL
;
8130 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_SCALARS
, &r
->trust_extension
));
8131 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8132 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8133 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long1
));
8135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long2
));
8136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8139 if (ndr_flags
& NDR_BUFFERS
) {
8140 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domainname
));
8141 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dns_domainname
));
8142 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dns_forestname
));
8143 if (r
->domain_sid
) {
8144 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8145 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
8146 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
8147 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
8149 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr
, NDR_BUFFERS
, &r
->trust_extension
));
8150 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8151 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8152 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8154 return NDR_ERR_SUCCESS
;
8157 _PUBLIC_
void ndr_print_netr_OneDomainInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_OneDomainInfo
*r
)
8159 ndr_print_struct(ndr
, name
, "netr_OneDomainInfo");
8161 ndr_print_lsa_StringLarge(ndr
, "domainname", &r
->domainname
);
8162 ndr_print_lsa_StringLarge(ndr
, "dns_domainname", &r
->dns_domainname
);
8163 ndr_print_lsa_StringLarge(ndr
, "dns_forestname", &r
->dns_forestname
);
8164 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
8165 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
8167 if (r
->domain_sid
) {
8168 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
8171 ndr_print_netr_trust_extension_container(ndr
, "trust_extension", &r
->trust_extension
);
8172 ndr_print_lsa_StringLarge(ndr
, "dummy_string2", &r
->dummy_string2
);
8173 ndr_print_lsa_StringLarge(ndr
, "dummy_string3", &r
->dummy_string3
);
8174 ndr_print_lsa_StringLarge(ndr
, "dummy_string4", &r
->dummy_string4
);
8175 ndr_print_uint32(ndr
, "dummy_long1", r
->dummy_long1
);
8176 ndr_print_uint32(ndr
, "dummy_long2", r
->dummy_long2
);
8177 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8178 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8182 _PUBLIC_
enum ndr_err_code
ndr_push_netr_SupportedEncTypes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8185 return NDR_ERR_SUCCESS
;
8188 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_SupportedEncTypes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8193 return NDR_ERR_SUCCESS
;
8196 _PUBLIC_
void ndr_print_netr_SupportedEncTypes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8198 ndr_print_uint32(ndr
, name
, r
);
8200 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_CRC32", ENC_CRC32
, r
);
8201 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_RSA_MD5", ENC_RSA_MD5
, r
);
8202 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_RC4_HMAC_MD5", ENC_RC4_HMAC_MD5
, r
);
8203 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES128", ENC_HMAC_SHA1_96_AES128
, r
);
8204 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES256", ENC_HMAC_SHA1_96_AES256
, r
);
8208 static enum ndr_err_code
ndr_push_netr_DomainInformation(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInformation
*r
)
8210 uint32_t cntr_trusted_domains_1
;
8211 if (ndr_flags
& NDR_SCALARS
) {
8212 NDR_CHECK(ndr_push_align(ndr
, 5));
8213 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8215 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domains
));
8216 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8217 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8218 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8219 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8220 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8221 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr
, NDR_SCALARS
, r
->workstation_flags
));
8222 NDR_CHECK(ndr_push_netr_SupportedEncTypes(ndr
, NDR_SCALARS
, r
->supported_enc_types
));
8223 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long3
));
8224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy_long4
));
8226 if (ndr_flags
& NDR_BUFFERS
) {
8227 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8228 if (r
->trusted_domains
) {
8229 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->trusted_domain_count
));
8230 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8231 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8233 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8234 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8237 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8238 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8239 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8240 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8241 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8243 return NDR_ERR_SUCCESS
;
8246 static enum ndr_err_code
ndr_pull_netr_DomainInformation(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInformation
*r
)
8248 uint32_t _ptr_trusted_domains
;
8249 uint32_t cntr_trusted_domains_1
;
8250 TALLOC_CTX
*_mem_save_trusted_domains_0
;
8251 TALLOC_CTX
*_mem_save_trusted_domains_1
;
8252 if (ndr_flags
& NDR_SCALARS
) {
8253 NDR_CHECK(ndr_pull_align(ndr
, 5));
8254 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->primary_domain
));
8255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->trusted_domain_count
));
8256 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domains
));
8257 if (_ptr_trusted_domains
) {
8258 NDR_PULL_ALLOC(ndr
, r
->trusted_domains
);
8260 r
->trusted_domains
= NULL
;
8262 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
, &r
->lsa_policy
));
8263 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dns_hostname
));
8264 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string2
));
8265 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string3
));
8266 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->dummy_string4
));
8267 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr
, NDR_SCALARS
, &r
->workstation_flags
));
8268 NDR_CHECK(ndr_pull_netr_SupportedEncTypes(ndr
, NDR_SCALARS
, &r
->supported_enc_types
));
8269 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long3
));
8270 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy_long4
));
8272 if (ndr_flags
& NDR_BUFFERS
) {
8273 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->primary_domain
));
8274 if (r
->trusted_domains
) {
8275 _mem_save_trusted_domains_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8276 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8277 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_domains
));
8278 NDR_PULL_ALLOC_N(ndr
, r
->trusted_domains
, ndr_get_array_size(ndr
, &r
->trusted_domains
));
8279 _mem_save_trusted_domains_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8280 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domains
, 0);
8281 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8282 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_SCALARS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8284 for (cntr_trusted_domains_1
= 0; cntr_trusted_domains_1
< r
->trusted_domain_count
; cntr_trusted_domains_1
++) {
8285 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr
, NDR_BUFFERS
, &r
->trusted_domains
[cntr_trusted_domains_1
]));
8287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_1
, 0);
8288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_0
, 0);
8290 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_BUFFERS
, &r
->lsa_policy
));
8291 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dns_hostname
));
8292 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string2
));
8293 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string3
));
8294 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->dummy_string4
));
8295 if (r
->trusted_domains
) {
8296 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusted_domains
, r
->trusted_domain_count
));
8299 return NDR_ERR_SUCCESS
;
8302 _PUBLIC_
void ndr_print_netr_DomainInformation(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInformation
*r
)
8304 uint32_t cntr_trusted_domains_1
;
8305 ndr_print_struct(ndr
, name
, "netr_DomainInformation");
8307 ndr_print_netr_OneDomainInfo(ndr
, "primary_domain", &r
->primary_domain
);
8308 ndr_print_uint32(ndr
, "trusted_domain_count", r
->trusted_domain_count
);
8309 ndr_print_ptr(ndr
, "trusted_domains", r
->trusted_domains
);
8311 if (r
->trusted_domains
) {
8312 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusted_domains", (int)r
->trusted_domain_count
);
8314 for (cntr_trusted_domains_1
=0;cntr_trusted_domains_1
<r
->trusted_domain_count
;cntr_trusted_domains_1
++) {
8316 if (asprintf(&idx_1
, "[%d]", cntr_trusted_domains_1
) != -1) {
8317 ndr_print_netr_OneDomainInfo(ndr
, "trusted_domains", &r
->trusted_domains
[cntr_trusted_domains_1
]);
8324 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy", &r
->lsa_policy
);
8325 ndr_print_lsa_StringLarge(ndr
, "dns_hostname", &r
->dns_hostname
);
8326 ndr_print_lsa_StringLarge(ndr
, "dummy_string2", &r
->dummy_string2
);
8327 ndr_print_lsa_StringLarge(ndr
, "dummy_string3", &r
->dummy_string3
);
8328 ndr_print_lsa_StringLarge(ndr
, "dummy_string4", &r
->dummy_string4
);
8329 ndr_print_netr_WorkstationFlags(ndr
, "workstation_flags", r
->workstation_flags
);
8330 ndr_print_netr_SupportedEncTypes(ndr
, "supported_enc_types", r
->supported_enc_types
);
8331 ndr_print_uint32(ndr
, "dummy_long3", r
->dummy_long3
);
8332 ndr_print_uint32(ndr
, "dummy_long4", r
->dummy_long4
);
8336 static enum ndr_err_code
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
8338 if (ndr_flags
& NDR_SCALARS
) {
8339 int level
= ndr_push_get_switch_value(ndr
, r
);
8340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8341 NDR_CHECK(ndr_push_union_align(ndr
, 5));
8344 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_info
));
8348 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->lsa_policy_info
));
8352 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8355 if (ndr_flags
& NDR_BUFFERS
) {
8356 int level
= ndr_push_get_switch_value(ndr
, r
);
8359 if (r
->domain_info
) {
8360 NDR_CHECK(ndr_push_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8365 if (r
->lsa_policy_info
) {
8366 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8371 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8374 return NDR_ERR_SUCCESS
;
8377 static enum ndr_err_code
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
8381 TALLOC_CTX
*_mem_save_domain_info_0
;
8382 TALLOC_CTX
*_mem_save_lsa_policy_info_0
;
8383 level
= ndr_pull_get_switch_value(ndr
, r
);
8384 if (ndr_flags
& NDR_SCALARS
) {
8385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8386 if (_level
!= level
) {
8387 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8389 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
8392 uint32_t _ptr_domain_info
;
8393 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_info
));
8394 if (_ptr_domain_info
) {
8395 NDR_PULL_ALLOC(ndr
, r
->domain_info
);
8397 r
->domain_info
= NULL
;
8402 uint32_t _ptr_lsa_policy_info
;
8403 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_lsa_policy_info
));
8404 if (_ptr_lsa_policy_info
) {
8405 NDR_PULL_ALLOC(ndr
, r
->lsa_policy_info
);
8407 r
->lsa_policy_info
= NULL
;
8412 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8415 if (ndr_flags
& NDR_BUFFERS
) {
8418 if (r
->domain_info
) {
8419 _mem_save_domain_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8420 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_info
, 0);
8421 NDR_CHECK(ndr_pull_netr_DomainInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_info
));
8422 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_info_0
, 0);
8427 if (r
->lsa_policy_info
) {
8428 _mem_save_lsa_policy_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8429 NDR_PULL_SET_MEM_CTX(ndr
, r
->lsa_policy_info
, 0);
8430 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->lsa_policy_info
));
8431 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_lsa_policy_info_0
, 0);
8436 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8439 return NDR_ERR_SUCCESS
;
8442 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
8445 level
= ndr_print_get_switch_value(ndr
, r
);
8446 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
8449 ndr_print_ptr(ndr
, "domain_info", r
->domain_info
);
8451 if (r
->domain_info
) {
8452 ndr_print_netr_DomainInformation(ndr
, "domain_info", r
->domain_info
);
8458 ndr_print_ptr(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8460 if (r
->lsa_policy_info
) {
8461 ndr_print_netr_LsaPolicyInformation(ndr
, "lsa_policy_info", r
->lsa_policy_info
);
8467 ndr_print_bad_level(ndr
, name
, level
);
8471 static enum ndr_err_code
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CryptPassword
*r
)
8474 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8475 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8476 if (ndr_flags
& NDR_SCALARS
) {
8477 NDR_CHECK(ndr_push_align(ndr
, 4));
8478 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
8481 if (ndr_flags
& NDR_BUFFERS
) {
8483 ndr
->flags
= _flags_save_STRUCT
;
8485 return NDR_ERR_SUCCESS
;
8488 static enum ndr_err_code
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
8491 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8492 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8493 if (ndr_flags
& NDR_SCALARS
) {
8494 NDR_CHECK(ndr_pull_align(ndr
, 4));
8495 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
8496 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
8498 if (ndr_flags
& NDR_BUFFERS
) {
8500 ndr
->flags
= _flags_save_STRUCT
;
8502 return NDR_ERR_SUCCESS
;
8505 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
8507 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
8509 uint32_t _flags_save_STRUCT
= ndr
->flags
;
8510 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
8512 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
8513 ndr_print_uint32(ndr
, "length", r
->length
);
8515 ndr
->flags
= _flags_save_STRUCT
;
8519 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8521 uint32_t cntr_sitename_1
;
8522 if (ndr_flags
& NDR_SCALARS
) {
8523 NDR_CHECK(ndr_push_align(ndr
, 5));
8524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8525 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8527 if (ndr_flags
& NDR_BUFFERS
) {
8529 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
8530 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8531 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8533 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8534 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8538 return NDR_ERR_SUCCESS
;
8541 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesWCtr
*r
)
8543 uint32_t _ptr_sitename
;
8544 uint32_t cntr_sitename_1
;
8545 TALLOC_CTX
*_mem_save_sitename_0
;
8546 TALLOC_CTX
*_mem_save_sitename_1
;
8547 if (ndr_flags
& NDR_SCALARS
) {
8548 NDR_CHECK(ndr_pull_align(ndr
, 5));
8549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8551 if (_ptr_sitename
) {
8552 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8557 if (ndr_flags
& NDR_BUFFERS
) {
8559 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8560 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8561 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
8562 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
8563 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8564 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
8565 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8566 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8568 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8569 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
8572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
8575 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
8578 return NDR_ERR_SUCCESS
;
8581 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesWCtr
*r
)
8583 uint32_t cntr_sitename_1
;
8584 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesWCtr");
8586 ndr_print_uint32(ndr
, "count", r
->count
);
8587 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
8590 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
8592 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
8594 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
8595 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
8605 static enum ndr_err_code
ndr_push_netr_DsRAddress(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddress
*r
)
8607 if (ndr_flags
& NDR_SCALARS
) {
8608 NDR_CHECK(ndr_push_align(ndr
, 5));
8609 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->buffer
));
8610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8612 if (ndr_flags
& NDR_BUFFERS
) {
8614 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
));
8615 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, r
->size
));
8618 return NDR_ERR_SUCCESS
;
8621 static enum ndr_err_code
ndr_pull_netr_DsRAddress(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddress
*r
)
8623 uint32_t _ptr_buffer
;
8624 TALLOC_CTX
*_mem_save_buffer_0
;
8625 if (ndr_flags
& NDR_SCALARS
) {
8626 NDR_CHECK(ndr_pull_align(ndr
, 5));
8627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
8629 NDR_PULL_ALLOC(ndr
, r
->buffer
);
8633 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
8635 if (ndr_flags
& NDR_BUFFERS
) {
8637 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8638 NDR_PULL_SET_MEM_CTX(ndr
, r
->buffer
, 0);
8639 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->buffer
));
8640 NDR_PULL_ALLOC_N(ndr
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
));
8641 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->buffer
, ndr_get_array_size(ndr
, &r
->buffer
)));
8642 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
8645 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->buffer
, r
->size
));
8648 return NDR_ERR_SUCCESS
;
8651 _PUBLIC_
void ndr_print_netr_DsRAddress(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddress
*r
)
8653 ndr_print_struct(ndr
, name
, "netr_DsRAddress");
8655 ndr_print_ptr(ndr
, "buffer", r
->buffer
);
8658 ndr_print_array_uint8(ndr
, "buffer", r
->buffer
, r
->size
);
8661 ndr_print_uint32(ndr
, "size", r
->size
);
8665 static enum ndr_err_code
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
8667 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
8668 return NDR_ERR_SUCCESS
;
8671 static enum ndr_err_code
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
8674 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
8676 return NDR_ERR_SUCCESS
;
8679 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
8681 const char *val
= NULL
;
8684 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8685 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
8686 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
8687 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
8689 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8692 static enum ndr_err_code
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8695 return NDR_ERR_SUCCESS
;
8698 static enum ndr_err_code
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8701 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8703 return NDR_ERR_SUCCESS
;
8706 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8708 ndr_print_uint32(ndr
, name
, r
);
8710 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
8711 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
8712 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
8713 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
8714 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
8715 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
8716 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
8720 static enum ndr_err_code
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
8722 if (ndr_flags
& NDR_SCALARS
) {
8723 NDR_CHECK(ndr_push_align(ndr
, 5));
8724 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
8725 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
8726 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
8727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
8728 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
8729 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
8730 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
8731 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8733 if (ndr_flags
& NDR_BUFFERS
) {
8734 if (r
->netbios_name
) {
8735 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8736 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8737 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
8738 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8741 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8742 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8743 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
8744 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8747 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8750 return NDR_ERR_SUCCESS
;
8753 static enum ndr_err_code
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
8755 uint32_t _ptr_netbios_name
;
8756 TALLOC_CTX
*_mem_save_netbios_name_0
;
8757 uint32_t _ptr_dns_name
;
8758 TALLOC_CTX
*_mem_save_dns_name_0
;
8760 TALLOC_CTX
*_mem_save_sid_0
;
8761 if (ndr_flags
& NDR_SCALARS
) {
8762 NDR_CHECK(ndr_pull_align(ndr
, 5));
8763 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
8764 if (_ptr_netbios_name
) {
8765 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
8767 r
->netbios_name
= NULL
;
8769 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
8770 if (_ptr_dns_name
) {
8771 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
8775 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
8776 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
8777 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
8778 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
8779 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
8781 NDR_PULL_ALLOC(ndr
, r
->sid
);
8785 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8787 if (ndr_flags
& NDR_BUFFERS
) {
8788 if (r
->netbios_name
) {
8789 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8790 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
8791 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
8792 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
8793 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
8794 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
));
8796 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
8797 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
8798 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
8801 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8802 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
8803 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
8804 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
8805 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
8806 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
));
8808 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
8809 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
8810 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
8813 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8814 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
8815 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
8816 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
8819 return NDR_ERR_SUCCESS
;
8822 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
8824 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
8826 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
8828 if (r
->netbios_name
) {
8829 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
8832 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
8835 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
8838 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
8839 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
8840 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
8841 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
8842 ndr_print_ptr(ndr
, "sid", r
->sid
);
8845 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
8848 ndr_print_GUID(ndr
, "guid", &r
->guid
);
8852 static enum ndr_err_code
ndr_push_netr_DomainTrustList(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustList
*r
)
8854 uint32_t cntr_array_1
;
8855 if (ndr_flags
& NDR_SCALARS
) {
8856 NDR_CHECK(ndr_push_align(ndr
, 5));
8857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8858 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
8860 if (ndr_flags
& NDR_BUFFERS
) {
8862 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
8863 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8864 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8866 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8867 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8871 return NDR_ERR_SUCCESS
;
8874 static enum ndr_err_code
ndr_pull_netr_DomainTrustList(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustList
*r
)
8876 uint32_t _ptr_array
;
8877 uint32_t cntr_array_1
;
8878 TALLOC_CTX
*_mem_save_array_0
;
8879 TALLOC_CTX
*_mem_save_array_1
;
8880 if (ndr_flags
& NDR_SCALARS
) {
8881 NDR_CHECK(ndr_pull_align(ndr
, 5));
8882 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
8885 NDR_PULL_ALLOC(ndr
, r
->array
);
8890 if (ndr_flags
& NDR_BUFFERS
) {
8892 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8893 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8894 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
8895 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
8896 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8897 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
8898 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8899 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
8901 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
8902 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
8904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
8905 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
8908 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
8911 return NDR_ERR_SUCCESS
;
8914 _PUBLIC_
void ndr_print_netr_DomainTrustList(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustList
*r
)
8916 uint32_t cntr_array_1
;
8917 ndr_print_struct(ndr
, name
, "netr_DomainTrustList");
8919 ndr_print_uint32(ndr
, "count", r
->count
);
8920 ndr_print_ptr(ndr
, "array", r
->array
);
8923 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
8925 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
8927 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
8928 ndr_print_netr_DomainTrust(ndr
, "array", &r
->array
[cntr_array_1
]);
8938 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
8940 uint32_t cntr_sitename_1
;
8941 uint32_t cntr_subnetname_1
;
8942 if (ndr_flags
& NDR_SCALARS
) {
8943 NDR_CHECK(ndr_push_align(ndr
, 5));
8944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8945 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sitename
));
8946 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->subnetname
));
8948 if (ndr_flags
& NDR_BUFFERS
) {
8950 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
8951 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8952 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
8954 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
8955 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
8958 if (r
->subnetname
) {
8959 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
8960 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8961 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
8963 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
8964 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
8968 return NDR_ERR_SUCCESS
;
8971 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRAddressToSitenamesExWCtr
*r
)
8973 uint32_t _ptr_sitename
;
8974 uint32_t cntr_sitename_1
;
8975 TALLOC_CTX
*_mem_save_sitename_0
;
8976 TALLOC_CTX
*_mem_save_sitename_1
;
8977 uint32_t _ptr_subnetname
;
8978 uint32_t cntr_subnetname_1
;
8979 TALLOC_CTX
*_mem_save_subnetname_0
;
8980 TALLOC_CTX
*_mem_save_subnetname_1
;
8981 if (ndr_flags
& NDR_SCALARS
) {
8982 NDR_CHECK(ndr_pull_align(ndr
, 5));
8983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8984 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sitename
));
8985 if (_ptr_sitename
) {
8986 NDR_PULL_ALLOC(ndr
, r
->sitename
);
8990 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_subnetname
));
8991 if (_ptr_subnetname
) {
8992 NDR_PULL_ALLOC(ndr
, r
->subnetname
);
8994 r
->subnetname
= NULL
;
8997 if (ndr_flags
& NDR_BUFFERS
) {
8999 _mem_save_sitename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9000 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
9001 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sitename
));
9002 NDR_PULL_ALLOC_N(ndr
, r
->sitename
, ndr_get_array_size(ndr
, &r
->sitename
));
9003 _mem_save_sitename_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9004 NDR_PULL_SET_MEM_CTX(ndr
, r
->sitename
, 0);
9005 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
9006 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sitename
[cntr_sitename_1
]));
9008 for (cntr_sitename_1
= 0; cntr_sitename_1
< r
->count
; cntr_sitename_1
++) {
9009 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sitename
[cntr_sitename_1
]));
9011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_1
, 0);
9012 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sitename_0
, 0);
9014 if (r
->subnetname
) {
9015 _mem_save_subnetname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9016 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
9017 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->subnetname
));
9018 NDR_PULL_ALLOC_N(ndr
, r
->subnetname
, ndr_get_array_size(ndr
, &r
->subnetname
));
9019 _mem_save_subnetname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9020 NDR_PULL_SET_MEM_CTX(ndr
, r
->subnetname
, 0);
9021 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
9022 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->subnetname
[cntr_subnetname_1
]));
9024 for (cntr_subnetname_1
= 0; cntr_subnetname_1
< r
->count
; cntr_subnetname_1
++) {
9025 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->subnetname
[cntr_subnetname_1
]));
9027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_1
, 0);
9028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_subnetname_0
, 0);
9031 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sitename
, r
->count
));
9033 if (r
->subnetname
) {
9034 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->subnetname
, r
->count
));
9037 return NDR_ERR_SUCCESS
;
9040 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRAddressToSitenamesExWCtr
*r
)
9042 uint32_t cntr_sitename_1
;
9043 uint32_t cntr_subnetname_1
;
9044 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExWCtr");
9046 ndr_print_uint32(ndr
, "count", r
->count
);
9047 ndr_print_ptr(ndr
, "sitename", r
->sitename
);
9050 ndr
->print(ndr
, "%s: ARRAY(%d)", "sitename", (int)r
->count
);
9052 for (cntr_sitename_1
=0;cntr_sitename_1
<r
->count
;cntr_sitename_1
++) {
9054 if (asprintf(&idx_1
, "[%d]", cntr_sitename_1
) != -1) {
9055 ndr_print_lsa_String(ndr
, "sitename", &r
->sitename
[cntr_sitename_1
]);
9062 ndr_print_ptr(ndr
, "subnetname", r
->subnetname
);
9064 if (r
->subnetname
) {
9065 ndr
->print(ndr
, "%s: ARRAY(%d)", "subnetname", (int)r
->count
);
9067 for (cntr_subnetname_1
=0;cntr_subnetname_1
<r
->count
;cntr_subnetname_1
++) {
9069 if (asprintf(&idx_1
, "[%d]", cntr_subnetname_1
) != -1) {
9070 ndr_print_lsa_String(ndr
, "subnetname", &r
->subnetname
[cntr_subnetname_1
]);
9080 static enum ndr_err_code
ndr_push_DcSitesCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct DcSitesCtr
*r
)
9082 uint32_t cntr_sites_1
;
9083 if (ndr_flags
& NDR_SCALARS
) {
9084 NDR_CHECK(ndr_push_align(ndr
, 5));
9085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sites
));
9086 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sites
));
9088 if (ndr_flags
& NDR_BUFFERS
) {
9090 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->num_sites
));
9091 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9092 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9094 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9095 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9099 return NDR_ERR_SUCCESS
;
9102 static enum ndr_err_code
ndr_pull_DcSitesCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct DcSitesCtr
*r
)
9104 uint32_t _ptr_sites
;
9105 uint32_t cntr_sites_1
;
9106 TALLOC_CTX
*_mem_save_sites_0
;
9107 TALLOC_CTX
*_mem_save_sites_1
;
9108 if (ndr_flags
& NDR_SCALARS
) {
9109 NDR_CHECK(ndr_pull_align(ndr
, 5));
9110 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sites
));
9111 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sites
));
9113 NDR_PULL_ALLOC(ndr
, r
->sites
);
9118 if (ndr_flags
& NDR_BUFFERS
) {
9120 _mem_save_sites_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9121 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9122 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sites
));
9123 NDR_PULL_ALLOC_N(ndr
, r
->sites
, ndr_get_array_size(ndr
, &r
->sites
));
9124 _mem_save_sites_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9125 NDR_PULL_SET_MEM_CTX(ndr
, r
->sites
, 0);
9126 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9127 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->sites
[cntr_sites_1
]));
9129 for (cntr_sites_1
= 0; cntr_sites_1
< r
->num_sites
; cntr_sites_1
++) {
9130 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->sites
[cntr_sites_1
]));
9132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_1
, 0);
9133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sites_0
, 0);
9136 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sites
, r
->num_sites
));
9139 return NDR_ERR_SUCCESS
;
9142 _PUBLIC_
void ndr_print_DcSitesCtr(struct ndr_print
*ndr
, const char *name
, const struct DcSitesCtr
*r
)
9144 uint32_t cntr_sites_1
;
9145 ndr_print_struct(ndr
, name
, "DcSitesCtr");
9147 ndr_print_uint32(ndr
, "num_sites", r
->num_sites
);
9148 ndr_print_ptr(ndr
, "sites", r
->sites
);
9151 ndr
->print(ndr
, "%s: ARRAY(%d)", "sites", (int)r
->num_sites
);
9153 for (cntr_sites_1
=0;cntr_sites_1
<r
->num_sites
;cntr_sites_1
++) {
9155 if (asprintf(&idx_1
, "[%d]", cntr_sites_1
) != -1) {
9156 ndr_print_lsa_String(ndr
, "sites", &r
->sites
[cntr_sites_1
]);
9166 static enum ndr_err_code
ndr_push_netr_TrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_TrustInfo
*r
)
9168 uint32_t cntr_data_1
;
9169 uint32_t cntr_entries_1
;
9170 if (ndr_flags
& NDR_SCALARS
) {
9171 NDR_CHECK(ndr_push_align(ndr
, 5));
9172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9173 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
9174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->entry_count
));
9175 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->entries
));
9177 if (ndr_flags
& NDR_BUFFERS
) {
9179 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
9180 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
9185 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
9186 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9187 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9189 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9190 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9194 return NDR_ERR_SUCCESS
;
9197 static enum ndr_err_code
ndr_pull_netr_TrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_TrustInfo
*r
)
9200 uint32_t cntr_data_1
;
9201 TALLOC_CTX
*_mem_save_data_0
;
9202 TALLOC_CTX
*_mem_save_data_1
;
9203 uint32_t _ptr_entries
;
9204 uint32_t cntr_entries_1
;
9205 TALLOC_CTX
*_mem_save_entries_0
;
9206 TALLOC_CTX
*_mem_save_entries_1
;
9207 if (ndr_flags
& NDR_SCALARS
) {
9208 NDR_CHECK(ndr_pull_align(ndr
, 5));
9209 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9210 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
9212 NDR_PULL_ALLOC(ndr
, r
->data
);
9216 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->entry_count
));
9217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_entries
));
9219 NDR_PULL_ALLOC(ndr
, r
->entries
);
9224 if (ndr_flags
& NDR_BUFFERS
) {
9226 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9227 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9228 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
9229 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
9230 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9231 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
9232 for (cntr_data_1
= 0; cntr_data_1
< r
->count
; cntr_data_1
++) {
9233 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
9235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
9236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
9239 _mem_save_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9240 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9241 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->entries
));
9242 NDR_PULL_ALLOC_N(ndr
, r
->entries
, ndr_get_array_size(ndr
, &r
->entries
));
9243 _mem_save_entries_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9244 NDR_PULL_SET_MEM_CTX(ndr
, r
->entries
, 0);
9245 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9246 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->entries
[cntr_entries_1
]));
9248 for (cntr_entries_1
= 0; cntr_entries_1
< r
->count
; cntr_entries_1
++) {
9249 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->entries
[cntr_entries_1
]));
9251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_1
, 0);
9252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_entries_0
, 0);
9255 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->count
));
9258 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->entries
, r
->count
));
9261 return NDR_ERR_SUCCESS
;
9264 _PUBLIC_
void ndr_print_netr_TrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_TrustInfo
*r
)
9266 uint32_t cntr_data_1
;
9267 uint32_t cntr_entries_1
;
9268 ndr_print_struct(ndr
, name
, "netr_TrustInfo");
9270 ndr_print_uint32(ndr
, "count", r
->count
);
9271 ndr_print_ptr(ndr
, "data", r
->data
);
9274 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", (int)r
->count
);
9276 for (cntr_data_1
=0;cntr_data_1
<r
->count
;cntr_data_1
++) {
9278 if (asprintf(&idx_1
, "[%d]", cntr_data_1
) != -1) {
9279 ndr_print_uint32(ndr
, "data", r
->data
[cntr_data_1
]);
9286 ndr_print_uint32(ndr
, "entry_count", r
->entry_count
);
9287 ndr_print_ptr(ndr
, "entries", r
->entries
);
9290 ndr
->print(ndr
, "%s: ARRAY(%d)", "entries", (int)r
->count
);
9292 for (cntr_entries_1
=0;cntr_entries_1
<r
->count
;cntr_entries_1
++) {
9294 if (asprintf(&idx_1
, "[%d]", cntr_entries_1
) != -1) {
9295 ndr_print_lsa_String(ndr
, "entries", &r
->entries
[cntr_entries_1
]);
9305 static enum ndr_err_code
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
9307 if (flags
& NDR_IN
) {
9308 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9309 if (r
->in
.server_name
) {
9310 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9311 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9312 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9313 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
));
9315 if (r
->in
.account_name
== NULL
) {
9316 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9318 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9319 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9320 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9321 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
));
9322 if (r
->in
.workstation
== NULL
) {
9323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9325 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9326 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9327 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9328 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9330 if (flags
& NDR_OUT
) {
9331 if (r
->out
.info
== NULL
) {
9332 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9334 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
9336 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9338 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9340 return NDR_ERR_SUCCESS
;
9343 static enum ndr_err_code
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
9345 uint32_t _ptr_server_name
;
9347 TALLOC_CTX
*_mem_save_server_name_0
;
9348 TALLOC_CTX
*_mem_save_info_0
;
9349 TALLOC_CTX
*_mem_save_info_1
;
9350 if (flags
& NDR_IN
) {
9351 ZERO_STRUCT(r
->out
);
9353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9354 if (_ptr_server_name
) {
9355 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9357 r
->in
.server_name
= NULL
;
9359 if (r
->in
.server_name
) {
9360 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9361 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9362 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9363 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9364 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9365 return 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
));
9367 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9368 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
));
9369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9371 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9372 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9373 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9374 return 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
));
9376 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9377 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
));
9378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9380 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9381 return 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
));
9383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9385 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9386 ZERO_STRUCTP(r
->out
.info
);
9388 if (flags
& NDR_OUT
) {
9389 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9390 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9392 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9393 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9394 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
9396 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
9398 *r
->out
.info
= NULL
;
9401 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
9402 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
9403 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
9404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
9406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9407 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9409 return NDR_ERR_SUCCESS
;
9412 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
9414 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
9416 if (flags
& NDR_SET_VALUES
) {
9417 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9419 if (flags
& NDR_IN
) {
9420 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
9422 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9424 if (r
->in
.server_name
) {
9425 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9428 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9430 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9432 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9434 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9438 if (flags
& NDR_OUT
) {
9439 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
9441 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9443 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
9446 ndr_print_netr_UasInfo(ndr
, "info", *r
->out
.info
);
9450 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9456 static enum ndr_err_code
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
9458 if (flags
& NDR_IN
) {
9459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9460 if (r
->in
.server_name
) {
9461 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9462 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9463 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9464 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
));
9466 if (r
->in
.account_name
== NULL
) {
9467 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9469 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9470 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9471 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9472 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
));
9473 if (r
->in
.workstation
== NULL
) {
9474 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9476 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9477 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9478 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
9479 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9481 if (flags
& NDR_OUT
) {
9482 if (r
->out
.info
== NULL
) {
9483 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9485 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9486 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9488 return NDR_ERR_SUCCESS
;
9491 static enum ndr_err_code
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
9493 uint32_t _ptr_server_name
;
9494 TALLOC_CTX
*_mem_save_server_name_0
;
9495 TALLOC_CTX
*_mem_save_info_0
;
9496 if (flags
& NDR_IN
) {
9497 ZERO_STRUCT(r
->out
);
9499 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9500 if (_ptr_server_name
) {
9501 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9503 r
->in
.server_name
= NULL
;
9505 if (r
->in
.server_name
) {
9506 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9507 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9508 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9509 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9510 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9511 return 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
));
9513 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9514 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
));
9515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9517 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9518 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9519 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9520 return 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
));
9522 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9523 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
));
9524 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
9525 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
9526 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
9527 return 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
));
9529 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
9530 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
9531 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9532 ZERO_STRUCTP(r
->out
.info
);
9534 if (flags
& NDR_OUT
) {
9535 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9536 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9538 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9539 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9540 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
9541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9542 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9544 return NDR_ERR_SUCCESS
;
9547 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
9549 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
9551 if (flags
& NDR_SET_VALUES
) {
9552 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9554 if (flags
& NDR_IN
) {
9555 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
9557 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9559 if (r
->in
.server_name
) {
9560 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9563 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
9565 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9567 ndr_print_ptr(ndr
, "workstation", r
->in
.workstation
);
9569 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
9573 if (flags
& NDR_OUT
) {
9574 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
9576 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9578 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
9580 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9586 static enum ndr_err_code
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
9588 if (flags
& NDR_IN
) {
9589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9590 if (r
->in
.server_name
) {
9591 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9592 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9593 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9594 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
));
9596 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9597 if (r
->in
.computer_name
) {
9598 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9599 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9600 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9601 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
));
9603 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9604 if (r
->in
.credential
) {
9605 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9608 if (r
->in
.return_authenticator
) {
9609 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9611 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9612 if (r
->in
.logon
== NULL
) {
9613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9615 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9616 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9617 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
9619 if (flags
& NDR_OUT
) {
9620 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9621 if (r
->out
.return_authenticator
) {
9622 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9624 if (r
->out
.validation
== NULL
) {
9625 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9627 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9628 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9629 if (r
->out
.authoritative
== NULL
) {
9630 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
9632 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
9633 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9635 return NDR_ERR_SUCCESS
;
9638 static enum ndr_err_code
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
9640 uint32_t _ptr_server_name
;
9641 uint32_t _ptr_computer_name
;
9642 uint32_t _ptr_credential
;
9643 uint32_t _ptr_return_authenticator
;
9644 TALLOC_CTX
*_mem_save_server_name_0
;
9645 TALLOC_CTX
*_mem_save_computer_name_0
;
9646 TALLOC_CTX
*_mem_save_credential_0
;
9647 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9648 TALLOC_CTX
*_mem_save_logon_0
;
9649 TALLOC_CTX
*_mem_save_validation_0
;
9650 TALLOC_CTX
*_mem_save_authoritative_0
;
9651 if (flags
& NDR_IN
) {
9652 ZERO_STRUCT(r
->out
);
9654 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9655 if (_ptr_server_name
) {
9656 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9658 r
->in
.server_name
= NULL
;
9660 if (r
->in
.server_name
) {
9661 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9662 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9663 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9664 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9665 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9666 return 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
));
9668 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9669 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
));
9670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9672 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9673 if (_ptr_computer_name
) {
9674 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9676 r
->in
.computer_name
= NULL
;
9678 if (r
->in
.computer_name
) {
9679 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9680 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9681 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9682 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9683 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9684 return 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
));
9686 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9687 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
));
9688 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9690 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9691 if (_ptr_credential
) {
9692 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9694 r
->in
.credential
= NULL
;
9696 if (r
->in
.credential
) {
9697 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9698 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9699 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9702 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9703 if (_ptr_return_authenticator
) {
9704 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9706 r
->in
.return_authenticator
= NULL
;
9708 if (r
->in
.return_authenticator
) {
9709 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9710 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9711 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9714 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9715 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9716 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
9718 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9719 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
9720 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
9721 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
9722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
9723 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
9724 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9725 ZERO_STRUCTP(r
->out
.validation
);
9726 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9727 ZERO_STRUCTP(r
->out
.authoritative
);
9729 if (flags
& NDR_OUT
) {
9730 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9731 if (_ptr_return_authenticator
) {
9732 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9734 r
->out
.return_authenticator
= NULL
;
9736 if (r
->out
.return_authenticator
) {
9737 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9738 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9739 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9742 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9743 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
9745 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9746 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
9747 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
9748 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
9749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
9750 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9751 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
9753 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9754 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
9755 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
9756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
9757 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9759 return NDR_ERR_SUCCESS
;
9762 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
9764 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
9766 if (flags
& NDR_SET_VALUES
) {
9767 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9769 if (flags
& NDR_IN
) {
9770 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
9772 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9774 if (r
->in
.server_name
) {
9775 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9778 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9780 if (r
->in
.computer_name
) {
9781 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9784 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9786 if (r
->in
.credential
) {
9787 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9790 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9792 if (r
->in
.return_authenticator
) {
9793 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9796 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9797 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
9799 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
9800 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
9802 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
9805 if (flags
& NDR_OUT
) {
9806 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
9808 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9810 if (r
->out
.return_authenticator
) {
9811 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9814 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
9816 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
9817 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
9819 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
9821 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
9823 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9829 static enum ndr_err_code
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
9831 if (flags
& NDR_IN
) {
9832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9833 if (r
->in
.server_name
) {
9834 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9835 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9836 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9837 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
));
9839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
9840 if (r
->in
.computer_name
) {
9841 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9842 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9843 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9844 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
));
9846 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
9847 if (r
->in
.credential
) {
9848 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9850 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
9851 if (r
->in
.return_authenticator
) {
9852 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9854 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
9855 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9856 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9858 if (flags
& NDR_OUT
) {
9859 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
9860 if (r
->out
.return_authenticator
) {
9861 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9863 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9865 return NDR_ERR_SUCCESS
;
9868 static enum ndr_err_code
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
9870 uint32_t _ptr_server_name
;
9871 uint32_t _ptr_computer_name
;
9872 uint32_t _ptr_credential
;
9873 uint32_t _ptr_return_authenticator
;
9874 TALLOC_CTX
*_mem_save_server_name_0
;
9875 TALLOC_CTX
*_mem_save_computer_name_0
;
9876 TALLOC_CTX
*_mem_save_credential_0
;
9877 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9878 if (flags
& NDR_IN
) {
9879 ZERO_STRUCT(r
->out
);
9881 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9882 if (_ptr_server_name
) {
9883 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9885 r
->in
.server_name
= NULL
;
9887 if (r
->in
.server_name
) {
9888 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9889 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9890 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9891 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9892 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9893 return 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
));
9895 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9896 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
));
9897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
9900 if (_ptr_computer_name
) {
9901 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
9903 r
->in
.computer_name
= NULL
;
9905 if (r
->in
.computer_name
) {
9906 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9907 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
9908 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9909 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9910 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9911 return 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
));
9913 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9914 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
));
9915 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
9917 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
9918 if (_ptr_credential
) {
9919 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
9921 r
->in
.credential
= NULL
;
9923 if (r
->in
.credential
) {
9924 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9925 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
9926 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
9927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
9929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9930 if (_ptr_return_authenticator
) {
9931 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9933 r
->in
.return_authenticator
= NULL
;
9935 if (r
->in
.return_authenticator
) {
9936 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9937 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
9938 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9941 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
9942 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
9943 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
9945 if (flags
& NDR_OUT
) {
9946 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
9947 if (_ptr_return_authenticator
) {
9948 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9950 r
->out
.return_authenticator
= NULL
;
9952 if (r
->out
.return_authenticator
) {
9953 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9954 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
9955 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9956 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
9958 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9960 return NDR_ERR_SUCCESS
;
9963 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
9965 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
9967 if (flags
& NDR_SET_VALUES
) {
9968 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9970 if (flags
& NDR_IN
) {
9971 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
9973 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9975 if (r
->in
.server_name
) {
9976 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9979 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
9981 if (r
->in
.computer_name
) {
9982 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9985 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
9987 if (r
->in
.credential
) {
9988 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
9991 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9993 if (r
->in
.return_authenticator
) {
9994 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9997 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
9998 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
9999 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
10002 if (flags
& NDR_OUT
) {
10003 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
10005 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10007 if (r
->out
.return_authenticator
) {
10008 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10011 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10017 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
10019 if (flags
& NDR_IN
) {
10020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10021 if (r
->in
.server_name
) {
10022 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10023 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10024 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10025 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
));
10027 if (r
->in
.computer_name
== NULL
) {
10028 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10030 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10031 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10032 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10033 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
));
10034 if (r
->in
.credentials
== NULL
) {
10035 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10037 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10039 if (flags
& NDR_OUT
) {
10040 if (r
->out
.return_credentials
== NULL
) {
10041 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10043 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10044 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10046 return NDR_ERR_SUCCESS
;
10049 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
10051 uint32_t _ptr_server_name
;
10052 TALLOC_CTX
*_mem_save_server_name_0
;
10053 TALLOC_CTX
*_mem_save_credentials_0
;
10054 TALLOC_CTX
*_mem_save_return_credentials_0
;
10055 if (flags
& NDR_IN
) {
10056 ZERO_STRUCT(r
->out
);
10058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10059 if (_ptr_server_name
) {
10060 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10062 r
->in
.server_name
= NULL
;
10064 if (r
->in
.server_name
) {
10065 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10066 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10068 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10069 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10070 return 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
));
10072 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10073 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
));
10074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10076 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10077 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10078 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10079 return 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
));
10081 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10082 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
));
10083 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10084 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10086 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10087 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10088 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10089 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10090 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10091 ZERO_STRUCTP(r
->out
.return_credentials
);
10093 if (flags
& NDR_OUT
) {
10094 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10095 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10097 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10098 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10099 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10100 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10101 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10103 return NDR_ERR_SUCCESS
;
10106 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
10108 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
10110 if (flags
& NDR_SET_VALUES
) {
10111 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10113 if (flags
& NDR_IN
) {
10114 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
10116 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10118 if (r
->in
.server_name
) {
10119 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10122 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10124 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10126 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10128 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10132 if (flags
& NDR_OUT
) {
10133 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
10135 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10137 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10139 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10145 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
10147 if (flags
& NDR_IN
) {
10148 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10149 if (r
->in
.server_name
) {
10150 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10151 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10152 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10153 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
));
10155 if (r
->in
.account_name
== NULL
) {
10156 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10158 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10159 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10160 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10161 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
));
10162 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10163 if (r
->in
.computer_name
== NULL
) {
10164 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10166 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10168 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10169 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
));
10170 if (r
->in
.credentials
== NULL
) {
10171 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10173 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10175 if (flags
& NDR_OUT
) {
10176 if (r
->out
.return_credentials
== NULL
) {
10177 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10179 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10180 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10182 return NDR_ERR_SUCCESS
;
10185 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
10187 uint32_t _ptr_server_name
;
10188 TALLOC_CTX
*_mem_save_server_name_0
;
10189 TALLOC_CTX
*_mem_save_credentials_0
;
10190 TALLOC_CTX
*_mem_save_return_credentials_0
;
10191 if (flags
& NDR_IN
) {
10192 ZERO_STRUCT(r
->out
);
10194 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10195 if (_ptr_server_name
) {
10196 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10198 r
->in
.server_name
= NULL
;
10200 if (r
->in
.server_name
) {
10201 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10202 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10203 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10204 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10205 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10206 return 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
));
10208 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10209 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
));
10210 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10212 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10213 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10214 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10215 return 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
));
10217 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10218 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
));
10219 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10220 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10221 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10222 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10223 return 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
));
10225 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10226 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
));
10227 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10228 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10230 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10231 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10232 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10234 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10235 ZERO_STRUCTP(r
->out
.return_credentials
);
10237 if (flags
& NDR_OUT
) {
10238 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10239 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
10241 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10242 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
10243 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
10244 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10245 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10247 return NDR_ERR_SUCCESS
;
10250 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
10252 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
10254 if (flags
& NDR_SET_VALUES
) {
10255 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10257 if (flags
& NDR_IN
) {
10258 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
10260 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10262 if (r
->in
.server_name
) {
10263 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10266 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10268 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10270 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10271 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10273 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10275 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10277 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10281 if (flags
& NDR_OUT
) {
10282 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
10284 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
10286 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
10288 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10294 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
10296 if (flags
& NDR_IN
) {
10297 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10298 if (r
->in
.server_name
) {
10299 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10301 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10302 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
));
10304 if (r
->in
.account_name
== NULL
) {
10305 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10307 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10308 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10309 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10310 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
));
10311 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10312 if (r
->in
.computer_name
== NULL
) {
10313 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10315 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10316 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10317 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10318 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
));
10319 if (r
->in
.credential
== NULL
) {
10320 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10322 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10323 if (r
->in
.new_password
== NULL
) {
10324 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10326 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10328 if (flags
& NDR_OUT
) {
10329 if (r
->out
.return_authenticator
== NULL
) {
10330 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10332 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10333 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10335 return NDR_ERR_SUCCESS
;
10338 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
10340 uint32_t _ptr_server_name
;
10341 TALLOC_CTX
*_mem_save_server_name_0
;
10342 TALLOC_CTX
*_mem_save_credential_0
;
10343 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10344 TALLOC_CTX
*_mem_save_new_password_0
;
10345 if (flags
& NDR_IN
) {
10346 ZERO_STRUCT(r
->out
);
10348 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10349 if (_ptr_server_name
) {
10350 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10352 r
->in
.server_name
= NULL
;
10354 if (r
->in
.server_name
) {
10355 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10356 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10357 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10358 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10359 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10360 return 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
));
10362 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10363 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
));
10364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10366 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10367 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10368 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10369 return 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
));
10371 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10372 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
));
10373 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10374 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10375 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10376 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10377 return 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
));
10379 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10380 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
));
10381 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10382 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10384 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10385 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10386 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10387 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10388 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10389 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
10391 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10392 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
10393 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->in
.new_password
));
10394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
10395 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10396 ZERO_STRUCTP(r
->out
.return_authenticator
);
10398 if (flags
& NDR_OUT
) {
10399 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10400 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10402 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10403 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10404 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10406 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10408 return NDR_ERR_SUCCESS
;
10411 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
10413 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
10415 if (flags
& NDR_SET_VALUES
) {
10416 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10418 if (flags
& NDR_IN
) {
10419 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
10421 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10423 if (r
->in
.server_name
) {
10424 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10427 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
10429 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10431 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10432 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
10434 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10436 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10438 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10440 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
10442 ndr_print_samr_Password(ndr
, "new_password", r
->in
.new_password
);
10446 if (flags
& NDR_OUT
) {
10447 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
10449 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10451 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10453 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10459 static enum ndr_err_code
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
10461 if (flags
& NDR_IN
) {
10462 if (r
->in
.logon_server
== NULL
) {
10463 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10465 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10466 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10467 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10468 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
));
10469 if (r
->in
.computername
== NULL
) {
10470 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10472 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10473 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10474 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10475 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10476 if (r
->in
.credential
== NULL
) {
10477 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10479 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10480 if (r
->in
.return_authenticator
== NULL
) {
10481 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10483 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10484 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10485 if (r
->in
.sequence_num
== NULL
) {
10486 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10488 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
10489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10491 if (flags
& NDR_OUT
) {
10492 if (r
->out
.return_authenticator
== NULL
) {
10493 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10495 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10496 if (r
->out
.sequence_num
== NULL
) {
10497 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10499 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
10500 if (r
->out
.delta_enum_array
== NULL
) {
10501 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10503 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10504 if (*r
->out
.delta_enum_array
) {
10505 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10507 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10509 return NDR_ERR_SUCCESS
;
10512 static enum ndr_err_code
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
10514 uint32_t _ptr_delta_enum_array
;
10515 TALLOC_CTX
*_mem_save_credential_0
;
10516 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10517 TALLOC_CTX
*_mem_save_sequence_num_0
;
10518 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10519 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10520 if (flags
& NDR_IN
) {
10521 ZERO_STRUCT(r
->out
);
10523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10524 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10525 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10526 return 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
));
10528 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10529 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
));
10530 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10531 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10532 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10533 return 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
));
10535 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10536 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10537 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10538 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10540 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10541 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10542 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10544 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10545 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10547 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10548 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10549 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10551 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10552 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10553 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
10555 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10556 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10557 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
10558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10559 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10560 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10561 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10562 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10563 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
10564 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10565 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10567 if (flags
& NDR_OUT
) {
10568 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10569 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10571 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10572 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10573 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10576 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
10578 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10579 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
10580 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
10581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
10582 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10583 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10585 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10586 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10587 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10588 if (_ptr_delta_enum_array
) {
10589 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10591 *r
->out
.delta_enum_array
= NULL
;
10593 if (*r
->out
.delta_enum_array
) {
10594 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10595 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10596 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10597 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10600 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10602 return NDR_ERR_SUCCESS
;
10605 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
10607 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
10609 if (flags
& NDR_SET_VALUES
) {
10610 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10612 if (flags
& NDR_IN
) {
10613 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
10615 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10617 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10619 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10621 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10623 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10625 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10627 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10629 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10631 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10632 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
10634 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
10636 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10639 if (flags
& NDR_OUT
) {
10640 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
10642 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10644 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10646 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
10648 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
10650 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10652 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10654 if (*r
->out
.delta_enum_array
) {
10655 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10659 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10665 static enum ndr_err_code
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
10667 if (flags
& NDR_IN
) {
10668 if (r
->in
.logon_server
== NULL
) {
10669 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10671 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10672 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10673 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10674 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
));
10675 if (r
->in
.computername
== NULL
) {
10676 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10678 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10679 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10680 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10681 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10682 if (r
->in
.credential
== NULL
) {
10683 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10685 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10686 if (r
->in
.return_authenticator
== NULL
) {
10687 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10689 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10690 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
10691 if (r
->in
.sync_context
== NULL
) {
10692 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
10695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
10697 if (flags
& NDR_OUT
) {
10698 if (r
->out
.return_authenticator
== NULL
) {
10699 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10701 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10702 if (r
->out
.sync_context
== NULL
) {
10703 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
10706 if (r
->out
.delta_enum_array
== NULL
) {
10707 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10709 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
10710 if (*r
->out
.delta_enum_array
) {
10711 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10713 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10715 return NDR_ERR_SUCCESS
;
10718 static enum ndr_err_code
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
10720 uint32_t _ptr_delta_enum_array
;
10721 TALLOC_CTX
*_mem_save_credential_0
;
10722 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10723 TALLOC_CTX
*_mem_save_sync_context_0
;
10724 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
10725 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
10726 if (flags
& NDR_IN
) {
10727 ZERO_STRUCT(r
->out
);
10729 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10730 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10731 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10732 return 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
));
10734 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10735 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
));
10736 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10737 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10738 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10739 return 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
));
10741 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10742 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10743 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10744 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
10746 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10747 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
10748 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
10749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
10750 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10751 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10753 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10754 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10755 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10757 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
10758 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10759 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
10761 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10762 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10763 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
10764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10765 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
10766 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10767 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10768 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10769 *r
->out
.sync_context
= *r
->in
.sync_context
;
10770 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10771 ZERO_STRUCTP(r
->out
.delta_enum_array
);
10773 if (flags
& NDR_OUT
) {
10774 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10775 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10777 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10778 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10779 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10781 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10782 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
10784 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10785 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
10786 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
10787 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
10788 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10789 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10791 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10792 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
10793 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10794 if (_ptr_delta_enum_array
) {
10795 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
10797 *r
->out
.delta_enum_array
= NULL
;
10799 if (*r
->out
.delta_enum_array
) {
10800 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
10801 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
10802 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
10803 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
10805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
10806 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10808 return NDR_ERR_SUCCESS
;
10811 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
10813 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
10815 if (flags
& NDR_SET_VALUES
) {
10816 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10818 if (flags
& NDR_IN
) {
10819 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
10821 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10823 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10825 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
10827 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10829 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
10831 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
10833 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10835 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10837 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
10838 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
10840 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
10842 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
10845 if (flags
& NDR_OUT
) {
10846 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
10848 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10850 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10852 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
10854 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
10856 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10858 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10860 if (*r
->out
.delta_enum_array
) {
10861 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
10865 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10871 static enum ndr_err_code
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
10873 if (flags
& NDR_IN
) {
10874 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10875 if (r
->in
.logon_server
) {
10876 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10877 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10878 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10879 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
));
10881 if (r
->in
.computername
== NULL
) {
10882 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10884 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10885 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10886 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
10887 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10888 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10889 if (r
->in
.return_authenticator
== NULL
) {
10890 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10892 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10893 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10894 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
10895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10896 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
10898 if (flags
& NDR_OUT
) {
10899 if (r
->out
.return_authenticator
== NULL
) {
10900 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10902 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10903 if (r
->out
.buffer
== NULL
) {
10904 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10907 struct ndr_push
*_ndr_buffer
;
10908 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
10909 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
10910 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
10912 if (r
->out
.count_returned
== NULL
) {
10913 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
10916 if (r
->out
.total_entries
== NULL
) {
10917 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
10920 if (r
->out
.recordid
== NULL
) {
10921 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
10923 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
10924 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10926 return NDR_ERR_SUCCESS
;
10929 static enum ndr_err_code
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
10931 uint32_t _ptr_logon_server
;
10932 TALLOC_CTX
*_mem_save_logon_server_0
;
10933 TALLOC_CTX
*_mem_save_return_authenticator_0
;
10934 TALLOC_CTX
*_mem_save_buffer_0
;
10935 TALLOC_CTX
*_mem_save_count_returned_0
;
10936 TALLOC_CTX
*_mem_save_total_entries_0
;
10937 TALLOC_CTX
*_mem_save_recordid_0
;
10938 if (flags
& NDR_IN
) {
10939 ZERO_STRUCT(r
->out
);
10941 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10942 if (_ptr_logon_server
) {
10943 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10945 r
->in
.logon_server
= NULL
;
10947 if (r
->in
.logon_server
) {
10948 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10949 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10950 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10951 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10952 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10953 return 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
));
10955 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10956 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
));
10957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10959 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10960 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10961 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10962 return 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
));
10964 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10965 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10966 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10967 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10968 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10970 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10971 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10972 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10974 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
10975 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
10976 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
10978 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10979 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10980 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
10981 ZERO_STRUCTP(r
->out
.buffer
);
10982 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
10983 ZERO_STRUCTP(r
->out
.count_returned
);
10984 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
10985 ZERO_STRUCTP(r
->out
.total_entries
);
10986 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
10987 ZERO_STRUCTP(r
->out
.recordid
);
10989 if (flags
& NDR_OUT
) {
10990 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10991 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10993 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10994 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10995 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10996 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10997 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10998 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11000 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11001 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
11003 struct ndr_pull
*_ndr_buffer
;
11004 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11005 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11006 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11008 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
11009 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11010 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11012 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11013 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
11014 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
11015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
11016 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11017 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11019 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11020 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
11021 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
11022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
11023 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11024 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11026 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11027 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11028 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11029 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11030 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11032 return NDR_ERR_SUCCESS
;
11035 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
11037 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
11039 if (flags
& NDR_SET_VALUES
) {
11040 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11042 if (flags
& NDR_IN
) {
11043 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
11045 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11047 if (r
->in
.logon_server
) {
11048 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11051 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
11053 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11055 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11056 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11058 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11060 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
11061 ndr_print_uint32(ndr
, "count", r
->in
.count
);
11062 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11063 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11066 if (flags
& NDR_OUT
) {
11067 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
11069 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11071 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11073 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11075 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11077 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11079 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11081 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11083 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11085 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11087 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11089 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11095 static enum ndr_err_code
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
11097 if (flags
& NDR_IN
) {
11098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11099 if (r
->in
.logon_server
) {
11100 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11101 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11102 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11103 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
));
11105 if (r
->in
.computername
== NULL
) {
11106 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11108 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11109 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11110 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
11111 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11112 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11113 if (r
->in
.return_authenticator
== NULL
) {
11114 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11116 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
11118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
11120 if (r
->in
.recordid
== NULL
) {
11121 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11123 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11125 if (flags
& NDR_OUT
) {
11126 if (r
->out
.return_authenticator
== NULL
) {
11127 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11129 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11130 if (r
->out
.buffer
== NULL
) {
11131 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11134 struct ndr_push
*_ndr_buffer
;
11135 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11136 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11137 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11139 if (r
->out
.count_returned
== NULL
) {
11140 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
11143 if (r
->out
.total_entries
== NULL
) {
11144 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
11147 if (r
->out
.next_reference
== NULL
) {
11148 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
11151 if (r
->out
.recordid
== NULL
) {
11152 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11154 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11155 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11157 return NDR_ERR_SUCCESS
;
11160 static enum ndr_err_code
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
11162 uint32_t _ptr_logon_server
;
11163 TALLOC_CTX
*_mem_save_logon_server_0
;
11164 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11165 TALLOC_CTX
*_mem_save_buffer_0
;
11166 TALLOC_CTX
*_mem_save_count_returned_0
;
11167 TALLOC_CTX
*_mem_save_total_entries_0
;
11168 TALLOC_CTX
*_mem_save_next_reference_0
;
11169 TALLOC_CTX
*_mem_save_recordid_0
;
11170 if (flags
& NDR_IN
) {
11171 ZERO_STRUCT(r
->out
);
11173 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11174 if (_ptr_logon_server
) {
11175 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11177 r
->in
.logon_server
= NULL
;
11179 if (r
->in
.logon_server
) {
11180 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11181 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11182 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11183 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11184 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11185 return 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
));
11187 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11188 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
));
11189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11191 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
11192 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
11193 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
11194 return 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
));
11196 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
11197 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
11198 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11199 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11200 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11202 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11203 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11204 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11206 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
11207 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11208 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
11209 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11210 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
11212 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11213 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11214 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
11215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11216 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11217 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11218 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11219 ZERO_STRUCTP(r
->out
.buffer
);
11220 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11221 ZERO_STRUCTP(r
->out
.count_returned
);
11222 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11223 ZERO_STRUCTP(r
->out
.total_entries
);
11224 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11225 ZERO_STRUCTP(r
->out
.next_reference
);
11226 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11227 *r
->out
.recordid
= *r
->in
.recordid
;
11229 if (flags
& NDR_OUT
) {
11230 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11231 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11233 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11234 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11235 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11237 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11238 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
11240 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11241 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
11243 struct ndr_pull
*_ndr_buffer
;
11244 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
11245 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
11246 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
11248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
11249 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11250 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
11252 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11253 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
11254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
11255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
11256 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11257 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
11259 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11260 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
11261 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
11262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
11263 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11264 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
11266 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11267 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
11268 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
11269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
11270 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11271 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
11273 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11274 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
11275 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
11276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
11277 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11279 return NDR_ERR_SUCCESS
;
11282 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
11284 ndr_print_struct(ndr
, name
, "netr_AccountSync");
11286 if (flags
& NDR_SET_VALUES
) {
11287 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11289 if (flags
& NDR_IN
) {
11290 ndr_print_struct(ndr
, "in", "netr_AccountSync");
11292 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11294 if (r
->in
.logon_server
) {
11295 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11298 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
11300 ndr_print_string(ndr
, "computername", r
->in
.computername
);
11302 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11303 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11305 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11307 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
11308 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11309 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
11310 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
11312 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
11316 if (flags
& NDR_OUT
) {
11317 ndr_print_struct(ndr
, "out", "netr_AccountSync");
11319 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11321 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11323 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
11325 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
11327 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
11329 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
11331 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
11333 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
11335 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
11337 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
11339 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
11341 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
11343 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11349 static enum ndr_err_code
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
11351 if (flags
& NDR_IN
) {
11352 if (r
->in
.logon_server
== NULL
) {
11353 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11356 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11357 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11358 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
));
11359 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11360 if (r
->in
.domainname
) {
11361 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11362 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11363 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11364 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11367 if (flags
& NDR_OUT
) {
11368 if (r
->out
.dcname
== NULL
) {
11369 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11371 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11372 if (*r
->out
.dcname
) {
11373 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11374 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11375 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11376 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11378 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11380 return NDR_ERR_SUCCESS
;
11383 static enum ndr_err_code
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
11385 uint32_t _ptr_domainname
;
11386 uint32_t _ptr_dcname
;
11387 TALLOC_CTX
*_mem_save_domainname_0
;
11388 TALLOC_CTX
*_mem_save_dcname_0
;
11389 TALLOC_CTX
*_mem_save_dcname_1
;
11390 if (flags
& NDR_IN
) {
11391 ZERO_STRUCT(r
->out
);
11393 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11394 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11395 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11396 return 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
));
11398 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11399 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
));
11400 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11401 if (_ptr_domainname
) {
11402 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11404 r
->in
.domainname
= NULL
;
11406 if (r
->in
.domainname
) {
11407 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11408 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11409 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11410 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11411 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11412 return 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
));
11414 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11415 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11418 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11419 ZERO_STRUCTP(r
->out
.dcname
);
11421 if (flags
& NDR_OUT
) {
11422 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11423 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11425 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11426 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11427 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11429 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11431 *r
->out
.dcname
= NULL
;
11433 if (*r
->out
.dcname
) {
11434 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11435 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11436 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11437 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11438 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11439 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
));
11441 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11442 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11443 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11446 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11448 return NDR_ERR_SUCCESS
;
11451 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
11453 ndr_print_struct(ndr
, name
, "netr_GetDcName");
11455 if (flags
& NDR_SET_VALUES
) {
11456 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11458 if (flags
& NDR_IN
) {
11459 ndr_print_struct(ndr
, "in", "netr_GetDcName");
11461 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11463 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11465 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11467 if (r
->in
.domainname
) {
11468 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11473 if (flags
& NDR_OUT
) {
11474 ndr_print_struct(ndr
, "out", "netr_GetDcName");
11476 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11478 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11480 if (*r
->out
.dcname
) {
11481 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11485 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11491 static enum ndr_err_code
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
11493 if (flags
& NDR_IN
) {
11494 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11495 if (r
->in
.logon_server
) {
11496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11498 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11499 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
));
11501 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11504 if (flags
& NDR_OUT
) {
11505 if (r
->out
.query
== NULL
) {
11506 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11508 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11509 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11510 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11512 return NDR_ERR_SUCCESS
;
11515 static enum ndr_err_code
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
11517 uint32_t _ptr_logon_server
;
11518 TALLOC_CTX
*_mem_save_logon_server_0
;
11519 TALLOC_CTX
*_mem_save_query_0
;
11520 if (flags
& NDR_IN
) {
11521 ZERO_STRUCT(r
->out
);
11523 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11524 if (_ptr_logon_server
) {
11525 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11527 r
->in
.logon_server
= NULL
;
11529 if (r
->in
.logon_server
) {
11530 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11531 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11532 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11533 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11534 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11535 return 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
));
11537 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11538 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
));
11539 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11541 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11542 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11543 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11544 ZERO_STRUCTP(r
->out
.query
);
11546 if (flags
& NDR_OUT
) {
11547 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11548 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11550 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11551 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11552 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11553 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11555 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11557 return NDR_ERR_SUCCESS
;
11560 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
11562 ndr_print_struct(ndr
, name
, "netr_LogonControl");
11564 if (flags
& NDR_SET_VALUES
) {
11565 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11567 if (flags
& NDR_IN
) {
11568 ndr_print_struct(ndr
, "in", "netr_LogonControl");
11570 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11572 if (r
->in
.logon_server
) {
11573 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11576 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11577 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11580 if (flags
& NDR_OUT
) {
11581 ndr_print_struct(ndr
, "out", "netr_LogonControl");
11583 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11585 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11586 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11588 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11594 static enum ndr_err_code
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
11596 if (flags
& NDR_IN
) {
11597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11598 if (r
->in
.logon_server
) {
11599 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11600 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11601 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11602 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
));
11604 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
11605 if (r
->in
.domainname
) {
11606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11608 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
11609 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11612 if (flags
& NDR_OUT
) {
11613 if (r
->out
.dcname
== NULL
) {
11614 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11616 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.dcname
));
11617 if (*r
->out
.dcname
) {
11618 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11620 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
11621 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11623 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11625 return NDR_ERR_SUCCESS
;
11628 static enum ndr_err_code
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
11630 uint32_t _ptr_logon_server
;
11631 uint32_t _ptr_domainname
;
11632 uint32_t _ptr_dcname
;
11633 TALLOC_CTX
*_mem_save_logon_server_0
;
11634 TALLOC_CTX
*_mem_save_domainname_0
;
11635 TALLOC_CTX
*_mem_save_dcname_0
;
11636 TALLOC_CTX
*_mem_save_dcname_1
;
11637 if (flags
& NDR_IN
) {
11638 ZERO_STRUCT(r
->out
);
11640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11641 if (_ptr_logon_server
) {
11642 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11644 r
->in
.logon_server
= NULL
;
11646 if (r
->in
.logon_server
) {
11647 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11648 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11649 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11650 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11651 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11652 return 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
));
11654 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11655 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
));
11656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
11659 if (_ptr_domainname
) {
11660 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
11662 r
->in
.domainname
= NULL
;
11664 if (r
->in
.domainname
) {
11665 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11666 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
11667 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
11668 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
11669 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
11670 return 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
));
11672 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
11673 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
11674 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
11676 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11677 ZERO_STRUCTP(r
->out
.dcname
);
11679 if (flags
& NDR_OUT
) {
11680 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11681 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
11683 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11684 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
11685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dcname
));
11687 NDR_PULL_ALLOC(ndr
, *r
->out
.dcname
);
11689 *r
->out
.dcname
= NULL
;
11691 if (*r
->out
.dcname
) {
11692 _mem_save_dcname_1
= NDR_PULL_GET_MEM_CTX(ndr
);
11693 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.dcname
, 0);
11694 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
11695 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
11696 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
11697 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
));
11699 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
11700 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
11701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_1
, 0);
11703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
11704 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11706 return NDR_ERR_SUCCESS
;
11709 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
11711 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
11713 if (flags
& NDR_SET_VALUES
) {
11714 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11716 if (flags
& NDR_IN
) {
11717 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
11719 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11721 if (r
->in
.logon_server
) {
11722 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11725 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
11727 if (r
->in
.domainname
) {
11728 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
11733 if (flags
& NDR_OUT
) {
11734 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
11736 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
11738 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
11740 if (*r
->out
.dcname
) {
11741 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
11745 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11751 static enum ndr_err_code
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
11753 if (flags
& NDR_IN
) {
11754 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
11755 if (r
->in
.logon_server
) {
11756 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11757 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11758 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
11759 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
));
11761 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
11762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11763 if (r
->in
.data
== NULL
) {
11764 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11766 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11767 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11769 if (flags
& NDR_OUT
) {
11770 if (r
->out
.query
== NULL
) {
11771 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11773 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11774 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11775 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11777 return NDR_ERR_SUCCESS
;
11780 static enum ndr_err_code
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
11782 uint32_t _ptr_logon_server
;
11783 TALLOC_CTX
*_mem_save_logon_server_0
;
11784 TALLOC_CTX
*_mem_save_data_0
;
11785 TALLOC_CTX
*_mem_save_query_0
;
11786 if (flags
& NDR_IN
) {
11787 ZERO_STRUCT(r
->out
);
11789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
11790 if (_ptr_logon_server
) {
11791 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
11793 r
->in
.logon_server
= NULL
;
11795 if (r
->in
.logon_server
) {
11796 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11797 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
11798 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
11799 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
11800 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
11801 return 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
));
11803 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
11804 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
));
11805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
11807 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
11808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11809 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11810 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
11812 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11813 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
11814 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
11815 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
11816 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
11817 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11818 ZERO_STRUCTP(r
->out
.query
);
11820 if (flags
& NDR_OUT
) {
11821 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11822 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
11824 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11825 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
11826 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
11827 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
11828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
11829 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11831 return NDR_ERR_SUCCESS
;
11834 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
11836 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
11838 if (flags
& NDR_SET_VALUES
) {
11839 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11841 if (flags
& NDR_IN
) {
11842 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
11844 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
11846 if (r
->in
.logon_server
) {
11847 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
11850 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
11851 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11852 ndr_print_ptr(ndr
, "data", r
->in
.data
);
11854 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
11855 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
11859 if (flags
& NDR_OUT
) {
11860 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
11862 ndr_print_ptr(ndr
, "query", r
->out
.query
);
11864 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
11865 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
11867 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11873 static enum ndr_err_code
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
11875 if (flags
& NDR_IN
) {
11876 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11877 if (r
->in
.server_name
) {
11878 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11879 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11880 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11881 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
));
11883 if (r
->in
.account_name
== NULL
) {
11884 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11886 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11887 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11888 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11889 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
));
11890 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11891 if (r
->in
.computer_name
== NULL
) {
11892 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11894 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11895 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
11896 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11897 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
));
11898 if (r
->in
.credentials
== NULL
) {
11899 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11901 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11902 if (r
->in
.negotiate_flags
== NULL
) {
11903 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11905 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
11907 if (flags
& NDR_OUT
) {
11908 if (r
->out
.return_credentials
== NULL
) {
11909 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11911 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11912 if (r
->out
.negotiate_flags
== NULL
) {
11913 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
11915 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
11916 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11918 return NDR_ERR_SUCCESS
;
11921 static enum ndr_err_code
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
11923 uint32_t _ptr_server_name
;
11924 TALLOC_CTX
*_mem_save_server_name_0
;
11925 TALLOC_CTX
*_mem_save_credentials_0
;
11926 TALLOC_CTX
*_mem_save_return_credentials_0
;
11927 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
11928 if (flags
& NDR_IN
) {
11929 ZERO_STRUCT(r
->out
);
11931 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11932 if (_ptr_server_name
) {
11933 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11935 r
->in
.server_name
= NULL
;
11937 if (r
->in
.server_name
) {
11938 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11939 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11940 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11941 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11942 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11943 return 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
));
11945 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11946 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
));
11947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11949 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
11950 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
11951 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
11952 return 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
));
11954 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
11955 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
));
11956 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
11957 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11958 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11959 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11960 return 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
));
11962 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11963 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
));
11964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11965 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
11967 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11968 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
11969 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
11970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11971 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11972 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
11974 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11975 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11976 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
11977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11978 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11979 ZERO_STRUCTP(r
->out
.return_credentials
);
11980 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11981 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
11983 if (flags
& NDR_OUT
) {
11984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11985 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
11987 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11988 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
11989 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
11990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
11991 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11992 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
11994 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11995 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
11996 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
11997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
11998 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12000 return NDR_ERR_SUCCESS
;
12003 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
12005 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
12007 if (flags
& NDR_SET_VALUES
) {
12008 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12010 if (flags
& NDR_IN
) {
12011 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
12013 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12015 if (r
->in
.server_name
) {
12016 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12019 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
12021 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
12023 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
12024 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12026 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12028 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
12030 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
12032 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
12034 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
12038 if (flags
& NDR_OUT
) {
12039 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
12041 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
12043 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
12045 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
12047 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
12049 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12055 static enum ndr_err_code
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
12057 if (flags
& NDR_IN
) {
12058 if (r
->in
.logon_server
== NULL
) {
12059 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12061 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12062 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12063 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12064 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
));
12065 if (r
->in
.computername
== NULL
) {
12066 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12068 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12069 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12070 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12071 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12072 if (r
->in
.credential
== NULL
) {
12073 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12075 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12076 if (r
->in
.return_authenticator
== NULL
) {
12077 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12079 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12080 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
12081 NDR_CHECK(ndr_push_SyncStateEnum(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
12082 if (r
->in
.sync_context
== NULL
) {
12083 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
12086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
12088 if (flags
& NDR_OUT
) {
12089 if (r
->out
.return_authenticator
== NULL
) {
12090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12092 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12093 if (r
->out
.sync_context
== NULL
) {
12094 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
12097 if (r
->out
.delta_enum_array
== NULL
) {
12098 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12100 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12101 if (*r
->out
.delta_enum_array
) {
12102 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12104 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12106 return NDR_ERR_SUCCESS
;
12109 static enum ndr_err_code
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
12111 uint32_t _ptr_delta_enum_array
;
12112 TALLOC_CTX
*_mem_save_credential_0
;
12113 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12114 TALLOC_CTX
*_mem_save_sync_context_0
;
12115 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12116 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12117 if (flags
& NDR_IN
) {
12118 ZERO_STRUCT(r
->out
);
12120 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12121 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12122 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12123 return 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
));
12125 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12126 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
));
12127 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12128 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12129 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12130 return 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
));
12132 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12133 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12134 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12135 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12137 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12138 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12139 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12140 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12141 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12142 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12144 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12145 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12146 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12147 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12148 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
12149 NDR_CHECK(ndr_pull_SyncStateEnum(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
12150 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12151 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
12153 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12154 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12155 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
12156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12157 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
12158 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12159 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12160 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12161 *r
->out
.sync_context
= *r
->in
.sync_context
;
12162 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12163 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12165 if (flags
& NDR_OUT
) {
12166 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12167 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12169 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12170 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12171 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12173 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12174 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
12176 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12177 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
12178 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
12179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
12180 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12181 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12183 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12184 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12186 if (_ptr_delta_enum_array
) {
12187 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12189 *r
->out
.delta_enum_array
= NULL
;
12191 if (*r
->out
.delta_enum_array
) {
12192 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12193 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12194 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12198 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12200 return NDR_ERR_SUCCESS
;
12203 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
12205 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
12207 if (flags
& NDR_SET_VALUES
) {
12208 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12210 if (flags
& NDR_IN
) {
12211 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
12213 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12215 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12217 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12219 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12221 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12223 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12225 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12227 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12229 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
12230 ndr_print_SyncStateEnum(ndr
, "restart_state", r
->in
.restart_state
);
12231 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
12233 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
12235 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
12238 if (flags
& NDR_OUT
) {
12239 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
12241 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12243 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12245 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
12247 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
12249 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12251 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12253 if (*r
->out
.delta_enum_array
) {
12254 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12258 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12264 static enum ndr_err_code
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
12266 if (flags
& NDR_IN
) {
12267 if (r
->in
.logon_server
== NULL
) {
12268 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12270 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12271 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12272 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12273 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
));
12274 if (r
->in
.computername
== NULL
) {
12275 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12277 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12278 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12279 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
12280 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12281 if (r
->in
.credential
== NULL
) {
12282 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12284 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12285 if (r
->in
.return_authenticator
== NULL
) {
12286 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12288 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12290 struct ndr_push
*_ndr_change_log_entry
;
12291 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
)));
12292 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12293 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
)));
12295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_netr_ChangeLogEntry(&r
->in
.change_log_entry
, ndr
->iconv_convenience
, ndr
->flags
)));
12297 if (flags
& NDR_OUT
) {
12298 if (r
->out
.return_authenticator
== NULL
) {
12299 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12301 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12302 if (r
->out
.delta_enum_array
== NULL
) {
12303 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12305 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.delta_enum_array
));
12306 if (*r
->out
.delta_enum_array
) {
12307 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12309 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12311 return NDR_ERR_SUCCESS
;
12314 static enum ndr_err_code
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
12316 uint32_t _ptr_delta_enum_array
;
12317 TALLOC_CTX
*_mem_save_credential_0
;
12318 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12319 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
12320 TALLOC_CTX
*_mem_save_delta_enum_array_1
;
12321 if (flags
& NDR_IN
) {
12322 ZERO_STRUCT(r
->out
);
12324 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12325 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12326 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12327 return 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
));
12329 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12330 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
));
12331 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
12332 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
12333 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
12334 return 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
));
12336 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
12337 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
12338 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12339 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12341 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12342 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12343 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12345 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12346 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12348 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12349 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12353 struct ndr_pull
*_ndr_change_log_entry
;
12354 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12355 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.change_log_entry
));
12356 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_change_log_entry
, 4, r
->in
.change_log_entry_size
));
12358 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
12359 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12360 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12361 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12362 ZERO_STRUCTP(r
->out
.delta_enum_array
);
12364 if (flags
& NDR_OUT
) {
12365 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12366 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12368 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12369 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12370 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12372 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12373 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
12375 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12376 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, LIBNDR_FLAG_REF_ALLOC
);
12377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
12378 if (_ptr_delta_enum_array
) {
12379 NDR_PULL_ALLOC(ndr
, *r
->out
.delta_enum_array
);
12381 *r
->out
.delta_enum_array
= NULL
;
12383 if (*r
->out
.delta_enum_array
) {
12384 _mem_save_delta_enum_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12385 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.delta_enum_array
, 0);
12386 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.delta_enum_array
));
12387 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_1
, 0);
12389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, LIBNDR_FLAG_REF_ALLOC
);
12390 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12392 return NDR_ERR_SUCCESS
;
12395 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
12397 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
12399 if (flags
& NDR_SET_VALUES
) {
12400 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12402 if (flags
& NDR_IN
) {
12403 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
12405 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12407 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12409 ndr_print_ptr(ndr
, "computername", r
->in
.computername
);
12411 ndr_print_string(ndr
, "computername", r
->in
.computername
);
12413 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12415 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12417 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12419 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12421 ndr_print_netr_ChangeLogEntry(ndr
, "change_log_entry", &r
->in
.change_log_entry
);
12422 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
);
12425 if (flags
& NDR_OUT
) {
12426 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
12428 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12430 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12432 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
12434 ndr_print_ptr(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12436 if (*r
->out
.delta_enum_array
) {
12437 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", *r
->out
.delta_enum_array
);
12441 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12447 static enum ndr_err_code
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
12449 if (flags
& NDR_IN
) {
12450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
12451 if (r
->in
.logon_server
) {
12452 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12453 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12454 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
12455 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
));
12457 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
12458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
12459 if (r
->in
.data
== NULL
) {
12460 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12462 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12463 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12465 if (flags
& NDR_OUT
) {
12466 if (r
->out
.query
== NULL
) {
12467 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12469 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12470 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12471 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12473 return NDR_ERR_SUCCESS
;
12476 static enum ndr_err_code
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
12478 uint32_t _ptr_logon_server
;
12479 TALLOC_CTX
*_mem_save_logon_server_0
;
12480 TALLOC_CTX
*_mem_save_data_0
;
12481 TALLOC_CTX
*_mem_save_query_0
;
12482 if (flags
& NDR_IN
) {
12483 ZERO_STRUCT(r
->out
);
12485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
12486 if (_ptr_logon_server
) {
12487 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
12489 r
->in
.logon_server
= NULL
;
12491 if (r
->in
.logon_server
) {
12492 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12493 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
12494 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
12495 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
12496 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
12497 return 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
));
12499 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
12500 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
));
12501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
12503 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
12504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
12505 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12506 NDR_PULL_ALLOC(ndr
, r
->in
.data
);
12508 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12509 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data
, LIBNDR_FLAG_REF_ALLOC
);
12510 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
));
12511 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.data
));
12512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
12513 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12514 ZERO_STRUCTP(r
->out
.query
);
12516 if (flags
& NDR_OUT
) {
12517 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12518 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
12520 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12521 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
12522 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
12523 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
12524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
12525 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12527 return NDR_ERR_SUCCESS
;
12530 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
12532 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
12534 if (flags
& NDR_SET_VALUES
) {
12535 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12537 if (flags
& NDR_IN
) {
12538 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
12540 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
12542 if (r
->in
.logon_server
) {
12543 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
12546 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
12547 ndr_print_uint32(ndr
, "level", r
->in
.level
);
12548 ndr_print_ptr(ndr
, "data", r
->in
.data
);
12550 ndr_print_set_switch_value(ndr
, r
->in
.data
, r
->in
.function_code
);
12551 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", r
->in
.data
);
12555 if (flags
& NDR_OUT
) {
12556 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
12558 ndr_print_ptr(ndr
, "query", r
->out
.query
);
12560 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
12561 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
12563 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12569 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12571 if (flags
& NDR_IN
) {
12572 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12573 if (r
->in
.server_name
) {
12574 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12575 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12576 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12577 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
));
12580 if (flags
& NDR_OUT
) {
12581 if (r
->out
.trusted_domains_blob
== NULL
) {
12582 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12584 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12585 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12587 return NDR_ERR_SUCCESS
;
12590 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomains
*r
)
12592 uint32_t _ptr_server_name
;
12593 TALLOC_CTX
*_mem_save_server_name_0
;
12594 TALLOC_CTX
*_mem_save_trusted_domains_blob_0
;
12595 if (flags
& NDR_IN
) {
12596 ZERO_STRUCT(r
->out
);
12598 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12599 if (_ptr_server_name
) {
12600 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12602 r
->in
.server_name
= NULL
;
12604 if (r
->in
.server_name
) {
12605 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12606 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12607 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12608 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12609 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12610 return 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
));
12612 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12613 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
));
12614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12616 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12617 ZERO_STRUCTP(r
->out
.trusted_domains_blob
);
12619 if (flags
& NDR_OUT
) {
12620 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12621 NDR_PULL_ALLOC(ndr
, r
->out
.trusted_domains_blob
);
12623 _mem_save_trusted_domains_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12624 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusted_domains_blob
, LIBNDR_FLAG_REF_ALLOC
);
12625 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusted_domains_blob
));
12626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domains_blob_0
, LIBNDR_FLAG_REF_ALLOC
);
12627 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12629 return NDR_ERR_SUCCESS
;
12632 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomains
*r
)
12634 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomains");
12636 if (flags
& NDR_SET_VALUES
) {
12637 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12639 if (flags
& NDR_IN
) {
12640 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomains");
12642 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12644 if (r
->in
.server_name
) {
12645 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12650 if (flags
& NDR_OUT
) {
12651 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomains");
12653 ndr_print_ptr(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12655 ndr_print_netr_Blob(ndr
, "trusted_domains_blob", r
->out
.trusted_domains_blob
);
12657 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12663 static enum ndr_err_code
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
12665 if (flags
& NDR_IN
) {
12666 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
12667 if (r
->in
.server_unc
) {
12668 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12669 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12670 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
12671 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
));
12673 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
12674 if (r
->in
.domain_name
) {
12675 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12676 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12677 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
12678 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
));
12680 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
12681 if (r
->in
.domain_guid
) {
12682 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12684 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
12685 if (r
->in
.site_guid
) {
12686 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12688 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
12690 if (flags
& NDR_OUT
) {
12691 if (r
->out
.info
== NULL
) {
12692 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12694 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
12695 if (*r
->out
.info
) {
12696 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12698 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12700 return NDR_ERR_SUCCESS
;
12703 static enum ndr_err_code
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
12705 uint32_t _ptr_server_unc
;
12706 uint32_t _ptr_domain_name
;
12707 uint32_t _ptr_domain_guid
;
12708 uint32_t _ptr_site_guid
;
12709 uint32_t _ptr_info
;
12710 TALLOC_CTX
*_mem_save_server_unc_0
;
12711 TALLOC_CTX
*_mem_save_domain_name_0
;
12712 TALLOC_CTX
*_mem_save_domain_guid_0
;
12713 TALLOC_CTX
*_mem_save_site_guid_0
;
12714 TALLOC_CTX
*_mem_save_info_0
;
12715 TALLOC_CTX
*_mem_save_info_1
;
12716 if (flags
& NDR_IN
) {
12717 ZERO_STRUCT(r
->out
);
12719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
12720 if (_ptr_server_unc
) {
12721 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
12723 r
->in
.server_unc
= NULL
;
12725 if (r
->in
.server_unc
) {
12726 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12727 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
12728 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
12729 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
12730 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
12731 return 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
));
12733 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
12734 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
));
12735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
12737 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
12738 if (_ptr_domain_name
) {
12739 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
12741 r
->in
.domain_name
= NULL
;
12743 if (r
->in
.domain_name
) {
12744 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12745 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
12746 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
12747 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
12748 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
12749 return 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
));
12751 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
12752 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
));
12753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
12755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
12756 if (_ptr_domain_guid
) {
12757 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
12759 r
->in
.domain_guid
= NULL
;
12761 if (r
->in
.domain_guid
) {
12762 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12763 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
12764 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
12765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
12767 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
12768 if (_ptr_site_guid
) {
12769 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
12771 r
->in
.site_guid
= NULL
;
12773 if (r
->in
.site_guid
) {
12774 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12775 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
12776 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.site_guid
));
12777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
12779 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
12780 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12781 ZERO_STRUCTP(r
->out
.info
);
12783 if (flags
& NDR_OUT
) {
12784 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12785 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
12787 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12788 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
12789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12791 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
12793 *r
->out
.info
= NULL
;
12795 if (*r
->out
.info
) {
12796 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12797 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
12798 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
12799 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
12802 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12804 return NDR_ERR_SUCCESS
;
12807 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
12809 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
12811 if (flags
& NDR_SET_VALUES
) {
12812 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12814 if (flags
& NDR_IN
) {
12815 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
12817 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
12819 if (r
->in
.server_unc
) {
12820 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
12823 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
12825 if (r
->in
.domain_name
) {
12826 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
12829 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
12831 if (r
->in
.domain_guid
) {
12832 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
12835 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
12837 if (r
->in
.site_guid
) {
12838 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
12841 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
12844 if (flags
& NDR_OUT
) {
12845 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
12847 ndr_print_ptr(ndr
, "info", r
->out
.info
);
12849 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
12851 if (*r
->out
.info
) {
12852 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
12856 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12862 static enum ndr_err_code
ndr_push_netr_LogonGetCapabilities(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12864 if (flags
& NDR_IN
) {
12865 if (r
->in
.server_name
== NULL
) {
12866 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12868 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12869 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12870 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12871 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
));
12872 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12873 if (r
->in
.computer_name
) {
12874 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12875 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
12876 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12877 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
));
12879 if (r
->in
.credential
== NULL
) {
12880 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12882 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12883 if (r
->in
.return_authenticator
== NULL
) {
12884 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12886 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.query_level
));
12889 if (flags
& NDR_OUT
) {
12890 if (r
->out
.return_authenticator
== NULL
) {
12891 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12893 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12894 if (r
->out
.capabilities
== NULL
) {
12895 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12897 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12898 NDR_CHECK(ndr_push_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12899 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12901 return NDR_ERR_SUCCESS
;
12904 static enum ndr_err_code
ndr_pull_netr_LogonGetCapabilities(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetCapabilities
*r
)
12906 uint32_t _ptr_computer_name
;
12907 TALLOC_CTX
*_mem_save_computer_name_0
;
12908 TALLOC_CTX
*_mem_save_credential_0
;
12909 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12910 TALLOC_CTX
*_mem_save_capabilities_0
;
12911 if (flags
& NDR_IN
) {
12912 ZERO_STRUCT(r
->out
);
12914 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12915 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12916 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12917 return 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
));
12919 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12920 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
));
12921 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12922 if (_ptr_computer_name
) {
12923 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12925 r
->in
.computer_name
= NULL
;
12927 if (r
->in
.computer_name
) {
12928 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12929 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12930 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12931 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12932 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12933 return 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
));
12935 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12936 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
));
12937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12939 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12940 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12942 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12943 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
12944 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
12946 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12947 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12949 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12950 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12951 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12953 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.query_level
));
12954 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12955 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
12956 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12957 ZERO_STRUCTP(r
->out
.capabilities
);
12959 if (flags
& NDR_OUT
) {
12960 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12961 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12963 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12964 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
12965 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
12967 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12968 NDR_PULL_ALLOC(ndr
, r
->out
.capabilities
);
12970 _mem_save_capabilities_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12971 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.capabilities
, LIBNDR_FLAG_REF_ALLOC
);
12972 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
));
12973 NDR_CHECK(ndr_pull_netr_Capabilities(ndr
, NDR_SCALARS
, r
->out
.capabilities
));
12974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_capabilities_0
, LIBNDR_FLAG_REF_ALLOC
);
12975 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12977 return NDR_ERR_SUCCESS
;
12980 _PUBLIC_
void ndr_print_netr_LogonGetCapabilities(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetCapabilities
*r
)
12982 ndr_print_struct(ndr
, name
, "netr_LogonGetCapabilities");
12984 if (flags
& NDR_SET_VALUES
) {
12985 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12987 if (flags
& NDR_IN
) {
12988 ndr_print_struct(ndr
, "in", "netr_LogonGetCapabilities");
12990 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12992 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12994 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12996 if (r
->in
.computer_name
) {
12997 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13000 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
13002 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
13004 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13006 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13008 ndr_print_uint32(ndr
, "query_level", r
->in
.query_level
);
13011 if (flags
& NDR_OUT
) {
13012 ndr_print_struct(ndr
, "out", "netr_LogonGetCapabilities");
13014 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13016 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13018 ndr_print_ptr(ndr
, "capabilities", r
->out
.capabilities
);
13020 ndr_print_set_switch_value(ndr
, r
->out
.capabilities
, r
->in
.query_level
);
13021 ndr_print_netr_Capabilities(ndr
, "capabilities", r
->out
.capabilities
);
13023 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13029 static enum ndr_err_code
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
13031 if (flags
& NDR_IN
) {
13033 if (flags
& NDR_OUT
) {
13034 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13036 return NDR_ERR_SUCCESS
;
13039 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
13041 if (flags
& NDR_IN
) {
13043 if (flags
& NDR_OUT
) {
13044 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13046 return NDR_ERR_SUCCESS
;
13049 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
13051 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
13053 if (flags
& NDR_SET_VALUES
) {
13054 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13056 if (flags
& NDR_IN
) {
13057 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
13061 if (flags
& NDR_OUT
) {
13062 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
13064 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13070 static enum ndr_err_code
ndr_push_netr_LogonGetTrustRid(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13072 if (flags
& NDR_IN
) {
13073 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13074 if (r
->in
.server_name
) {
13075 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13076 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13077 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13078 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
));
13080 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13081 if (r
->in
.domain_name
) {
13082 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13083 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13084 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13085 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
));
13088 if (flags
& NDR_OUT
) {
13089 if (r
->out
.rid
== NULL
) {
13090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13093 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13095 return NDR_ERR_SUCCESS
;
13098 static enum ndr_err_code
ndr_pull_netr_LogonGetTrustRid(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetTrustRid
*r
)
13100 uint32_t _ptr_server_name
;
13101 uint32_t _ptr_domain_name
;
13102 TALLOC_CTX
*_mem_save_server_name_0
;
13103 TALLOC_CTX
*_mem_save_domain_name_0
;
13104 TALLOC_CTX
*_mem_save_rid_0
;
13105 if (flags
& NDR_IN
) {
13106 ZERO_STRUCT(r
->out
);
13108 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13109 if (_ptr_server_name
) {
13110 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13112 r
->in
.server_name
= NULL
;
13114 if (r
->in
.server_name
) {
13115 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13116 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13117 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13118 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13119 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13120 return 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
));
13122 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13123 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
));
13124 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13127 if (_ptr_domain_name
) {
13128 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13130 r
->in
.domain_name
= NULL
;
13132 if (r
->in
.domain_name
) {
13133 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13134 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13135 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13136 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13137 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13138 return 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
));
13140 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13141 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
));
13142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13144 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13145 ZERO_STRUCTP(r
->out
.rid
);
13147 if (flags
& NDR_OUT
) {
13148 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13149 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13151 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13152 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13155 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13157 return NDR_ERR_SUCCESS
;
13160 _PUBLIC_
void ndr_print_netr_LogonGetTrustRid(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetTrustRid
*r
)
13162 ndr_print_struct(ndr
, name
, "netr_LogonGetTrustRid");
13164 if (flags
& NDR_SET_VALUES
) {
13165 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13167 if (flags
& NDR_IN
) {
13168 ndr_print_struct(ndr
, "in", "netr_LogonGetTrustRid");
13170 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13172 if (r
->in
.server_name
) {
13173 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13176 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13178 if (r
->in
.domain_name
) {
13179 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13184 if (flags
& NDR_OUT
) {
13185 ndr_print_struct(ndr
, "out", "netr_LogonGetTrustRid");
13187 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13189 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13191 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13197 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13199 if (flags
& NDR_IN
) {
13201 if (flags
& NDR_OUT
) {
13202 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13204 return NDR_ERR_SUCCESS
;
13207 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13209 if (flags
& NDR_IN
) {
13211 if (flags
& NDR_OUT
) {
13212 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13214 return NDR_ERR_SUCCESS
;
13217 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
13219 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
13221 if (flags
& NDR_SET_VALUES
) {
13222 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13224 if (flags
& NDR_IN
) {
13225 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13229 if (flags
& NDR_OUT
) {
13230 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13232 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13238 static enum ndr_err_code
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13240 if (flags
& NDR_IN
) {
13242 if (flags
& NDR_OUT
) {
13243 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13245 return NDR_ERR_SUCCESS
;
13248 static enum ndr_err_code
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13250 if (flags
& NDR_IN
) {
13252 if (flags
& NDR_OUT
) {
13253 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13255 return NDR_ERR_SUCCESS
;
13258 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
13260 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13262 if (flags
& NDR_SET_VALUES
) {
13263 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13265 if (flags
& NDR_IN
) {
13266 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13270 if (flags
& NDR_OUT
) {
13271 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13273 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13279 _PUBLIC_
enum ndr_err_code
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13281 if (flags
& NDR_IN
) {
13282 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
13283 if (r
->in
.server_name
) {
13284 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13285 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13286 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13287 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
));
13289 if (r
->in
.account_name
== NULL
) {
13290 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13292 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13293 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13294 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
13295 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
));
13296 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
13297 if (r
->in
.computer_name
== NULL
) {
13298 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13301 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13302 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13303 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
));
13304 if (r
->in
.credentials
== NULL
) {
13305 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13307 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13308 if (r
->in
.negotiate_flags
== NULL
) {
13309 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13311 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
13313 if (flags
& NDR_OUT
) {
13314 if (r
->out
.return_credentials
== NULL
) {
13315 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13317 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13318 if (r
->out
.negotiate_flags
== NULL
) {
13319 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13321 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
13322 if (r
->out
.rid
== NULL
) {
13323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
13326 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13328 return NDR_ERR_SUCCESS
;
13331 _PUBLIC_
enum ndr_err_code
ndr_pull_netr_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
13333 uint32_t _ptr_server_name
;
13334 TALLOC_CTX
*_mem_save_server_name_0
;
13335 TALLOC_CTX
*_mem_save_credentials_0
;
13336 TALLOC_CTX
*_mem_save_return_credentials_0
;
13337 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
13338 TALLOC_CTX
*_mem_save_rid_0
;
13339 if (flags
& NDR_IN
) {
13340 ZERO_STRUCT(r
->out
);
13342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
13343 if (_ptr_server_name
) {
13344 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
13346 r
->in
.server_name
= NULL
;
13348 if (r
->in
.server_name
) {
13349 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13350 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
13351 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13352 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13353 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13354 return 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
));
13356 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13357 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
));
13358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
13360 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
13361 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
13362 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
13363 return 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
));
13365 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
13366 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
));
13367 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
13368 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13369 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13370 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13371 return 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
));
13373 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13374 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
));
13375 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13376 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
13378 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13379 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
13380 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
13381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13382 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13383 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
13385 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13386 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13387 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
13388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13389 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13390 ZERO_STRUCTP(r
->out
.return_credentials
);
13391 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13392 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
13393 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13394 ZERO_STRUCTP(r
->out
.rid
);
13396 if (flags
& NDR_OUT
) {
13397 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13398 NDR_PULL_ALLOC(ndr
, r
->out
.return_credentials
);
13400 _mem_save_return_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13401 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_credentials
, LIBNDR_FLAG_REF_ALLOC
);
13402 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.return_credentials
));
13403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
13404 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13405 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
13407 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13408 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
13409 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
13410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
13411 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13412 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
13414 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13415 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
13416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
13417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
13418 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13420 return NDR_ERR_SUCCESS
;
13423 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
13425 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
13427 if (flags
& NDR_SET_VALUES
) {
13428 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13430 if (flags
& NDR_IN
) {
13431 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
13433 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13435 if (r
->in
.server_name
) {
13436 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13439 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
13441 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
13443 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
13444 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13446 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13448 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
13450 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
13452 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
13454 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
13458 if (flags
& NDR_OUT
) {
13459 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
13461 ndr_print_ptr(ndr
, "return_credentials", r
->out
.return_credentials
);
13463 ndr_print_netr_Credential(ndr
, "return_credentials", r
->out
.return_credentials
);
13465 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
13467 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
13469 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
13471 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
13473 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13479 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13481 if (flags
& NDR_IN
) {
13482 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
13483 if (r
->in
.server_unc
) {
13484 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13485 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13486 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
13487 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
));
13489 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
13490 if (r
->in
.domain_name
) {
13491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13492 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13493 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
13494 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
));
13496 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
13497 if (r
->in
.domain_guid
) {
13498 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13500 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
13501 if (r
->in
.site_name
) {
13502 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13503 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13504 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
13505 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
));
13507 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
13509 if (flags
& NDR_OUT
) {
13510 if (r
->out
.info
== NULL
) {
13511 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13513 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
13514 if (*r
->out
.info
) {
13515 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13517 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13519 return NDR_ERR_SUCCESS
;
13522 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
13524 uint32_t _ptr_server_unc
;
13525 uint32_t _ptr_domain_name
;
13526 uint32_t _ptr_domain_guid
;
13527 uint32_t _ptr_site_name
;
13528 uint32_t _ptr_info
;
13529 TALLOC_CTX
*_mem_save_server_unc_0
;
13530 TALLOC_CTX
*_mem_save_domain_name_0
;
13531 TALLOC_CTX
*_mem_save_domain_guid_0
;
13532 TALLOC_CTX
*_mem_save_site_name_0
;
13533 TALLOC_CTX
*_mem_save_info_0
;
13534 TALLOC_CTX
*_mem_save_info_1
;
13535 if (flags
& NDR_IN
) {
13536 ZERO_STRUCT(r
->out
);
13538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
13539 if (_ptr_server_unc
) {
13540 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
13542 r
->in
.server_unc
= NULL
;
13544 if (r
->in
.server_unc
) {
13545 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13546 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
13547 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
13548 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
13549 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
13550 return 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
));
13552 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
13553 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
));
13554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
13556 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
13557 if (_ptr_domain_name
) {
13558 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
13560 r
->in
.domain_name
= NULL
;
13562 if (r
->in
.domain_name
) {
13563 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13564 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
13565 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
13566 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
13567 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
13568 return 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
));
13570 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
13571 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
));
13572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
13574 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
13575 if (_ptr_domain_guid
) {
13576 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
13578 r
->in
.domain_guid
= NULL
;
13580 if (r
->in
.domain_guid
) {
13581 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13582 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
13583 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
13584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
13586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
13587 if (_ptr_site_name
) {
13588 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
13590 r
->in
.site_name
= NULL
;
13592 if (r
->in
.site_name
) {
13593 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13594 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
13595 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
13596 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
13597 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
13598 return 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
));
13600 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
13601 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
));
13602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
13604 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
13605 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13606 ZERO_STRUCTP(r
->out
.info
);
13608 if (flags
& NDR_OUT
) {
13609 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13610 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13612 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13613 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13614 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
13616 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
13618 *r
->out
.info
= NULL
;
13620 if (*r
->out
.info
) {
13621 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13622 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
13623 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
13624 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
13626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13627 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13629 return NDR_ERR_SUCCESS
;
13632 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
13634 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
13636 if (flags
& NDR_SET_VALUES
) {
13637 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13639 if (flags
& NDR_IN
) {
13640 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
13642 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
13644 if (r
->in
.server_unc
) {
13645 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
13648 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
13650 if (r
->in
.domain_name
) {
13651 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
13654 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
13656 if (r
->in
.domain_guid
) {
13657 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
13660 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
13662 if (r
->in
.site_name
) {
13663 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
13666 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
13669 if (flags
& NDR_OUT
) {
13670 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
13672 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13674 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
13676 if (*r
->out
.info
) {
13677 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
13681 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13687 static enum ndr_err_code
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
13689 if (flags
& NDR_IN
) {
13690 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13691 if (r
->in
.computer_name
) {
13692 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13693 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13694 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13695 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
));
13698 if (flags
& NDR_OUT
) {
13699 if (r
->out
.site
== NULL
) {
13700 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13702 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.site
));
13703 if (*r
->out
.site
) {
13704 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13705 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13706 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
13707 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13709 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13711 return NDR_ERR_SUCCESS
;
13714 static enum ndr_err_code
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
13716 uint32_t _ptr_computer_name
;
13717 uint32_t _ptr_site
;
13718 TALLOC_CTX
*_mem_save_computer_name_0
;
13719 TALLOC_CTX
*_mem_save_site_0
;
13720 TALLOC_CTX
*_mem_save_site_1
;
13721 if (flags
& NDR_IN
) {
13722 ZERO_STRUCT(r
->out
);
13724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13725 if (_ptr_computer_name
) {
13726 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13728 r
->in
.computer_name
= NULL
;
13730 if (r
->in
.computer_name
) {
13731 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13732 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13733 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13734 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13735 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13736 return 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
));
13738 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13739 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
));
13740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13742 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13743 ZERO_STRUCTP(r
->out
.site
);
13745 if (flags
& NDR_OUT
) {
13746 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13747 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
13749 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13750 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
13751 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site
));
13753 NDR_PULL_ALLOC(ndr
, *r
->out
.site
);
13755 *r
->out
.site
= NULL
;
13757 if (*r
->out
.site
) {
13758 _mem_save_site_1
= NDR_PULL_GET_MEM_CTX(ndr
);
13759 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.site
, 0);
13760 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
13761 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
13762 if (ndr_get_array_length(ndr
, r
->out
.site
) > ndr_get_array_size(ndr
, r
->out
.site
)) {
13763 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
));
13765 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t)));
13766 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t), CH_UTF16
));
13767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_1
, 0);
13769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
13770 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13772 return NDR_ERR_SUCCESS
;
13775 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
13777 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
13779 if (flags
& NDR_SET_VALUES
) {
13780 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13782 if (flags
& NDR_IN
) {
13783 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
13785 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13787 if (r
->in
.computer_name
) {
13788 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13793 if (flags
& NDR_OUT
) {
13794 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
13796 ndr_print_ptr(ndr
, "site", r
->out
.site
);
13798 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
13800 if (*r
->out
.site
) {
13801 ndr_print_string(ndr
, "site", *r
->out
.site
);
13805 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13811 static enum ndr_err_code
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13813 if (flags
& NDR_IN
) {
13814 if (r
->in
.server_name
== NULL
) {
13815 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13817 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13818 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13819 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
13820 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
));
13821 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
13822 if (r
->in
.computer_name
) {
13823 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13824 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
13825 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
13826 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
));
13828 if (r
->in
.credential
== NULL
) {
13829 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13831 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13832 if (r
->in
.return_authenticator
== NULL
) {
13833 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13835 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
13837 if (r
->in
.query
== NULL
) {
13838 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13840 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13841 NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13843 if (flags
& NDR_OUT
) {
13844 if (r
->out
.return_authenticator
== NULL
) {
13845 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13847 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13848 if (r
->out
.info
== NULL
) {
13849 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13851 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13852 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13853 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
13855 return NDR_ERR_SUCCESS
;
13858 static enum ndr_err_code
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
13860 uint32_t _ptr_computer_name
;
13861 TALLOC_CTX
*_mem_save_computer_name_0
;
13862 TALLOC_CTX
*_mem_save_credential_0
;
13863 TALLOC_CTX
*_mem_save_return_authenticator_0
;
13864 TALLOC_CTX
*_mem_save_query_0
;
13865 TALLOC_CTX
*_mem_save_info_0
;
13866 if (flags
& NDR_IN
) {
13867 ZERO_STRUCT(r
->out
);
13869 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
13870 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
13871 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
13872 return 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
));
13874 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
13875 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
));
13876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
13877 if (_ptr_computer_name
) {
13878 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
13880 r
->in
.computer_name
= NULL
;
13882 if (r
->in
.computer_name
) {
13883 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13884 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
13885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
13886 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
13887 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
13888 return 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
));
13890 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
13891 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
));
13892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
13894 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13895 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
13897 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13898 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
13899 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
13900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
13901 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13902 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
13904 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13905 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13906 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
13907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13908 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13909 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13910 NDR_PULL_ALLOC(ndr
, r
->in
.query
);
13912 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13913 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.query
, LIBNDR_FLAG_REF_ALLOC
);
13914 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
));
13915 NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.query
));
13916 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
13917 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13918 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
13919 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13920 ZERO_STRUCTP(r
->out
.info
);
13922 if (flags
& NDR_OUT
) {
13923 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13924 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
13926 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13927 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
13928 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
13929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
13930 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13931 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13933 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13934 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13935 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
13936 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13938 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
13940 return NDR_ERR_SUCCESS
;
13943 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
13945 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
13947 if (flags
& NDR_SET_VALUES
) {
13948 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13950 if (flags
& NDR_IN
) {
13951 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
13953 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
13955 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
13957 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
13959 if (r
->in
.computer_name
) {
13960 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
13963 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
13965 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
13967 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13969 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
13971 ndr_print_uint32(ndr
, "level", r
->in
.level
);
13972 ndr_print_ptr(ndr
, "query", r
->in
.query
);
13974 ndr_print_set_switch_value(ndr
, r
->in
.query
, r
->in
.level
);
13975 ndr_print_netr_WorkstationInfo(ndr
, "query", r
->in
.query
);
13979 if (flags
& NDR_OUT
) {
13980 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
13982 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13984 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
13986 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13988 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
13989 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
13991 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
13997 static enum ndr_err_code
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
13999 if (flags
& NDR_IN
) {
14000 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14001 if (r
->in
.server_name
) {
14002 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14003 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14004 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14005 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
));
14007 if (r
->in
.account_name
== NULL
) {
14008 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14010 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14013 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
));
14014 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14015 if (r
->in
.computer_name
== NULL
) {
14016 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14018 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14019 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14020 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14021 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
));
14022 if (r
->in
.credential
== NULL
) {
14023 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14025 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14026 if (r
->in
.new_password
== NULL
) {
14027 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14029 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
14031 if (flags
& NDR_OUT
) {
14032 if (r
->out
.return_authenticator
== NULL
) {
14033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14035 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14036 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
14038 return NDR_ERR_SUCCESS
;
14041 static enum ndr_err_code
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
14043 uint32_t _ptr_server_name
;
14044 TALLOC_CTX
*_mem_save_server_name_0
;
14045 TALLOC_CTX
*_mem_save_credential_0
;
14046 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14047 TALLOC_CTX
*_mem_save_new_password_0
;
14048 if (flags
& NDR_IN
) {
14049 ZERO_STRUCT(r
->out
);
14051 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14052 if (_ptr_server_name
) {
14053 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14055 r
->in
.server_name
= NULL
;
14057 if (r
->in
.server_name
) {
14058 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14059 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14060 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14061 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14062 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14063 return 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
));
14065 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14066 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
));
14067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14069 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14070 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14071 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14072 return 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
));
14074 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14075 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
));
14076 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14077 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14078 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14079 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14080 return 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
));
14082 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14083 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
));
14084 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14085 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14087 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14088 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14089 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14091 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14092 NDR_PULL_ALLOC(ndr
, r
->in
.new_password
);
14094 _mem_save_new_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14095 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.new_password
, LIBNDR_FLAG_REF_ALLOC
);
14096 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, r
->in
.new_password
));
14097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14098 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14099 ZERO_STRUCTP(r
->out
.return_authenticator
);
14101 if (flags
& NDR_OUT
) {
14102 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14103 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14105 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14106 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14107 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14108 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14109 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
14111 return NDR_ERR_SUCCESS
;
14114 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
14116 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
14118 if (flags
& NDR_SET_VALUES
) {
14119 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14121 if (flags
& NDR_IN
) {
14122 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
14124 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14126 if (r
->in
.server_name
) {
14127 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14130 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14132 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14134 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14135 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14137 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14139 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14141 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14143 ndr_print_ptr(ndr
, "new_password", r
->in
.new_password
);
14145 ndr_print_netr_CryptPassword(ndr
, "new_password", r
->in
.new_password
);
14149 if (flags
& NDR_OUT
) {
14150 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
14152 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14154 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14156 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
14162 static enum ndr_err_code
ndr_push_netr_ServerPasswordGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordGet
*r
)
14164 if (flags
& NDR_IN
) {
14165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14166 if (r
->in
.server_name
) {
14167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14168 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14169 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14170 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
));
14172 if (r
->in
.account_name
== NULL
) {
14173 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14175 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14176 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14177 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
14178 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
));
14179 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
14180 if (r
->in
.computer_name
== NULL
) {
14181 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14183 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14184 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14185 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
14186 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
));
14187 if (r
->in
.credential
== NULL
) {
14188 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14190 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14192 if (flags
& NDR_OUT
) {
14193 if (r
->out
.return_authenticator
== NULL
) {
14194 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14196 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14197 if (r
->out
.password
== NULL
) {
14198 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14200 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14201 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14203 return NDR_ERR_SUCCESS
;
14206 static enum ndr_err_code
ndr_pull_netr_ServerPasswordGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordGet
*r
)
14208 uint32_t _ptr_server_name
;
14209 TALLOC_CTX
*_mem_save_server_name_0
;
14210 TALLOC_CTX
*_mem_save_credential_0
;
14211 TALLOC_CTX
*_mem_save_return_authenticator_0
;
14212 TALLOC_CTX
*_mem_save_password_0
;
14213 if (flags
& NDR_IN
) {
14214 ZERO_STRUCT(r
->out
);
14216 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14217 if (_ptr_server_name
) {
14218 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14220 r
->in
.server_name
= NULL
;
14222 if (r
->in
.server_name
) {
14223 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14224 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14225 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14226 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14227 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14228 return 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
));
14230 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14231 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
));
14232 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14234 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
14235 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
14236 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
14237 return 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
));
14239 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
14240 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
));
14241 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
14242 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
14243 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
14244 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
14245 return 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
));
14247 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
14248 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
));
14249 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14250 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
14252 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14253 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
14254 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
14255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
14256 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14257 ZERO_STRUCTP(r
->out
.return_authenticator
);
14258 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14259 ZERO_STRUCTP(r
->out
.password
);
14261 if (flags
& NDR_OUT
) {
14262 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14263 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
14265 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14266 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
14267 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
14268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
14269 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14270 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
14272 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14273 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
14274 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
14275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
14276 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14278 return NDR_ERR_SUCCESS
;
14281 _PUBLIC_
void ndr_print_netr_ServerPasswordGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordGet
*r
)
14283 ndr_print_struct(ndr
, name
, "netr_ServerPasswordGet");
14285 if (flags
& NDR_SET_VALUES
) {
14286 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14288 if (flags
& NDR_IN
) {
14289 ndr_print_struct(ndr
, "in", "netr_ServerPasswordGet");
14291 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14293 if (r
->in
.server_name
) {
14294 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14297 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
14299 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
14301 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
14302 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
14304 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
14306 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
14308 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
14312 if (flags
& NDR_OUT
) {
14313 ndr_print_struct(ndr
, "out", "netr_ServerPasswordGet");
14315 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14317 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
14319 ndr_print_ptr(ndr
, "password", r
->out
.password
);
14321 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
14323 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14329 static enum ndr_err_code
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14331 if (flags
& NDR_IN
) {
14333 if (flags
& NDR_OUT
) {
14334 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14336 return NDR_ERR_SUCCESS
;
14339 static enum ndr_err_code
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
14341 if (flags
& NDR_IN
) {
14343 if (flags
& NDR_OUT
) {
14344 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14346 return NDR_ERR_SUCCESS
;
14349 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
14351 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
14353 if (flags
& NDR_SET_VALUES
) {
14354 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14356 if (flags
& NDR_IN
) {
14357 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
14361 if (flags
& NDR_OUT
) {
14362 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
14364 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14370 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14372 uint32_t cntr_addresses_1
;
14373 if (flags
& NDR_IN
) {
14374 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14375 if (r
->in
.server_name
) {
14376 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14377 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14378 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14379 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
));
14381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14382 if (r
->in
.addresses
== NULL
) {
14383 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14385 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.count
));
14386 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14387 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14389 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14390 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14393 if (flags
& NDR_OUT
) {
14394 if (r
->out
.ctr
== NULL
) {
14395 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14397 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14399 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14401 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14403 return NDR_ERR_SUCCESS
;
14406 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesW
*r
)
14408 uint32_t _ptr_server_name
;
14409 uint32_t cntr_addresses_1
;
14411 TALLOC_CTX
*_mem_save_server_name_0
;
14412 TALLOC_CTX
*_mem_save_addresses_1
;
14413 TALLOC_CTX
*_mem_save_ctr_0
;
14414 TALLOC_CTX
*_mem_save_ctr_1
;
14415 if (flags
& NDR_IN
) {
14416 ZERO_STRUCT(r
->out
);
14418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14419 if (_ptr_server_name
) {
14420 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14422 r
->in
.server_name
= NULL
;
14424 if (r
->in
.server_name
) {
14425 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14426 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14427 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14428 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14429 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14430 return 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
));
14432 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14433 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
));
14434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14437 if (r
->in
.count
> 32000) {
14438 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14440 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14441 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14442 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14444 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14445 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14446 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14447 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14449 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14450 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14453 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14454 ZERO_STRUCTP(r
->out
.ctr
);
14455 if (r
->in
.addresses
) {
14456 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
14459 if (flags
& NDR_OUT
) {
14460 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14461 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14463 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14464 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14465 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
14467 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
14469 *r
->out
.ctr
= NULL
;
14472 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14473 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
14474 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
14477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14478 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14480 return NDR_ERR_SUCCESS
;
14483 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesW
*r
)
14485 uint32_t cntr_addresses_1
;
14486 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesW");
14488 if (flags
& NDR_SET_VALUES
) {
14489 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14491 if (flags
& NDR_IN
) {
14492 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesW");
14494 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14496 if (r
->in
.server_name
) {
14497 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14500 ndr_print_uint32(ndr
, "count", r
->in
.count
);
14501 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
14503 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
14505 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
14507 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
14508 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
14516 if (flags
& NDR_OUT
) {
14517 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesW");
14519 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14521 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
14524 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr
, "ctr", *r
->out
.ctr
);
14528 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14534 static enum ndr_err_code
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14536 if (flags
& NDR_IN
) {
14537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
14538 if (r
->in
.server_unc
) {
14539 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14540 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14541 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
14542 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
));
14544 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
14545 if (r
->in
.client_account
) {
14546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14548 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
14549 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
));
14551 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->in
.mask
));
14552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
14553 if (r
->in
.domain_name
) {
14554 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14555 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14556 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
14557 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
));
14559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
14560 if (r
->in
.domain_guid
) {
14561 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14563 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
14564 if (r
->in
.site_name
) {
14565 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14566 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14567 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
14568 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
));
14570 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, r
->in
.flags
));
14572 if (flags
& NDR_OUT
) {
14573 if (r
->out
.info
== NULL
) {
14574 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14576 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
14577 if (*r
->out
.info
) {
14578 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14580 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14582 return NDR_ERR_SUCCESS
;
14585 static enum ndr_err_code
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
14587 uint32_t _ptr_server_unc
;
14588 uint32_t _ptr_client_account
;
14589 uint32_t _ptr_domain_name
;
14590 uint32_t _ptr_domain_guid
;
14591 uint32_t _ptr_site_name
;
14592 uint32_t _ptr_info
;
14593 TALLOC_CTX
*_mem_save_server_unc_0
;
14594 TALLOC_CTX
*_mem_save_client_account_0
;
14595 TALLOC_CTX
*_mem_save_domain_name_0
;
14596 TALLOC_CTX
*_mem_save_domain_guid_0
;
14597 TALLOC_CTX
*_mem_save_site_name_0
;
14598 TALLOC_CTX
*_mem_save_info_0
;
14599 TALLOC_CTX
*_mem_save_info_1
;
14600 if (flags
& NDR_IN
) {
14601 ZERO_STRUCT(r
->out
);
14603 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
14604 if (_ptr_server_unc
) {
14605 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
14607 r
->in
.server_unc
= NULL
;
14609 if (r
->in
.server_unc
) {
14610 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14611 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
14612 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
14613 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
14614 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
14615 return 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
));
14617 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
14618 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
));
14619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
14621 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
14622 if (_ptr_client_account
) {
14623 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
14625 r
->in
.client_account
= NULL
;
14627 if (r
->in
.client_account
) {
14628 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14629 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
14630 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
14631 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
14632 if (ndr_get_array_length(ndr
, &r
->in
.client_account
) > ndr_get_array_size(ndr
, &r
->in
.client_account
)) {
14633 return 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
));
14635 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t)));
14636 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
));
14637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
14639 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->in
.mask
));
14640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
14641 if (_ptr_domain_name
) {
14642 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
14644 r
->in
.domain_name
= NULL
;
14646 if (r
->in
.domain_name
) {
14647 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14648 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
14649 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
14650 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
14651 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
14652 return 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
));
14654 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
14655 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
));
14656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
14658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
14659 if (_ptr_domain_guid
) {
14660 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
14662 r
->in
.domain_guid
= NULL
;
14664 if (r
->in
.domain_guid
) {
14665 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14666 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
14667 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
14668 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
14670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
14671 if (_ptr_site_name
) {
14672 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
14674 r
->in
.site_name
= NULL
;
14676 if (r
->in
.site_name
) {
14677 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14678 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
14679 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
14680 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
14681 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
14682 return 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
));
14684 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
14685 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
));
14686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
14688 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
14689 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14690 ZERO_STRUCTP(r
->out
.info
);
14692 if (flags
& NDR_OUT
) {
14693 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14694 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14696 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14697 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
14698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
14700 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
14702 *r
->out
.info
= NULL
;
14704 if (*r
->out
.info
) {
14705 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14706 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
14707 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
14708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
14710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14711 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14713 return NDR_ERR_SUCCESS
;
14716 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
14718 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
14720 if (flags
& NDR_SET_VALUES
) {
14721 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14723 if (flags
& NDR_IN
) {
14724 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
14726 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
14728 if (r
->in
.server_unc
) {
14729 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
14732 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
14734 if (r
->in
.client_account
) {
14735 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
14738 ndr_print_samr_AcctFlags(ndr
, "mask", r
->in
.mask
);
14739 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
14741 if (r
->in
.domain_name
) {
14742 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
14745 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
14747 if (r
->in
.domain_guid
) {
14748 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
14751 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
14753 if (r
->in
.site_name
) {
14754 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
14757 ndr_print_netr_DsRGetDCName_flags(ndr
, "flags", r
->in
.flags
);
14760 if (flags
& NDR_OUT
) {
14761 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
14763 ndr_print_ptr(ndr
, "info", r
->out
.info
);
14765 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
14767 if (*r
->out
.info
) {
14768 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", *r
->out
.info
);
14772 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14778 static enum ndr_err_code
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14780 if (flags
& NDR_IN
) {
14782 if (flags
& NDR_OUT
) {
14783 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14785 return NDR_ERR_SUCCESS
;
14788 static enum ndr_err_code
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14790 if (flags
& NDR_IN
) {
14792 if (flags
& NDR_OUT
) {
14793 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14795 return NDR_ERR_SUCCESS
;
14798 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
14800 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14802 if (flags
& NDR_SET_VALUES
) {
14803 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14805 if (flags
& NDR_IN
) {
14806 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14810 if (flags
& NDR_OUT
) {
14811 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14813 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14819 static enum ndr_err_code
ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push
*ndr
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14821 if (flags
& NDR_IN
) {
14822 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14823 if (r
->in
.server_name
) {
14824 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14825 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14826 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14827 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
));
14830 if (flags
& NDR_OUT
) {
14831 if (r
->out
.dom_trust_list
== NULL
) {
14832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14834 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14835 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14837 return NDR_ERR_SUCCESS
;
14840 static enum ndr_err_code
ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull
*ndr
, int flags
, struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14842 uint32_t _ptr_server_name
;
14843 TALLOC_CTX
*_mem_save_server_name_0
;
14844 TALLOC_CTX
*_mem_save_dom_trust_list_0
;
14845 if (flags
& NDR_IN
) {
14846 ZERO_STRUCT(r
->out
);
14848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14849 if (_ptr_server_name
) {
14850 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14852 r
->in
.server_name
= NULL
;
14854 if (r
->in
.server_name
) {
14855 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14856 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14857 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14858 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14859 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14860 return 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
));
14862 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14863 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
));
14864 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14866 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14867 ZERO_STRUCTP(r
->out
.dom_trust_list
);
14869 if (flags
& NDR_OUT
) {
14870 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14871 NDR_PULL_ALLOC(ndr
, r
->out
.dom_trust_list
);
14873 _mem_save_dom_trust_list_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14874 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dom_trust_list
, LIBNDR_FLAG_REF_ALLOC
);
14875 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.dom_trust_list
));
14876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dom_trust_list_0
, LIBNDR_FLAG_REF_ALLOC
);
14877 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14879 return NDR_ERR_SUCCESS
;
14882 _PUBLIC_
void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NetrEnumerateTrustedDomainsEx
*r
)
14884 ndr_print_struct(ndr
, name
, "netr_NetrEnumerateTrustedDomainsEx");
14886 if (flags
& NDR_SET_VALUES
) {
14887 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14889 if (flags
& NDR_IN
) {
14890 ndr_print_struct(ndr
, "in", "netr_NetrEnumerateTrustedDomainsEx");
14892 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
14894 if (r
->in
.server_name
) {
14895 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
14900 if (flags
& NDR_OUT
) {
14901 ndr_print_struct(ndr
, "out", "netr_NetrEnumerateTrustedDomainsEx");
14903 ndr_print_ptr(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14905 ndr_print_netr_DomainTrustList(ndr
, "dom_trust_list", r
->out
.dom_trust_list
);
14907 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14913 static enum ndr_err_code
ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push
*ndr
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
14915 uint32_t cntr_addresses_1
;
14916 if (flags
& NDR_IN
) {
14917 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
14918 if (r
->in
.server_name
) {
14919 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14920 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14921 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
14922 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
));
14924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
14925 if (r
->in
.addresses
== NULL
) {
14926 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14928 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.count
));
14929 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14930 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14932 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14933 NDR_CHECK(ndr_push_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14936 if (flags
& NDR_OUT
) {
14937 if (r
->out
.ctr
== NULL
) {
14938 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14940 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
14942 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
14944 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14946 return NDR_ERR_SUCCESS
;
14949 static enum ndr_err_code
ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull
*ndr
, int flags
, struct netr_DsRAddressToSitenamesExW
*r
)
14951 uint32_t _ptr_server_name
;
14952 uint32_t cntr_addresses_1
;
14954 TALLOC_CTX
*_mem_save_server_name_0
;
14955 TALLOC_CTX
*_mem_save_addresses_1
;
14956 TALLOC_CTX
*_mem_save_ctr_0
;
14957 TALLOC_CTX
*_mem_save_ctr_1
;
14958 if (flags
& NDR_IN
) {
14959 ZERO_STRUCT(r
->out
);
14961 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
14962 if (_ptr_server_name
) {
14963 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
14965 r
->in
.server_name
= NULL
;
14967 if (r
->in
.server_name
) {
14968 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14969 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
14970 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
14971 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
14972 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
14973 return 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
));
14975 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
14976 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
));
14977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
14979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
14980 if (r
->in
.count
> 32000) {
14981 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
14983 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.addresses
));
14984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14985 NDR_PULL_ALLOC_N(ndr
, r
->in
.addresses
, ndr_get_array_size(ndr
, &r
->in
.addresses
));
14987 _mem_save_addresses_1
= NDR_PULL_GET_MEM_CTX(ndr
);
14988 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.addresses
, 0);
14989 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14990 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_SCALARS
, &r
->in
.addresses
[cntr_addresses_1
]));
14992 for (cntr_addresses_1
= 0; cntr_addresses_1
< r
->in
.count
; cntr_addresses_1
++) {
14993 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr
, NDR_BUFFERS
, &r
->in
.addresses
[cntr_addresses_1
]));
14995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_addresses_1
, 0);
14996 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14997 ZERO_STRUCTP(r
->out
.ctr
);
14998 if (r
->in
.addresses
) {
14999 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.addresses
, r
->in
.count
));
15002 if (flags
& NDR_OUT
) {
15003 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15004 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15006 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15007 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
15008 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
15010 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
15012 *r
->out
.ctr
= NULL
;
15015 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15016 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
15017 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15018 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15021 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15023 return NDR_ERR_SUCCESS
;
15026 _PUBLIC_
void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRAddressToSitenamesExW
*r
)
15028 uint32_t cntr_addresses_1
;
15029 ndr_print_struct(ndr
, name
, "netr_DsRAddressToSitenamesExW");
15031 if (flags
& NDR_SET_VALUES
) {
15032 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15034 if (flags
& NDR_IN
) {
15035 ndr_print_struct(ndr
, "in", "netr_DsRAddressToSitenamesExW");
15037 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15039 if (r
->in
.server_name
) {
15040 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15043 ndr_print_uint32(ndr
, "count", r
->in
.count
);
15044 ndr_print_ptr(ndr
, "addresses", r
->in
.addresses
);
15046 ndr
->print(ndr
, "%s: ARRAY(%d)", "addresses", (int)r
->in
.count
);
15048 for (cntr_addresses_1
=0;cntr_addresses_1
<r
->in
.count
;cntr_addresses_1
++) {
15050 if (asprintf(&idx_1
, "[%d]", cntr_addresses_1
) != -1) {
15051 ndr_print_netr_DsRAddress(ndr
, "addresses", &r
->in
.addresses
[cntr_addresses_1
]);
15059 if (flags
& NDR_OUT
) {
15060 ndr_print_struct(ndr
, "out", "netr_DsRAddressToSitenamesExW");
15062 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15064 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15067 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr
, "ctr", *r
->out
.ctr
);
15071 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15077 static enum ndr_err_code
ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push
*ndr
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15079 if (flags
& NDR_IN
) {
15080 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15081 if (r
->in
.server_name
) {
15082 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15083 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15084 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15085 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
));
15088 if (flags
& NDR_OUT
) {
15089 if (r
->out
.ctr
== NULL
) {
15090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15092 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.ctr
));
15094 NDR_CHECK(ndr_push_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15096 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15098 return NDR_ERR_SUCCESS
;
15101 static enum ndr_err_code
ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull
*ndr
, int flags
, struct netr_DsrGetDcSiteCoverageW
*r
)
15103 uint32_t _ptr_server_name
;
15105 TALLOC_CTX
*_mem_save_server_name_0
;
15106 TALLOC_CTX
*_mem_save_ctr_0
;
15107 TALLOC_CTX
*_mem_save_ctr_1
;
15108 if (flags
& NDR_IN
) {
15109 ZERO_STRUCT(r
->out
);
15111 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15112 if (_ptr_server_name
) {
15113 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15115 r
->in
.server_name
= NULL
;
15117 if (r
->in
.server_name
) {
15118 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15119 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15120 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15121 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15122 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15123 return 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
));
15125 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15126 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
));
15127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15129 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15130 ZERO_STRUCTP(r
->out
.ctr
);
15132 if (flags
& NDR_OUT
) {
15133 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15134 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
15136 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15137 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
15138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
15140 NDR_PULL_ALLOC(ndr
, *r
->out
.ctr
);
15142 *r
->out
.ctr
= NULL
;
15145 _mem_save_ctr_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15146 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.ctr
, 0);
15147 NDR_CHECK(ndr_pull_DcSitesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.ctr
));
15148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_1
, 0);
15150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
15151 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15153 return NDR_ERR_SUCCESS
;
15156 _PUBLIC_
void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrGetDcSiteCoverageW
*r
)
15158 ndr_print_struct(ndr
, name
, "netr_DsrGetDcSiteCoverageW");
15160 if (flags
& NDR_SET_VALUES
) {
15161 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15163 if (flags
& NDR_IN
) {
15164 ndr_print_struct(ndr
, "in", "netr_DsrGetDcSiteCoverageW");
15166 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15168 if (r
->in
.server_name
) {
15169 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15174 if (flags
& NDR_OUT
) {
15175 ndr_print_struct(ndr
, "out", "netr_DsrGetDcSiteCoverageW");
15177 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15179 ndr_print_ptr(ndr
, "ctr", *r
->out
.ctr
);
15182 ndr_print_DcSitesCtr(ndr
, "ctr", *r
->out
.ctr
);
15186 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15192 static enum ndr_err_code
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15194 if (flags
& NDR_IN
) {
15195 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15196 if (r
->in
.server_name
) {
15197 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15198 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15199 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15200 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
));
15202 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
15203 if (r
->in
.computer_name
) {
15204 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15205 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15206 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15207 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
));
15209 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
15210 if (r
->in
.logon
== NULL
) {
15211 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15213 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15214 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15215 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
15216 if (r
->in
.flags
== NULL
) {
15217 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
15221 if (flags
& NDR_OUT
) {
15222 if (r
->out
.validation
== NULL
) {
15223 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15225 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15226 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15227 if (r
->out
.authoritative
== NULL
) {
15228 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15230 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
15231 if (r
->out
.flags
== NULL
) {
15232 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
15235 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15237 return NDR_ERR_SUCCESS
;
15240 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
15242 uint32_t _ptr_server_name
;
15243 uint32_t _ptr_computer_name
;
15244 TALLOC_CTX
*_mem_save_server_name_0
;
15245 TALLOC_CTX
*_mem_save_computer_name_0
;
15246 TALLOC_CTX
*_mem_save_logon_0
;
15247 TALLOC_CTX
*_mem_save_validation_0
;
15248 TALLOC_CTX
*_mem_save_authoritative_0
;
15249 TALLOC_CTX
*_mem_save_flags_0
;
15250 if (flags
& NDR_IN
) {
15251 ZERO_STRUCT(r
->out
);
15253 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15254 if (_ptr_server_name
) {
15255 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15257 r
->in
.server_name
= NULL
;
15259 if (r
->in
.server_name
) {
15260 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15261 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15262 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15263 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15264 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15265 return 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
));
15267 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15268 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
));
15269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15271 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
15272 if (_ptr_computer_name
) {
15273 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
15275 r
->in
.computer_name
= NULL
;
15277 if (r
->in
.computer_name
) {
15278 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15279 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
15280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15282 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15283 return 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
));
15285 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15286 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
));
15287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
15289 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
15290 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15291 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
15293 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15294 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
15295 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
15296 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
15297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
15298 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
15299 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15300 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
15302 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15303 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15306 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15307 ZERO_STRUCTP(r
->out
.validation
);
15308 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15309 ZERO_STRUCTP(r
->out
.authoritative
);
15310 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15311 *r
->out
.flags
= *r
->in
.flags
;
15313 if (flags
& NDR_OUT
) {
15314 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15315 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
15317 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15318 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
15319 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
15320 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
15321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
15322 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15323 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
15325 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15326 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
15327 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
15328 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
15329 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15330 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
15332 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15333 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
15334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
15335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
15336 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15338 return NDR_ERR_SUCCESS
;
15341 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
15343 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
15345 if (flags
& NDR_SET_VALUES
) {
15346 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15348 if (flags
& NDR_IN
) {
15349 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
15351 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15353 if (r
->in
.server_name
) {
15354 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15357 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15359 if (r
->in
.computer_name
) {
15360 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15363 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
15364 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
15366 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
15367 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
15369 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
15370 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
15372 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
15376 if (flags
& NDR_OUT
) {
15377 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
15379 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
15381 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
15382 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
15384 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
15386 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
15388 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
15390 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
15392 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15398 static enum ndr_err_code
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15400 if (flags
& NDR_IN
) {
15401 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15402 if (r
->in
.server_name
) {
15403 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15404 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15405 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15406 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
));
15408 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
15410 if (flags
& NDR_OUT
) {
15411 if (r
->out
.trusts
== NULL
) {
15412 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15414 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15415 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15417 return NDR_ERR_SUCCESS
;
15420 static enum ndr_err_code
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
15422 uint32_t _ptr_server_name
;
15423 TALLOC_CTX
*_mem_save_server_name_0
;
15424 TALLOC_CTX
*_mem_save_trusts_0
;
15425 if (flags
& NDR_IN
) {
15426 ZERO_STRUCT(r
->out
);
15428 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15429 if (_ptr_server_name
) {
15430 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15432 r
->in
.server_name
= NULL
;
15434 if (r
->in
.server_name
) {
15435 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15436 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15437 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15438 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15439 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15440 return 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
));
15442 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15443 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
));
15444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15446 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
15447 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15448 ZERO_STRUCTP(r
->out
.trusts
);
15450 if (flags
& NDR_OUT
) {
15451 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15452 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
);
15454 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15455 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, LIBNDR_FLAG_REF_ALLOC
);
15456 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
));
15457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, LIBNDR_FLAG_REF_ALLOC
);
15458 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15460 return NDR_ERR_SUCCESS
;
15463 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
15465 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
15467 if (flags
& NDR_SET_VALUES
) {
15468 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15470 if (flags
& NDR_IN
) {
15471 ndr_print_struct(ndr
, "in", "netr_DsrEnumerateDomainTrusts");
15473 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15475 if (r
->in
.server_name
) {
15476 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15479 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
15482 if (flags
& NDR_OUT
) {
15483 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
15485 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
15487 ndr_print_netr_DomainTrustList(ndr
, "trusts", r
->out
.trusts
);
15489 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15495 static enum ndr_err_code
ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push
*ndr
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15497 if (flags
& NDR_IN
) {
15498 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15499 if (r
->in
.server_name
) {
15500 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15502 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15503 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
));
15505 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain
));
15506 if (r
->in
.domain
) {
15507 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15508 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15509 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain
, CH_UTF16
)));
15510 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain
, ndr_charset_length(r
->in
.domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
15513 if (r
->in
.domain_guid
) {
15514 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.dsa_guid
));
15517 if (r
->in
.dsa_guid
) {
15518 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15520 if (r
->in
.dns_host
== NULL
) {
15521 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15523 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15524 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.dns_host
, CH_UTF16
)));
15526 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
));
15528 if (flags
& NDR_OUT
) {
15529 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15531 return NDR_ERR_SUCCESS
;
15534 static enum ndr_err_code
ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull
*ndr
, int flags
, struct netr_DsrDeregisterDNSHostRecords
*r
)
15536 uint32_t _ptr_server_name
;
15537 uint32_t _ptr_domain
;
15538 uint32_t _ptr_domain_guid
;
15539 uint32_t _ptr_dsa_guid
;
15540 TALLOC_CTX
*_mem_save_server_name_0
;
15541 TALLOC_CTX
*_mem_save_domain_0
;
15542 TALLOC_CTX
*_mem_save_domain_guid_0
;
15543 TALLOC_CTX
*_mem_save_dsa_guid_0
;
15544 if (flags
& NDR_IN
) {
15545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15546 if (_ptr_server_name
) {
15547 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15549 r
->in
.server_name
= NULL
;
15551 if (r
->in
.server_name
) {
15552 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15553 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15554 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15555 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15556 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15557 return 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
));
15559 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15560 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
));
15561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15563 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
15565 NDR_PULL_ALLOC(ndr
, r
->in
.domain
);
15567 r
->in
.domain
= NULL
;
15569 if (r
->in
.domain
) {
15570 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15571 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain
, 0);
15572 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain
));
15573 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain
));
15574 if (ndr_get_array_length(ndr
, &r
->in
.domain
) > ndr_get_array_size(ndr
, &r
->in
.domain
)) {
15575 return 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
));
15577 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t)));
15578 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain
, ndr_get_array_length(ndr
, &r
->in
.domain
), sizeof(uint16_t), CH_UTF16
));
15579 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
15581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
15582 if (_ptr_domain_guid
) {
15583 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
15585 r
->in
.domain_guid
= NULL
;
15587 if (r
->in
.domain_guid
) {
15588 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15589 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
15590 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.domain_guid
));
15591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
15593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_guid
));
15594 if (_ptr_dsa_guid
) {
15595 NDR_PULL_ALLOC(ndr
, r
->in
.dsa_guid
);
15597 r
->in
.dsa_guid
= NULL
;
15599 if (r
->in
.dsa_guid
) {
15600 _mem_save_dsa_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15601 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.dsa_guid
, 0);
15602 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.dsa_guid
));
15603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_guid_0
, 0);
15605 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.dns_host
));
15606 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.dns_host
));
15607 if (ndr_get_array_length(ndr
, &r
->in
.dns_host
) > ndr_get_array_size(ndr
, &r
->in
.dns_host
)) {
15608 return 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
));
15610 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.dns_host
), sizeof(uint16_t)));
15611 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
));
15613 if (flags
& NDR_OUT
) {
15614 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15616 return NDR_ERR_SUCCESS
;
15619 _PUBLIC_
void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrDeregisterDNSHostRecords
*r
)
15621 ndr_print_struct(ndr
, name
, "netr_DsrDeregisterDNSHostRecords");
15623 if (flags
& NDR_SET_VALUES
) {
15624 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15626 if (flags
& NDR_IN
) {
15627 ndr_print_struct(ndr
, "in", "netr_DsrDeregisterDNSHostRecords");
15629 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15631 if (r
->in
.server_name
) {
15632 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15635 ndr_print_ptr(ndr
, "domain", r
->in
.domain
);
15637 if (r
->in
.domain
) {
15638 ndr_print_string(ndr
, "domain", r
->in
.domain
);
15641 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
15643 if (r
->in
.domain_guid
) {
15644 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
15647 ndr_print_ptr(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15649 if (r
->in
.dsa_guid
) {
15650 ndr_print_GUID(ndr
, "dsa_guid", r
->in
.dsa_guid
);
15653 ndr_print_ptr(ndr
, "dns_host", r
->in
.dns_host
);
15655 ndr_print_string(ndr
, "dns_host", r
->in
.dns_host
);
15659 if (flags
& NDR_OUT
) {
15660 ndr_print_struct(ndr
, "out", "netr_DsrDeregisterDNSHostRecords");
15662 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15668 static enum ndr_err_code
ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15670 if (flags
& NDR_IN
) {
15671 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15672 if (r
->in
.server_name
) {
15673 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15674 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15675 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15676 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
));
15678 if (r
->in
.account_name
== NULL
) {
15679 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15681 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15682 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15683 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
15684 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
));
15685 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
15686 if (r
->in
.computer_name
== NULL
) {
15687 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15689 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15690 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15691 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
15692 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
));
15693 if (r
->in
.credential
== NULL
) {
15694 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15696 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15698 if (flags
& NDR_OUT
) {
15699 if (r
->out
.return_authenticator
== NULL
) {
15700 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15702 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15703 if (r
->out
.password
== NULL
) {
15704 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15706 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15707 if (r
->out
.password2
== NULL
) {
15708 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15710 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15711 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
15713 return NDR_ERR_SUCCESS
;
15716 static enum ndr_err_code
ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerTrustPasswordsGet
*r
)
15718 uint32_t _ptr_server_name
;
15719 TALLOC_CTX
*_mem_save_server_name_0
;
15720 TALLOC_CTX
*_mem_save_credential_0
;
15721 TALLOC_CTX
*_mem_save_return_authenticator_0
;
15722 TALLOC_CTX
*_mem_save_password_0
;
15723 TALLOC_CTX
*_mem_save_password2_0
;
15724 if (flags
& NDR_IN
) {
15725 ZERO_STRUCT(r
->out
);
15727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15728 if (_ptr_server_name
) {
15729 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15731 r
->in
.server_name
= NULL
;
15733 if (r
->in
.server_name
) {
15734 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15735 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15736 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15737 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15738 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15739 return 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
));
15741 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15742 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
));
15743 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15745 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
15746 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
15747 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
15748 return 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
));
15750 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
15751 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
));
15752 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
15753 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
15754 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
15755 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
15756 return 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
));
15758 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
15759 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
));
15760 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15761 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
15763 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15764 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
15765 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
15766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
15767 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15768 ZERO_STRUCTP(r
->out
.return_authenticator
);
15769 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15770 ZERO_STRUCTP(r
->out
.password
);
15771 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15772 ZERO_STRUCTP(r
->out
.password2
);
15774 if (flags
& NDR_OUT
) {
15775 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15776 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
15778 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15779 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
15780 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
15781 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
15782 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15783 NDR_PULL_ALLOC(ndr
, r
->out
.password
);
15785 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15786 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password
, LIBNDR_FLAG_REF_ALLOC
);
15787 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password
));
15788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, LIBNDR_FLAG_REF_ALLOC
);
15789 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15790 NDR_PULL_ALLOC(ndr
, r
->out
.password2
);
15792 _mem_save_password2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15793 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.password2
, LIBNDR_FLAG_REF_ALLOC
);
15794 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.password2
));
15795 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password2_0
, LIBNDR_FLAG_REF_ALLOC
);
15796 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
15798 return NDR_ERR_SUCCESS
;
15801 _PUBLIC_
void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerTrustPasswordsGet
*r
)
15803 ndr_print_struct(ndr
, name
, "netr_ServerTrustPasswordsGet");
15805 if (flags
& NDR_SET_VALUES
) {
15806 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15808 if (flags
& NDR_IN
) {
15809 ndr_print_struct(ndr
, "in", "netr_ServerTrustPasswordsGet");
15811 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15813 if (r
->in
.server_name
) {
15814 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15817 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
15819 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
15821 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
15822 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
15824 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
15826 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
15828 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
15832 if (flags
& NDR_OUT
) {
15833 ndr_print_struct(ndr
, "out", "netr_ServerTrustPasswordsGet");
15835 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15837 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
15839 ndr_print_ptr(ndr
, "password", r
->out
.password
);
15841 ndr_print_samr_Password(ndr
, "password", r
->out
.password
);
15843 ndr_print_ptr(ndr
, "password2", r
->out
.password2
);
15845 ndr_print_samr_Password(ndr
, "password2", r
->out
.password2
);
15847 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
15853 static enum ndr_err_code
ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15855 if (flags
& NDR_IN
) {
15856 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
15857 if (r
->in
.server_name
) {
15858 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15859 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15860 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
15861 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
));
15863 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.trusted_domain_name
));
15864 if (r
->in
.trusted_domain_name
) {
15865 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15866 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15867 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
15868 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
));
15870 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
15872 if (flags
& NDR_OUT
) {
15873 if (r
->out
.forest_trust_info
== NULL
) {
15874 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
15876 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
15877 if (*r
->out
.forest_trust_info
) {
15878 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15880 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
15882 return NDR_ERR_SUCCESS
;
15885 static enum ndr_err_code
ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetForestTrustInformation
*r
)
15887 uint32_t _ptr_server_name
;
15888 uint32_t _ptr_trusted_domain_name
;
15889 uint32_t _ptr_forest_trust_info
;
15890 TALLOC_CTX
*_mem_save_server_name_0
;
15891 TALLOC_CTX
*_mem_save_trusted_domain_name_0
;
15892 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
15893 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
15894 if (flags
& NDR_IN
) {
15895 ZERO_STRUCT(r
->out
);
15897 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
15898 if (_ptr_server_name
) {
15899 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
15901 r
->in
.server_name
= NULL
;
15903 if (r
->in
.server_name
) {
15904 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15905 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
15906 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
15907 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
15908 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
15909 return 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
));
15911 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
15912 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
));
15913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
15915 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain_name
));
15916 if (_ptr_trusted_domain_name
) {
15917 NDR_PULL_ALLOC(ndr
, r
->in
.trusted_domain_name
);
15919 r
->in
.trusted_domain_name
= NULL
;
15921 if (r
->in
.trusted_domain_name
) {
15922 _mem_save_trusted_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15923 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.trusted_domain_name
, 0);
15924 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
15925 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
15926 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
15927 return 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
));
15929 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
15930 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
));
15931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_name_0
, 0);
15933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
15934 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15935 ZERO_STRUCTP(r
->out
.forest_trust_info
);
15937 if (flags
& NDR_OUT
) {
15938 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
15939 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
15941 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15942 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
15943 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
15944 if (_ptr_forest_trust_info
) {
15945 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
15947 *r
->out
.forest_trust_info
= NULL
;
15949 if (*r
->out
.forest_trust_info
) {
15950 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15951 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
15952 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
15953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
15955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
15956 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
15958 return NDR_ERR_SUCCESS
;
15961 _PUBLIC_
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetForestTrustInformation
*r
)
15963 ndr_print_struct(ndr
, name
, "netr_DsRGetForestTrustInformation");
15965 if (flags
& NDR_SET_VALUES
) {
15966 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
15968 if (flags
& NDR_IN
) {
15969 ndr_print_struct(ndr
, "in", "netr_DsRGetForestTrustInformation");
15971 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
15973 if (r
->in
.server_name
) {
15974 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
15977 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15979 if (r
->in
.trusted_domain_name
) {
15980 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
15983 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
15986 if (flags
& NDR_OUT
) {
15987 ndr_print_struct(ndr
, "out", "netr_DsRGetForestTrustInformation");
15989 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
15991 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15993 if (*r
->out
.forest_trust_info
) {
15994 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
15998 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16004 static enum ndr_err_code
ndr_push_netr_GetForestTrustInformation(struct ndr_push
*ndr
, int flags
, const struct netr_GetForestTrustInformation
*r
)
16006 if (flags
& NDR_IN
) {
16007 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16008 if (r
->in
.server_name
) {
16009 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16010 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16012 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
));
16014 if (r
->in
.trusted_domain_name
== NULL
) {
16015 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16017 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
16018 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16019 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.trusted_domain_name
, CH_UTF16
)));
16020 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
));
16021 if (r
->in
.credential
== NULL
) {
16022 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16024 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16027 if (flags
& NDR_OUT
) {
16028 if (r
->out
.return_authenticator
== NULL
) {
16029 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16031 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16032 if (r
->out
.forest_trust_info
== NULL
) {
16033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16035 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.forest_trust_info
));
16036 if (*r
->out
.forest_trust_info
) {
16037 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16039 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
16041 return NDR_ERR_SUCCESS
;
16044 static enum ndr_err_code
ndr_pull_netr_GetForestTrustInformation(struct ndr_pull
*ndr
, int flags
, struct netr_GetForestTrustInformation
*r
)
16046 uint32_t _ptr_server_name
;
16047 uint32_t _ptr_forest_trust_info
;
16048 TALLOC_CTX
*_mem_save_server_name_0
;
16049 TALLOC_CTX
*_mem_save_credential_0
;
16050 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16051 TALLOC_CTX
*_mem_save_forest_trust_info_0
;
16052 TALLOC_CTX
*_mem_save_forest_trust_info_1
;
16053 if (flags
& NDR_IN
) {
16054 ZERO_STRUCT(r
->out
);
16056 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16057 if (_ptr_server_name
) {
16058 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16060 r
->in
.server_name
= NULL
;
16062 if (r
->in
.server_name
) {
16063 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16064 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16065 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16066 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16067 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16068 return 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
));
16070 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16071 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
));
16072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16074 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.trusted_domain_name
));
16075 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.trusted_domain_name
));
16076 if (ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
) > ndr_get_array_size(ndr
, &r
->in
.trusted_domain_name
)) {
16077 return 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
));
16079 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.trusted_domain_name
), sizeof(uint16_t)));
16080 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
));
16081 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16082 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16084 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16085 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16086 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16087 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16088 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
16089 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16090 ZERO_STRUCTP(r
->out
.return_authenticator
);
16091 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16092 ZERO_STRUCTP(r
->out
.forest_trust_info
);
16094 if (flags
& NDR_OUT
) {
16095 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16096 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16098 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16099 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16100 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16102 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16103 NDR_PULL_ALLOC(ndr
, r
->out
.forest_trust_info
);
16105 _mem_save_forest_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16106 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.forest_trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_trust_info
));
16108 if (_ptr_forest_trust_info
) {
16109 NDR_PULL_ALLOC(ndr
, *r
->out
.forest_trust_info
);
16111 *r
->out
.forest_trust_info
= NULL
;
16113 if (*r
->out
.forest_trust_info
) {
16114 _mem_save_forest_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16115 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.forest_trust_info
, 0);
16116 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.forest_trust_info
));
16117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_1
, 0);
16119 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16120 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
16122 return NDR_ERR_SUCCESS
;
16125 _PUBLIC_
void ndr_print_netr_GetForestTrustInformation(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetForestTrustInformation
*r
)
16127 ndr_print_struct(ndr
, name
, "netr_GetForestTrustInformation");
16129 if (flags
& NDR_SET_VALUES
) {
16130 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16132 if (flags
& NDR_IN
) {
16133 ndr_print_struct(ndr
, "in", "netr_GetForestTrustInformation");
16135 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16137 if (r
->in
.server_name
) {
16138 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16141 ndr_print_ptr(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16143 ndr_print_string(ndr
, "trusted_domain_name", r
->in
.trusted_domain_name
);
16145 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16147 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16149 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
16152 if (flags
& NDR_OUT
) {
16153 ndr_print_struct(ndr
, "out", "netr_GetForestTrustInformation");
16155 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16157 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16159 ndr_print_ptr(ndr
, "forest_trust_info", r
->out
.forest_trust_info
);
16161 ndr_print_ptr(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16163 if (*r
->out
.forest_trust_info
) {
16164 ndr_print_lsa_ForestTrustInformation(ndr
, "forest_trust_info", *r
->out
.forest_trust_info
);
16168 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16174 static enum ndr_err_code
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16176 if (flags
& NDR_IN
) {
16177 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16178 if (r
->in
.server_name
) {
16179 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16180 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16181 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16182 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
));
16184 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
16185 if (r
->in
.computer_name
) {
16186 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16187 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16188 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16189 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
));
16191 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
16192 if (r
->in
.credential
) {
16193 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16195 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
16196 if (r
->in
.return_authenticator
) {
16197 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16199 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
16200 if (r
->in
.logon
== NULL
) {
16201 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16203 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16204 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16205 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
16206 if (r
->in
.flags
== NULL
) {
16207 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
16211 if (flags
& NDR_OUT
) {
16212 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
16213 if (r
->out
.return_authenticator
) {
16214 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16216 if (r
->out
.validation
== NULL
) {
16217 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16219 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16220 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16221 if (r
->out
.authoritative
== NULL
) {
16222 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16224 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
16225 if (r
->out
.flags
== NULL
) {
16226 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
16229 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16231 return NDR_ERR_SUCCESS
;
16234 static enum ndr_err_code
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
16236 uint32_t _ptr_server_name
;
16237 uint32_t _ptr_computer_name
;
16238 uint32_t _ptr_credential
;
16239 uint32_t _ptr_return_authenticator
;
16240 TALLOC_CTX
*_mem_save_server_name_0
;
16241 TALLOC_CTX
*_mem_save_computer_name_0
;
16242 TALLOC_CTX
*_mem_save_credential_0
;
16243 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16244 TALLOC_CTX
*_mem_save_logon_0
;
16245 TALLOC_CTX
*_mem_save_validation_0
;
16246 TALLOC_CTX
*_mem_save_authoritative_0
;
16247 TALLOC_CTX
*_mem_save_flags_0
;
16248 if (flags
& NDR_IN
) {
16249 ZERO_STRUCT(r
->out
);
16251 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16252 if (_ptr_server_name
) {
16253 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16255 r
->in
.server_name
= NULL
;
16257 if (r
->in
.server_name
) {
16258 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16259 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16260 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16261 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16262 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16263 return 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
));
16265 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16266 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
));
16267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16269 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
16270 if (_ptr_computer_name
) {
16271 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
16273 r
->in
.computer_name
= NULL
;
16275 if (r
->in
.computer_name
) {
16276 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16277 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
16278 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16279 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16280 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16281 return 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
));
16283 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16284 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
));
16285 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
16287 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
16288 if (_ptr_credential
) {
16289 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16291 r
->in
.credential
= NULL
;
16293 if (r
->in
.credential
) {
16294 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16295 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
16296 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
16299 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16300 if (_ptr_return_authenticator
) {
16301 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
16303 r
->in
.return_authenticator
= NULL
;
16305 if (r
->in
.return_authenticator
) {
16306 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16307 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
16308 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
16309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16311 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
16312 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16313 NDR_PULL_ALLOC(ndr
, r
->in
.logon
);
16315 _mem_save_logon_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16316 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon
, LIBNDR_FLAG_REF_ALLOC
);
16317 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
));
16318 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.logon
));
16319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_0
, LIBNDR_FLAG_REF_ALLOC
);
16320 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
16321 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16322 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
16324 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16325 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
16327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16328 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16329 ZERO_STRUCTP(r
->out
.validation
);
16330 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16331 ZERO_STRUCTP(r
->out
.authoritative
);
16332 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16333 *r
->out
.flags
= *r
->in
.flags
;
16335 if (flags
& NDR_OUT
) {
16336 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
16337 if (_ptr_return_authenticator
) {
16338 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16340 r
->out
.return_authenticator
= NULL
;
16342 if (r
->out
.return_authenticator
) {
16343 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16344 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
16345 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
16348 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16349 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
16351 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16352 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
16353 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
16354 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
16355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
16356 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16357 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
16359 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16360 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
16361 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
16362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
16363 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16364 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
16366 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16367 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
16368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
16369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
16370 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16372 return NDR_ERR_SUCCESS
;
16375 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
16377 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
16379 if (flags
& NDR_SET_VALUES
) {
16380 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16382 if (flags
& NDR_IN
) {
16383 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
16385 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16387 if (r
->in
.server_name
) {
16388 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16391 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16393 if (r
->in
.computer_name
) {
16394 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16397 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16399 if (r
->in
.credential
) {
16400 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16403 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16405 if (r
->in
.return_authenticator
) {
16406 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
16409 ndr_print_netr_LogonInfoClass(ndr
, "logon_level", r
->in
.logon_level
);
16410 ndr_print_ptr(ndr
, "logon", r
->in
.logon
);
16412 ndr_print_set_switch_value(ndr
, r
->in
.logon
, r
->in
.logon_level
);
16413 ndr_print_netr_LogonLevel(ndr
, "logon", r
->in
.logon
);
16415 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
16416 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
16418 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
16422 if (flags
& NDR_OUT
) {
16423 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
16425 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16427 if (r
->out
.return_authenticator
) {
16428 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16431 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
16433 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
16434 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
16436 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
16438 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
16440 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
16442 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
16444 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16450 static enum ndr_err_code
ndr_push_netr_ServerGetTrustInfo(struct ndr_push
*ndr
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16452 if (flags
& NDR_IN
) {
16453 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
16454 if (r
->in
.server_name
) {
16455 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16456 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16457 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
16458 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
));
16460 if (r
->in
.account_name
== NULL
) {
16461 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16463 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16464 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16465 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
16466 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
));
16467 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
16468 if (r
->in
.computer_name
== NULL
) {
16469 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16471 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16472 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16473 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
16474 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
));
16475 if (r
->in
.credential
== NULL
) {
16476 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16478 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16480 if (flags
& NDR_OUT
) {
16481 if (r
->out
.return_authenticator
== NULL
) {
16482 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16484 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16485 if (r
->out
.new_owf_password
== NULL
) {
16486 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16488 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16489 if (r
->out
.old_owf_password
== NULL
) {
16490 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16492 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16493 if (r
->out
.trust_info
== NULL
) {
16494 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16496 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.trust_info
));
16497 if (*r
->out
.trust_info
) {
16498 NDR_CHECK(ndr_push_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16500 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
16502 return NDR_ERR_SUCCESS
;
16505 static enum ndr_err_code
ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull
*ndr
, int flags
, struct netr_ServerGetTrustInfo
*r
)
16507 uint32_t _ptr_server_name
;
16508 uint32_t _ptr_trust_info
;
16509 TALLOC_CTX
*_mem_save_server_name_0
;
16510 TALLOC_CTX
*_mem_save_credential_0
;
16511 TALLOC_CTX
*_mem_save_return_authenticator_0
;
16512 TALLOC_CTX
*_mem_save_new_owf_password_0
;
16513 TALLOC_CTX
*_mem_save_old_owf_password_0
;
16514 TALLOC_CTX
*_mem_save_trust_info_0
;
16515 TALLOC_CTX
*_mem_save_trust_info_1
;
16516 if (flags
& NDR_IN
) {
16517 ZERO_STRUCT(r
->out
);
16519 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
16520 if (_ptr_server_name
) {
16521 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
16523 r
->in
.server_name
= NULL
;
16525 if (r
->in
.server_name
) {
16526 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16527 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
16528 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
16529 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
16530 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
16531 return 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
));
16533 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
16534 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
));
16535 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
16537 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
16538 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
16539 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
16540 return 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
));
16542 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
16543 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
));
16544 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
16545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
16546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
16547 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
16548 return 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
));
16550 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
16551 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
));
16552 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16553 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
16555 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16556 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
16557 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
16558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
16559 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16560 ZERO_STRUCTP(r
->out
.return_authenticator
);
16561 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16562 ZERO_STRUCTP(r
->out
.new_owf_password
);
16563 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16564 ZERO_STRUCTP(r
->out
.old_owf_password
);
16565 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16566 ZERO_STRUCTP(r
->out
.trust_info
);
16568 if (flags
& NDR_OUT
) {
16569 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16570 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
16572 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16573 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
16574 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
16575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
16576 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16577 NDR_PULL_ALLOC(ndr
, r
->out
.new_owf_password
);
16579 _mem_save_new_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16580 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.new_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16581 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.new_owf_password
));
16582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_new_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16583 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16584 NDR_PULL_ALLOC(ndr
, r
->out
.old_owf_password
);
16586 _mem_save_old_owf_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16587 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.old_owf_password
, LIBNDR_FLAG_REF_ALLOC
);
16588 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, r
->out
.old_owf_password
));
16589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_old_owf_password_0
, LIBNDR_FLAG_REF_ALLOC
);
16590 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16591 NDR_PULL_ALLOC(ndr
, r
->out
.trust_info
);
16593 _mem_save_trust_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16594 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trust_info
, LIBNDR_FLAG_REF_ALLOC
);
16595 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trust_info
));
16596 if (_ptr_trust_info
) {
16597 NDR_PULL_ALLOC(ndr
, *r
->out
.trust_info
);
16599 *r
->out
.trust_info
= NULL
;
16601 if (*r
->out
.trust_info
) {
16602 _mem_save_trust_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16603 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.trust_info
, 0);
16604 NDR_CHECK(ndr_pull_netr_TrustInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.trust_info
));
16605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_1
, 0);
16607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trust_info_0
, LIBNDR_FLAG_REF_ALLOC
);
16608 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
16610 return NDR_ERR_SUCCESS
;
16613 _PUBLIC_
void ndr_print_netr_ServerGetTrustInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerGetTrustInfo
*r
)
16615 ndr_print_struct(ndr
, name
, "netr_ServerGetTrustInfo");
16617 if (flags
& NDR_SET_VALUES
) {
16618 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16620 if (flags
& NDR_IN
) {
16621 ndr_print_struct(ndr
, "in", "netr_ServerGetTrustInfo");
16623 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
16625 if (r
->in
.server_name
) {
16626 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
16629 ndr_print_ptr(ndr
, "account_name", r
->in
.account_name
);
16631 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
16633 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
16634 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
16636 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
16638 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
16640 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
16644 if (flags
& NDR_OUT
) {
16645 ndr_print_struct(ndr
, "out", "netr_ServerGetTrustInfo");
16647 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16649 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
16651 ndr_print_ptr(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16653 ndr_print_samr_Password(ndr
, "new_owf_password", r
->out
.new_owf_password
);
16655 ndr_print_ptr(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16657 ndr_print_samr_Password(ndr
, "old_owf_password", r
->out
.old_owf_password
);
16659 ndr_print_ptr(ndr
, "trust_info", r
->out
.trust_info
);
16661 ndr_print_ptr(ndr
, "trust_info", *r
->out
.trust_info
);
16663 if (*r
->out
.trust_info
) {
16664 ndr_print_netr_TrustInfo(ndr
, "trust_info", *r
->out
.trust_info
);
16668 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
16674 static const struct ndr_interface_call netlogon_calls
[] = {
16676 "netr_LogonUasLogon",
16677 sizeof(struct netr_LogonUasLogon
),
16678 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
16679 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
16680 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
16684 "netr_LogonUasLogoff",
16685 sizeof(struct netr_LogonUasLogoff
),
16686 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
16687 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
16688 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
16692 "netr_LogonSamLogon",
16693 sizeof(struct netr_LogonSamLogon
),
16694 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
16695 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
16696 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
16700 "netr_LogonSamLogoff",
16701 sizeof(struct netr_LogonSamLogoff
),
16702 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
16703 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
16704 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
16708 "netr_ServerReqChallenge",
16709 sizeof(struct netr_ServerReqChallenge
),
16710 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
16711 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
16712 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
16716 "netr_ServerAuthenticate",
16717 sizeof(struct netr_ServerAuthenticate
),
16718 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
16719 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
16720 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
16724 "netr_ServerPasswordSet",
16725 sizeof(struct netr_ServerPasswordSet
),
16726 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
16727 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
16728 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
16732 "netr_DatabaseDeltas",
16733 sizeof(struct netr_DatabaseDeltas
),
16734 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
16735 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
16736 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
16740 "netr_DatabaseSync",
16741 sizeof(struct netr_DatabaseSync
),
16742 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
16743 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
16744 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
16748 "netr_AccountDeltas",
16749 sizeof(struct netr_AccountDeltas
),
16750 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
16751 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
16752 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
16756 "netr_AccountSync",
16757 sizeof(struct netr_AccountSync
),
16758 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
16759 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
16760 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
16765 sizeof(struct netr_GetDcName
),
16766 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
16767 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
16768 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
16772 "netr_LogonControl",
16773 sizeof(struct netr_LogonControl
),
16774 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
16775 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
16776 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
16780 "netr_GetAnyDCName",
16781 sizeof(struct netr_GetAnyDCName
),
16782 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
16783 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
16784 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
16788 "netr_LogonControl2",
16789 sizeof(struct netr_LogonControl2
),
16790 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
16791 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
16792 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
16796 "netr_ServerAuthenticate2",
16797 sizeof(struct netr_ServerAuthenticate2
),
16798 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
16799 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
16800 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
16804 "netr_DatabaseSync2",
16805 sizeof(struct netr_DatabaseSync2
),
16806 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
16807 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
16808 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
16812 "netr_DatabaseRedo",
16813 sizeof(struct netr_DatabaseRedo
),
16814 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
16815 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
16816 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
16820 "netr_LogonControl2Ex",
16821 sizeof(struct netr_LogonControl2Ex
),
16822 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
16823 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
16824 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
16828 "netr_NetrEnumerateTrustedDomains",
16829 sizeof(struct netr_NetrEnumerateTrustedDomains
),
16830 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomains
,
16831 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomains
,
16832 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomains
,
16836 "netr_DsRGetDCName",
16837 sizeof(struct netr_DsRGetDCName
),
16838 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
16839 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
16840 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
16844 "netr_LogonGetCapabilities",
16845 sizeof(struct netr_LogonGetCapabilities
),
16846 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetCapabilities
,
16847 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetCapabilities
,
16848 (ndr_print_function_t
) ndr_print_netr_LogonGetCapabilities
,
16852 "netr_NETRLOGONSETSERVICEBITS",
16853 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
16854 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
16855 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
16856 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
16860 "netr_LogonGetTrustRid",
16861 sizeof(struct netr_LogonGetTrustRid
),
16862 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetTrustRid
,
16863 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetTrustRid
,
16864 (ndr_print_function_t
) ndr_print_netr_LogonGetTrustRid
,
16868 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16869 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
16870 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16871 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16872 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
16876 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16877 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
16878 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16879 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16880 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
16884 "netr_ServerAuthenticate3",
16885 sizeof(struct netr_ServerAuthenticate3
),
16886 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
16887 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
16888 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
16892 "netr_DsRGetDCNameEx",
16893 sizeof(struct netr_DsRGetDCNameEx
),
16894 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
16895 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
16896 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
16900 "netr_DsRGetSiteName",
16901 sizeof(struct netr_DsRGetSiteName
),
16902 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
16903 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
16904 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
16908 "netr_LogonGetDomainInfo",
16909 sizeof(struct netr_LogonGetDomainInfo
),
16910 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
16911 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
16912 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
16916 "netr_ServerPasswordSet2",
16917 sizeof(struct netr_ServerPasswordSet2
),
16918 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
16919 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
16920 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
16924 "netr_ServerPasswordGet",
16925 sizeof(struct netr_ServerPasswordGet
),
16926 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordGet
,
16927 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordGet
,
16928 (ndr_print_function_t
) ndr_print_netr_ServerPasswordGet
,
16932 "netr_NETRLOGONSENDTOSAM",
16933 sizeof(struct netr_NETRLOGONSENDTOSAM
),
16934 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
16935 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
16936 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
16940 "netr_DsRAddressToSitenamesW",
16941 sizeof(struct netr_DsRAddressToSitenamesW
),
16942 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesW
,
16943 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesW
,
16944 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesW
,
16948 "netr_DsRGetDCNameEx2",
16949 sizeof(struct netr_DsRGetDCNameEx2
),
16950 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
16951 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
16952 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
16956 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16957 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
16958 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16959 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16960 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
16964 "netr_NetrEnumerateTrustedDomainsEx",
16965 sizeof(struct netr_NetrEnumerateTrustedDomainsEx
),
16966 (ndr_push_flags_fn_t
) ndr_push_netr_NetrEnumerateTrustedDomainsEx
,
16967 (ndr_pull_flags_fn_t
) ndr_pull_netr_NetrEnumerateTrustedDomainsEx
,
16968 (ndr_print_function_t
) ndr_print_netr_NetrEnumerateTrustedDomainsEx
,
16972 "netr_DsRAddressToSitenamesExW",
16973 sizeof(struct netr_DsRAddressToSitenamesExW
),
16974 (ndr_push_flags_fn_t
) ndr_push_netr_DsRAddressToSitenamesExW
,
16975 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRAddressToSitenamesExW
,
16976 (ndr_print_function_t
) ndr_print_netr_DsRAddressToSitenamesExW
,
16980 "netr_DsrGetDcSiteCoverageW",
16981 sizeof(struct netr_DsrGetDcSiteCoverageW
),
16982 (ndr_push_flags_fn_t
) ndr_push_netr_DsrGetDcSiteCoverageW
,
16983 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrGetDcSiteCoverageW
,
16984 (ndr_print_function_t
) ndr_print_netr_DsrGetDcSiteCoverageW
,
16988 "netr_LogonSamLogonEx",
16989 sizeof(struct netr_LogonSamLogonEx
),
16990 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
16991 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
16992 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
16996 "netr_DsrEnumerateDomainTrusts",
16997 sizeof(struct netr_DsrEnumerateDomainTrusts
),
16998 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
16999 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
17000 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
17004 "netr_DsrDeregisterDNSHostRecords",
17005 sizeof(struct netr_DsrDeregisterDNSHostRecords
),
17006 (ndr_push_flags_fn_t
) ndr_push_netr_DsrDeregisterDNSHostRecords
,
17007 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrDeregisterDNSHostRecords
,
17008 (ndr_print_function_t
) ndr_print_netr_DsrDeregisterDNSHostRecords
,
17012 "netr_ServerTrustPasswordsGet",
17013 sizeof(struct netr_ServerTrustPasswordsGet
),
17014 (ndr_push_flags_fn_t
) ndr_push_netr_ServerTrustPasswordsGet
,
17015 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerTrustPasswordsGet
,
17016 (ndr_print_function_t
) ndr_print_netr_ServerTrustPasswordsGet
,
17020 "netr_DsRGetForestTrustInformation",
17021 sizeof(struct netr_DsRGetForestTrustInformation
),
17022 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetForestTrustInformation
,
17023 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetForestTrustInformation
,
17024 (ndr_print_function_t
) ndr_print_netr_DsRGetForestTrustInformation
,
17028 "netr_GetForestTrustInformation",
17029 sizeof(struct netr_GetForestTrustInformation
),
17030 (ndr_push_flags_fn_t
) ndr_push_netr_GetForestTrustInformation
,
17031 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetForestTrustInformation
,
17032 (ndr_print_function_t
) ndr_print_netr_GetForestTrustInformation
,
17036 "netr_LogonSamLogonWithFlags",
17037 sizeof(struct netr_LogonSamLogonWithFlags
),
17038 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
17039 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
17040 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
17044 "netr_ServerGetTrustInfo",
17045 sizeof(struct netr_ServerGetTrustInfo
),
17046 (ndr_push_flags_fn_t
) ndr_push_netr_ServerGetTrustInfo
,
17047 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerGetTrustInfo
,
17048 (ndr_print_function_t
) ndr_print_netr_ServerGetTrustInfo
,
17051 { NULL
, 0, NULL
, NULL
, NULL
, false }
17054 static const char * const netlogon_endpoint_strings
[] = {
17055 "ncacn_np:[\\pipe\\netlogon]",
17060 static const struct ndr_interface_string_array netlogon_endpoints
= {
17062 .names
= netlogon_endpoint_strings
17065 static const char * const netlogon_authservice_strings
[] = {
17069 static const struct ndr_interface_string_array netlogon_authservices
= {
17071 .names
= netlogon_authservice_strings
17075 const struct ndr_interface_table ndr_table_netlogon
= {
17076 .name
= "netlogon",
17078 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
17079 NDR_NETLOGON_VERSION
17081 .helpstring
= NDR_NETLOGON_HELPSTRING
,
17083 .calls
= netlogon_calls
,
17084 .endpoints
= &netlogon_endpoints
,
17085 .authservices
= &netlogon_authservices