Remove EJS tests.
[bbaumbach/samba-autobuild/.git] / source3 / librpc / gen_ndr / ndr_netlogon.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_netlogon.h"
5
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 #include "librpc/gen_ndr/ndr_nbt.h"
10 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
11 {
12         if (ndr_flags & NDR_SCALARS) {
13                 NDR_CHECK(ndr_push_align(ndr, 4));
14                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
15                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
18                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
19                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
22                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
23                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
24                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
25                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
26                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
28                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
29                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
30         }
31         if (ndr_flags & NDR_BUFFERS) {
32                 if (r->account_name) {
33                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
35                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
36                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37                 }
38                 if (r->computer) {
39                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
41                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
42                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
43                 }
44                 if (r->domain) {
45                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
47                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
48                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
49                 }
50                 if (r->script_path) {
51                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
53                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
54                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
55                 }
56         }
57         return NDR_ERR_SUCCESS;
58 }
59
60 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
61 {
62         uint32_t _ptr_account_name;
63         TALLOC_CTX *_mem_save_account_name_0;
64         uint32_t _ptr_computer;
65         TALLOC_CTX *_mem_save_computer_0;
66         uint32_t _ptr_domain;
67         TALLOC_CTX *_mem_save_domain_0;
68         uint32_t _ptr_script_path;
69         TALLOC_CTX *_mem_save_script_path_0;
70         if (ndr_flags & NDR_SCALARS) {
71                 NDR_CHECK(ndr_pull_align(ndr, 4));
72                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
73                 if (_ptr_account_name) {
74                         NDR_PULL_ALLOC(ndr, r->account_name);
75                 } else {
76                         r->account_name = NULL;
77                 }
78                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
81                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
82                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
85                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
86                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
87                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
88                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
89                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
90                 if (_ptr_computer) {
91                         NDR_PULL_ALLOC(ndr, r->computer);
92                 } else {
93                         r->computer = NULL;
94                 }
95                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
96                 if (_ptr_domain) {
97                         NDR_PULL_ALLOC(ndr, r->domain);
98                 } else {
99                         r->domain = NULL;
100                 }
101                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
102                 if (_ptr_script_path) {
103                         NDR_PULL_ALLOC(ndr, r->script_path);
104                 } else {
105                         r->script_path = NULL;
106                 }
107                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
108         }
109         if (ndr_flags & NDR_BUFFERS) {
110                 if (r->account_name) {
111                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
112                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
113                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
114                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
115                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
116                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
117                         }
118                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
119                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
120                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
121                 }
122                 if (r->computer) {
123                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
124                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
125                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
126                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
127                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
128                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
129                         }
130                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
131                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
132                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
133                 }
134                 if (r->domain) {
135                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
136                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
137                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
138                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
139                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
140                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
141                         }
142                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
143                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
144                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
145                 }
146                 if (r->script_path) {
147                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
148                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
149                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
150                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
151                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
152                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
153                         }
154                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
155                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
156                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
157                 }
158         }
159         return NDR_ERR_SUCCESS;
160 }
161
162 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
163 {
164         ndr_print_struct(ndr, name, "netr_UasInfo");
165         ndr->depth++;
166         ndr_print_ptr(ndr, "account_name", r->account_name);
167         ndr->depth++;
168         if (r->account_name) {
169                 ndr_print_string(ndr, "account_name", r->account_name);
170         }
171         ndr->depth--;
172         ndr_print_uint32(ndr, "priv", r->priv);
173         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
174         ndr_print_uint32(ndr, "logon_count", r->logon_count);
175         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
176         ndr_print_time_t(ndr, "last_logon", r->last_logon);
177         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
178         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
179         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
180         ndr_print_uint32(ndr, "password_age", r->password_age);
181         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
182         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
183         ndr_print_ptr(ndr, "computer", r->computer);
184         ndr->depth++;
185         if (r->computer) {
186                 ndr_print_string(ndr, "computer", r->computer);
187         }
188         ndr->depth--;
189         ndr_print_ptr(ndr, "domain", r->domain);
190         ndr->depth++;
191         if (r->domain) {
192                 ndr_print_string(ndr, "domain", r->domain);
193         }
194         ndr->depth--;
195         ndr_print_ptr(ndr, "script_path", r->script_path);
196         ndr->depth++;
197         if (r->script_path) {
198                 ndr_print_string(ndr, "script_path", r->script_path);
199         }
200         ndr->depth--;
201         ndr_print_uint32(ndr, "unknown", r->unknown);
202         ndr->depth--;
203 }
204
205 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
206 {
207         if (ndr_flags & NDR_SCALARS) {
208                 NDR_CHECK(ndr_push_align(ndr, 4));
209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
210                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
211         }
212         if (ndr_flags & NDR_BUFFERS) {
213         }
214         return NDR_ERR_SUCCESS;
215 }
216
217 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
218 {
219         if (ndr_flags & NDR_SCALARS) {
220                 NDR_CHECK(ndr_pull_align(ndr, 4));
221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
222                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
223         }
224         if (ndr_flags & NDR_BUFFERS) {
225         }
226         return NDR_ERR_SUCCESS;
227 }
228
229 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
230 {
231         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
232         ndr->depth++;
233         ndr_print_uint32(ndr, "duration", r->duration);
234         ndr_print_uint16(ndr, "logon_count", r->logon_count);
235         ndr->depth--;
236 }
237
238 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
239 {
240         if (ndr_flags & NDR_SCALARS) {
241                 NDR_CHECK(ndr_push_align(ndr, 4));
242                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
243                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
244                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
245                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
246         }
247         if (ndr_flags & NDR_BUFFERS) {
248         }
249         return NDR_ERR_SUCCESS;
250 }
251
252 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
253 {
254         if (ndr_flags & NDR_SCALARS) {
255                 NDR_CHECK(ndr_pull_align(ndr, 4));
256                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
257                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
258                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
259                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
260         }
261         if (ndr_flags & NDR_BUFFERS) {
262         }
263         return NDR_ERR_SUCCESS;
264 }
265
266 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
267 {
268         ndr_print_struct(ndr, name, "netr_AcctLockStr");
269         ndr->depth++;
270         ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
271         ndr_print_udlong(ndr, "reset_count", r->reset_count);
272         ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
273         ndr_print_uint32(ndr, "dummy", r->dummy);
274         ndr->depth--;
275 }
276
277 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
278 {
279         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280         return NDR_ERR_SUCCESS;
281 }
282
283 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
284 {
285         uint32_t v;
286         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
287         *r = v;
288         return NDR_ERR_SUCCESS;
289 }
290
291 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
292 {
293         ndr_print_uint32(ndr, name, r);
294         ndr->depth++;
295         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
296         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
297         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
298         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
299         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
300         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
301         ndr->depth--;
302 }
303
304 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
305 {
306         if (ndr_flags & NDR_SCALARS) {
307                 NDR_CHECK(ndr_push_align(ndr, 4));
308                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
309                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
312                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
314         }
315         if (ndr_flags & NDR_BUFFERS) {
316                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
319         }
320         return NDR_ERR_SUCCESS;
321 }
322
323 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
324 {
325         if (ndr_flags & NDR_SCALARS) {
326                 NDR_CHECK(ndr_pull_align(ndr, 4));
327                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
328                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
329                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
331                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
332                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
333         }
334         if (ndr_flags & NDR_BUFFERS) {
335                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
338         }
339         return NDR_ERR_SUCCESS;
340 }
341
342 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
343 {
344         ndr_print_struct(ndr, name, "netr_IdentityInfo");
345         ndr->depth++;
346         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
347         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
348         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
349         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
350         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
351         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
352         ndr->depth--;
353 }
354
355 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
356 {
357         if (ndr_flags & NDR_SCALARS) {
358                 NDR_CHECK(ndr_push_align(ndr, 4));
359                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
360                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
361                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
362         }
363         if (ndr_flags & NDR_BUFFERS) {
364                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
365                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
366                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
367         }
368         return NDR_ERR_SUCCESS;
369 }
370
371 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
372 {
373         if (ndr_flags & NDR_SCALARS) {
374                 NDR_CHECK(ndr_pull_align(ndr, 4));
375                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
376                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
377                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
378         }
379         if (ndr_flags & NDR_BUFFERS) {
380                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
381                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
382                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
383         }
384         return NDR_ERR_SUCCESS;
385 }
386
387 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
388 {
389         ndr_print_struct(ndr, name, "netr_PasswordInfo");
390         ndr->depth++;
391         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
392         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
393         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
394         ndr->depth--;
395 }
396
397 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
398 {
399         {
400                 uint32_t _flags_save_STRUCT = ndr->flags;
401                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
402                 if (ndr_flags & NDR_SCALARS) {
403                         NDR_CHECK(ndr_push_align(ndr, 4));
404                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
405                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
406                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
407                 }
408                 if (ndr_flags & NDR_BUFFERS) {
409                         if (r->data) {
410                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
411                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
412                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
413                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
414                         }
415                 }
416                 ndr->flags = _flags_save_STRUCT;
417         }
418         return NDR_ERR_SUCCESS;
419 }
420
421 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
422 {
423         uint32_t _ptr_data;
424         TALLOC_CTX *_mem_save_data_0;
425         {
426                 uint32_t _flags_save_STRUCT = ndr->flags;
427                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
428                 if (ndr_flags & NDR_SCALARS) {
429                         NDR_CHECK(ndr_pull_align(ndr, 4));
430                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
431                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
432                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
433                         if (_ptr_data) {
434                                 NDR_PULL_ALLOC(ndr, r->data);
435                         } else {
436                                 r->data = NULL;
437                         }
438                 }
439                 if (ndr_flags & NDR_BUFFERS) {
440                         if (r->data) {
441                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
442                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
443                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
444                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
445                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
446                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
447                                 }
448                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
449                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
450                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
451                         }
452                         if (r->data) {
453                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
454                         }
455                         if (r->data) {
456                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
457                         }
458                 }
459                 ndr->flags = _flags_save_STRUCT;
460         }
461         return NDR_ERR_SUCCESS;
462 }
463
464 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
465 {
466         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
467         {
468                 uint32_t _flags_save_STRUCT = ndr->flags;
469                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
470                 ndr->depth++;
471                 ndr_print_uint16(ndr, "length", r->length);
472                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
473                 ndr_print_ptr(ndr, "data", r->data);
474                 ndr->depth++;
475                 if (r->data) {
476                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
477                 }
478                 ndr->depth--;
479                 ndr->depth--;
480                 ndr->flags = _flags_save_STRUCT;
481         }
482 }
483
484 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
485 {
486         {
487                 uint32_t _flags_save_STRUCT = ndr->flags;
488                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
489                 if (ndr_flags & NDR_SCALARS) {
490                         NDR_CHECK(ndr_push_align(ndr, 4));
491                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
492                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
493                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
494                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
495                 }
496                 if (ndr_flags & NDR_BUFFERS) {
497                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
498                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
499                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
500                 }
501                 ndr->flags = _flags_save_STRUCT;
502         }
503         return NDR_ERR_SUCCESS;
504 }
505
506 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
507 {
508         {
509                 uint32_t _flags_save_STRUCT = ndr->flags;
510                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
511                 if (ndr_flags & NDR_SCALARS) {
512                         NDR_CHECK(ndr_pull_align(ndr, 4));
513                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
514                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
515                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
516                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
517                 }
518                 if (ndr_flags & NDR_BUFFERS) {
519                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
520                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
521                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
522                 }
523                 ndr->flags = _flags_save_STRUCT;
524         }
525         return NDR_ERR_SUCCESS;
526 }
527
528 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
529 {
530         ndr_print_struct(ndr, name, "netr_NetworkInfo");
531         {
532                 uint32_t _flags_save_STRUCT = ndr->flags;
533                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
534                 ndr->depth++;
535                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
536                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
537                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
538                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
539                 ndr->depth--;
540                 ndr->flags = _flags_save_STRUCT;
541         }
542 }
543
544 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonInfo(struct ndr_push *ndr, int ndr_flags, const union netr_LogonInfo *r)
545 {
546         if (ndr_flags & NDR_SCALARS) {
547                 int level = ndr_push_get_switch_value(ndr, r);
548                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
549                 switch (level) {
550                         case 1: {
551                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
552                         break; }
553
554                         case 2: {
555                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
556                         break; }
557
558                         case 3: {
559                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
560                         break; }
561
562                         case 5: {
563                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
564                         break; }
565
566                         case 6: {
567                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
568                         break; }
569
570                         default:
571                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
572                 }
573         }
574         if (ndr_flags & NDR_BUFFERS) {
575                 int level = ndr_push_get_switch_value(ndr, r);
576                 switch (level) {
577                         case 1:
578                                 if (r->password) {
579                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
580                                 }
581                         break;
582
583                         case 2:
584                                 if (r->network) {
585                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
586                                 }
587                         break;
588
589                         case 3:
590                                 if (r->password) {
591                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
592                                 }
593                         break;
594
595                         case 5:
596                                 if (r->password) {
597                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
598                                 }
599                         break;
600
601                         case 6:
602                                 if (r->network) {
603                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
604                                 }
605                         break;
606
607                         default:
608                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
609                 }
610         }
611         return NDR_ERR_SUCCESS;
612 }
613
614 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr_flags, union netr_LogonInfo *r)
615 {
616         int level;
617         uint16_t _level;
618         TALLOC_CTX *_mem_save_password_0;
619         TALLOC_CTX *_mem_save_network_0;
620         level = ndr_pull_get_switch_value(ndr, r);
621         if (ndr_flags & NDR_SCALARS) {
622                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
623                 if (_level != level) {
624                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
625                 }
626                 switch (level) {
627                         case 1: {
628                                 uint32_t _ptr_password;
629                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
630                                 if (_ptr_password) {
631                                         NDR_PULL_ALLOC(ndr, r->password);
632                                 } else {
633                                         r->password = NULL;
634                                 }
635                         break; }
636
637                         case 2: {
638                                 uint32_t _ptr_network;
639                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
640                                 if (_ptr_network) {
641                                         NDR_PULL_ALLOC(ndr, r->network);
642                                 } else {
643                                         r->network = NULL;
644                                 }
645                         break; }
646
647                         case 3: {
648                                 uint32_t _ptr_password;
649                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
650                                 if (_ptr_password) {
651                                         NDR_PULL_ALLOC(ndr, r->password);
652                                 } else {
653                                         r->password = NULL;
654                                 }
655                         break; }
656
657                         case 5: {
658                                 uint32_t _ptr_password;
659                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
660                                 if (_ptr_password) {
661                                         NDR_PULL_ALLOC(ndr, r->password);
662                                 } else {
663                                         r->password = NULL;
664                                 }
665                         break; }
666
667                         case 6: {
668                                 uint32_t _ptr_network;
669                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
670                                 if (_ptr_network) {
671                                         NDR_PULL_ALLOC(ndr, r->network);
672                                 } else {
673                                         r->network = NULL;
674                                 }
675                         break; }
676
677                         default:
678                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
679                 }
680         }
681         if (ndr_flags & NDR_BUFFERS) {
682                 switch (level) {
683                         case 1:
684                                 if (r->password) {
685                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
686                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
687                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
688                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
689                                 }
690                         break;
691
692                         case 2:
693                                 if (r->network) {
694                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
695                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
696                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
697                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
698                                 }
699                         break;
700
701                         case 3:
702                                 if (r->password) {
703                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
704                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
705                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
706                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
707                                 }
708                         break;
709
710                         case 5:
711                                 if (r->password) {
712                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
713                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
714                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
715                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
716                                 }
717                         break;
718
719                         case 6:
720                                 if (r->network) {
721                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
722                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
723                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
724                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
725                                 }
726                         break;
727
728                         default:
729                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
730                 }
731         }
732         return NDR_ERR_SUCCESS;
733 }
734
735 _PUBLIC_ void ndr_print_netr_LogonInfo(struct ndr_print *ndr, const char *name, const union netr_LogonInfo *r)
736 {
737         int level;
738         level = ndr_print_get_switch_value(ndr, r);
739         ndr_print_union(ndr, name, level, "netr_LogonInfo");
740         switch (level) {
741                 case 1:
742                         ndr_print_ptr(ndr, "password", r->password);
743                         ndr->depth++;
744                         if (r->password) {
745                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
746                         }
747                         ndr->depth--;
748                 break;
749
750                 case 2:
751                         ndr_print_ptr(ndr, "network", r->network);
752                         ndr->depth++;
753                         if (r->network) {
754                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
755                         }
756                         ndr->depth--;
757                 break;
758
759                 case 3:
760                         ndr_print_ptr(ndr, "password", r->password);
761                         ndr->depth++;
762                         if (r->password) {
763                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
764                         }
765                         ndr->depth--;
766                 break;
767
768                 case 5:
769                         ndr_print_ptr(ndr, "password", r->password);
770                         ndr->depth++;
771                         if (r->password) {
772                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
773                         }
774                         ndr->depth--;
775                 break;
776
777                 case 6:
778                         ndr_print_ptr(ndr, "network", r->network);
779                         ndr->depth++;
780                         if (r->network) {
781                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
782                         }
783                         ndr->depth--;
784                 break;
785
786                 default:
787                         ndr_print_bad_level(ndr, name, level);
788         }
789 }
790
791 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
792 {
793         {
794                 uint32_t _flags_save_STRUCT = ndr->flags;
795                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
796                 if (ndr_flags & NDR_SCALARS) {
797                         NDR_CHECK(ndr_push_align(ndr, 1));
798                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
799                 }
800                 if (ndr_flags & NDR_BUFFERS) {
801                 }
802                 ndr->flags = _flags_save_STRUCT;
803         }
804         return NDR_ERR_SUCCESS;
805 }
806
807 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
808 {
809         {
810                 uint32_t _flags_save_STRUCT = ndr->flags;
811                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
812                 if (ndr_flags & NDR_SCALARS) {
813                         NDR_CHECK(ndr_pull_align(ndr, 1));
814                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
815                 }
816                 if (ndr_flags & NDR_BUFFERS) {
817                 }
818                 ndr->flags = _flags_save_STRUCT;
819         }
820         return NDR_ERR_SUCCESS;
821 }
822
823 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
824 {
825         ndr_print_struct(ndr, name, "netr_UserSessionKey");
826         {
827                 uint32_t _flags_save_STRUCT = ndr->flags;
828                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
829                 ndr->depth++;
830                 ndr_print_array_uint8(ndr, "key", r->key, 16);
831                 ndr->depth--;
832                 ndr->flags = _flags_save_STRUCT;
833         }
834 }
835
836 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
837 {
838         {
839                 uint32_t _flags_save_STRUCT = ndr->flags;
840                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
841                 if (ndr_flags & NDR_SCALARS) {
842                         NDR_CHECK(ndr_push_align(ndr, 1));
843                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
844                 }
845                 if (ndr_flags & NDR_BUFFERS) {
846                 }
847                 ndr->flags = _flags_save_STRUCT;
848         }
849         return NDR_ERR_SUCCESS;
850 }
851
852 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
853 {
854         {
855                 uint32_t _flags_save_STRUCT = ndr->flags;
856                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
857                 if (ndr_flags & NDR_SCALARS) {
858                         NDR_CHECK(ndr_pull_align(ndr, 1));
859                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
860                 }
861                 if (ndr_flags & NDR_BUFFERS) {
862                 }
863                 ndr->flags = _flags_save_STRUCT;
864         }
865         return NDR_ERR_SUCCESS;
866 }
867
868 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
869 {
870         ndr_print_struct(ndr, name, "netr_LMSessionKey");
871         {
872                 uint32_t _flags_save_STRUCT = ndr->flags;
873                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
874                 ndr->depth++;
875                 ndr_print_array_uint8(ndr, "key", r->key, 8);
876                 ndr->depth--;
877                 ndr->flags = _flags_save_STRUCT;
878         }
879 }
880
881 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
882 {
883         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
884         return NDR_ERR_SUCCESS;
885 }
886
887 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
888 {
889         uint32_t v;
890         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
891         *r = v;
892         return NDR_ERR_SUCCESS;
893 }
894
895 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
896 {
897         ndr_print_uint32(ndr, name, r);
898         ndr->depth++;
899         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
900         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
901         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
902         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
903         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
904         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
905         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
906         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
907         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
908         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
909         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
910         ndr->depth--;
911 }
912
913 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
914 {
915         uint32_t cntr_unknown_0;
916         if (ndr_flags & NDR_SCALARS) {
917                 NDR_CHECK(ndr_push_align(ndr, 4));
918                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
919                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
920                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
921                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
922                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
923                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
924                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
925                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
926                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
927                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
928                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
929                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
930                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
931                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
932                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
933                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
934                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
935                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
936                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
937                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
938                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
939                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
940                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
941                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
942                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
943                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
944                 }
945         }
946         if (ndr_flags & NDR_BUFFERS) {
947                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
948                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
949                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
950                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
951                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
952                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
953                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
954                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
955                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
956                 if (r->domain_sid) {
957                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
958                 }
959         }
960         return NDR_ERR_SUCCESS;
961 }
962
963 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
964 {
965         uint32_t _ptr_domain_sid;
966         TALLOC_CTX *_mem_save_domain_sid_0;
967         uint32_t cntr_unknown_0;
968         if (ndr_flags & NDR_SCALARS) {
969                 NDR_CHECK(ndr_pull_align(ndr, 4));
970                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
971                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
972                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
973                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
974                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
975                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
976                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
977                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
978                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
979                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
980                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
981                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
982                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
983                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
984                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
985                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
986                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
987                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
988                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
989                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
990                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
991                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
992                 if (_ptr_domain_sid) {
993                         NDR_PULL_ALLOC(ndr, r->domain_sid);
994                 } else {
995                         r->domain_sid = NULL;
996                 }
997                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
998                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
999                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1000                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1001                 }
1002         }
1003         if (ndr_flags & NDR_BUFFERS) {
1004                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1005                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1006                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1007                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1008                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1009                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1010                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1011                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1012                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1013                 if (r->domain_sid) {
1014                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1015                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1016                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1017                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1018                 }
1019         }
1020         return NDR_ERR_SUCCESS;
1021 }
1022
1023 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1024 {
1025         uint32_t cntr_unknown_0;
1026         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1027         ndr->depth++;
1028         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1029         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1030         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1031         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1032         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1033         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1034         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1035         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1036         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1037         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1038         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1039         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1040         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1041         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1042         ndr_print_uint32(ndr, "rid", r->rid);
1043         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1044         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1045         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1046         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1047         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1048         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1049         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1050         ndr->depth++;
1051         if (r->domain_sid) {
1052                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1053         }
1054         ndr->depth--;
1055         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1056         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1057         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1058         ndr->depth++;
1059         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1060                 char *idx_0=NULL;
1061                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1062                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1063                         free(idx_0);
1064                 }
1065         }
1066         ndr->depth--;
1067         ndr->depth--;
1068 }
1069
1070 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1071 {
1072         if (ndr_flags & NDR_SCALARS) {
1073                 NDR_CHECK(ndr_push_align(ndr, 4));
1074                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1075         }
1076         if (ndr_flags & NDR_BUFFERS) {
1077                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1078         }
1079         return NDR_ERR_SUCCESS;
1080 }
1081
1082 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1083 {
1084         if (ndr_flags & NDR_SCALARS) {
1085                 NDR_CHECK(ndr_pull_align(ndr, 4));
1086                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1087         }
1088         if (ndr_flags & NDR_BUFFERS) {
1089                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1090         }
1091         return NDR_ERR_SUCCESS;
1092 }
1093
1094 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1095 {
1096         ndr_print_struct(ndr, name, "netr_SamInfo2");
1097         ndr->depth++;
1098         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1099         ndr->depth--;
1100 }
1101
1102 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1103 {
1104         if (ndr_flags & NDR_SCALARS) {
1105                 NDR_CHECK(ndr_push_align(ndr, 4));
1106                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1107                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1108         }
1109         if (ndr_flags & NDR_BUFFERS) {
1110                 if (r->sid) {
1111                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1112                 }
1113         }
1114         return NDR_ERR_SUCCESS;
1115 }
1116
1117 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1118 {
1119         uint32_t _ptr_sid;
1120         TALLOC_CTX *_mem_save_sid_0;
1121         if (ndr_flags & NDR_SCALARS) {
1122                 NDR_CHECK(ndr_pull_align(ndr, 4));
1123                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1124                 if (_ptr_sid) {
1125                         NDR_PULL_ALLOC(ndr, r->sid);
1126                 } else {
1127                         r->sid = NULL;
1128                 }
1129                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1130         }
1131         if (ndr_flags & NDR_BUFFERS) {
1132                 if (r->sid) {
1133                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1134                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1135                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1136                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1137                 }
1138         }
1139         return NDR_ERR_SUCCESS;
1140 }
1141
1142 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1143 {
1144         ndr_print_struct(ndr, name, "netr_SidAttr");
1145         ndr->depth++;
1146         ndr_print_ptr(ndr, "sid", r->sid);
1147         ndr->depth++;
1148         if (r->sid) {
1149                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1150         }
1151         ndr->depth--;
1152         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1153         ndr->depth--;
1154 }
1155
1156 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1157 {
1158         uint32_t cntr_sids_1;
1159         if (ndr_flags & NDR_SCALARS) {
1160                 NDR_CHECK(ndr_push_align(ndr, 4));
1161                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1163                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1164         }
1165         if (ndr_flags & NDR_BUFFERS) {
1166                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1167                 if (r->sids) {
1168                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1169                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1170                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1171                         }
1172                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1173                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1174                         }
1175                 }
1176         }
1177         return NDR_ERR_SUCCESS;
1178 }
1179
1180 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1181 {
1182         uint32_t _ptr_sids;
1183         uint32_t cntr_sids_1;
1184         TALLOC_CTX *_mem_save_sids_0;
1185         TALLOC_CTX *_mem_save_sids_1;
1186         if (ndr_flags & NDR_SCALARS) {
1187                 NDR_CHECK(ndr_pull_align(ndr, 4));
1188                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1189                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1190                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1191                 if (_ptr_sids) {
1192                         NDR_PULL_ALLOC(ndr, r->sids);
1193                 } else {
1194                         r->sids = NULL;
1195                 }
1196         }
1197         if (ndr_flags & NDR_BUFFERS) {
1198                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1199                 if (r->sids) {
1200                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1201                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1202                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1203                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1204                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1205                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1206                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1207                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1208                         }
1209                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1210                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1211                         }
1212                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1213                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1214                 }
1215                 if (r->sids) {
1216                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1217                 }
1218         }
1219         return NDR_ERR_SUCCESS;
1220 }
1221
1222 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1223 {
1224         uint32_t cntr_sids_1;
1225         ndr_print_struct(ndr, name, "netr_SamInfo3");
1226         ndr->depth++;
1227         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1228         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1229         ndr_print_ptr(ndr, "sids", r->sids);
1230         ndr->depth++;
1231         if (r->sids) {
1232                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1233                 ndr->depth++;
1234                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1235                         char *idx_1=NULL;
1236                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1237                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1238                                 free(idx_1);
1239                         }
1240                 }
1241                 ndr->depth--;
1242         }
1243         ndr->depth--;
1244         ndr->depth--;
1245 }
1246
1247 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1248 {
1249         uint32_t cntr_sids_1;
1250         uint32_t cntr_unknown4_0;
1251         if (ndr_flags & NDR_SCALARS) {
1252                 NDR_CHECK(ndr_push_align(ndr, 4));
1253                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1254                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1255                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1256                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1257                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1258                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1259                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1260                 }
1261         }
1262         if (ndr_flags & NDR_BUFFERS) {
1263                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1264                 if (r->sids) {
1265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1266                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1267                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1268                         }
1269                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1270                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1271                         }
1272                 }
1273                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1274                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1275         }
1276         return NDR_ERR_SUCCESS;
1277 }
1278
1279 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1280 {
1281         uint32_t _ptr_sids;
1282         uint32_t cntr_sids_1;
1283         TALLOC_CTX *_mem_save_sids_0;
1284         TALLOC_CTX *_mem_save_sids_1;
1285         uint32_t cntr_unknown4_0;
1286         if (ndr_flags & NDR_SCALARS) {
1287                 NDR_CHECK(ndr_pull_align(ndr, 4));
1288                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1289                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1290                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1291                 if (_ptr_sids) {
1292                         NDR_PULL_ALLOC(ndr, r->sids);
1293                 } else {
1294                         r->sids = NULL;
1295                 }
1296                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1297                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1298                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1299                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1300                 }
1301         }
1302         if (ndr_flags & NDR_BUFFERS) {
1303                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1304                 if (r->sids) {
1305                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1306                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1307                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1308                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1309                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1310                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1311                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1312                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1313                         }
1314                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1315                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1316                         }
1317                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1318                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1319                 }
1320                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1321                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1322                 if (r->sids) {
1323                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1324                 }
1325         }
1326         return NDR_ERR_SUCCESS;
1327 }
1328
1329 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1330 {
1331         uint32_t cntr_sids_1;
1332         uint32_t cntr_unknown4_0;
1333         ndr_print_struct(ndr, name, "netr_SamInfo6");
1334         ndr->depth++;
1335         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1336         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1337         ndr_print_ptr(ndr, "sids", r->sids);
1338         ndr->depth++;
1339         if (r->sids) {
1340                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1341                 ndr->depth++;
1342                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1343                         char *idx_1=NULL;
1344                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1345                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1346                                 free(idx_1);
1347                         }
1348                 }
1349                 ndr->depth--;
1350         }
1351         ndr->depth--;
1352         ndr_print_lsa_String(ndr, "forest", &r->forest);
1353         ndr_print_lsa_String(ndr, "principle", &r->principle);
1354         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1355         ndr->depth++;
1356         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1357                 char *idx_0=NULL;
1358                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1359                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1360                         free(idx_0);
1361                 }
1362         }
1363         ndr->depth--;
1364         ndr->depth--;
1365 }
1366
1367 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1368 {
1369         uint32_t cntr_expansionroom_0;
1370         if (ndr_flags & NDR_SCALARS) {
1371                 NDR_CHECK(ndr_push_align(ndr, 4));
1372                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1373                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1374                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1375                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1376                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1377                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1378                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1379                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1380                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1381                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1382                 }
1383                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1384                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1385                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1386                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1387         }
1388         if (ndr_flags & NDR_BUFFERS) {
1389                 if (r->pac) {
1390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1391                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1392                 }
1393                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1394                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1395                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1396                 if (r->auth) {
1397                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1398                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1399                 }
1400                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1401                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1402                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1403                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1404         }
1405         return NDR_ERR_SUCCESS;
1406 }
1407
1408 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1409 {
1410         uint32_t _ptr_pac;
1411         TALLOC_CTX *_mem_save_pac_0;
1412         uint32_t _ptr_auth;
1413         TALLOC_CTX *_mem_save_auth_0;
1414         uint32_t cntr_expansionroom_0;
1415         if (ndr_flags & NDR_SCALARS) {
1416                 NDR_CHECK(ndr_pull_align(ndr, 4));
1417                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1418                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1419                 if (_ptr_pac) {
1420                         NDR_PULL_ALLOC(ndr, r->pac);
1421                 } else {
1422                         r->pac = NULL;
1423                 }
1424                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1425                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1426                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1427                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1428                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1429                 if (_ptr_auth) {
1430                         NDR_PULL_ALLOC(ndr, r->auth);
1431                 } else {
1432                         r->auth = NULL;
1433                 }
1434                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1435                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1436                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1437                 }
1438                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1439                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1440                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1441                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1442         }
1443         if (ndr_flags & NDR_BUFFERS) {
1444                 if (r->pac) {
1445                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1446                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1447                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1448                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1449                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1450                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1451                 }
1452                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1453                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1454                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1455                 if (r->auth) {
1456                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1457                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1458                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1459                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1460                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1461                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1462                 }
1463                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1464                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1465                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1466                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1467                 if (r->pac) {
1468                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1469                 }
1470                 if (r->auth) {
1471                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1472                 }
1473         }
1474         return NDR_ERR_SUCCESS;
1475 }
1476
1477 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1478 {
1479         uint32_t cntr_expansionroom_0;
1480         ndr_print_struct(ndr, name, "netr_PacInfo");
1481         ndr->depth++;
1482         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1483         ndr_print_ptr(ndr, "pac", r->pac);
1484         ndr->depth++;
1485         if (r->pac) {
1486                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1487         }
1488         ndr->depth--;
1489         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1490         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1491         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1492         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1493         ndr_print_ptr(ndr, "auth", r->auth);
1494         ndr->depth++;
1495         if (r->auth) {
1496                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1497         }
1498         ndr->depth--;
1499         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1500         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1501         ndr->depth++;
1502         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1503                 char *idx_0=NULL;
1504                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1505                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1506                         free(idx_0);
1507                 }
1508         }
1509         ndr->depth--;
1510         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1511         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1512         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1513         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1514         ndr->depth--;
1515 }
1516
1517 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1518 {
1519         if (ndr_flags & NDR_SCALARS) {
1520                 int level = ndr_push_get_switch_value(ndr, r);
1521                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1522                 switch (level) {
1523                         case 2: {
1524                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1525                         break; }
1526
1527                         case 3: {
1528                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1529                         break; }
1530
1531                         case 4: {
1532                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1533                         break; }
1534
1535                         case 5: {
1536                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1537                         break; }
1538
1539                         case 6: {
1540                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1541                         break; }
1542
1543                         default:
1544                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1545                 }
1546         }
1547         if (ndr_flags & NDR_BUFFERS) {
1548                 int level = ndr_push_get_switch_value(ndr, r);
1549                 switch (level) {
1550                         case 2:
1551                                 if (r->sam2) {
1552                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1553                                 }
1554                         break;
1555
1556                         case 3:
1557                                 if (r->sam3) {
1558                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1559                                 }
1560                         break;
1561
1562                         case 4:
1563                                 if (r->pac) {
1564                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1565                                 }
1566                         break;
1567
1568                         case 5:
1569                                 if (r->pac) {
1570                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1571                                 }
1572                         break;
1573
1574                         case 6:
1575                                 if (r->sam6) {
1576                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1577                                 }
1578                         break;
1579
1580                         default:
1581                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1582                 }
1583         }
1584         return NDR_ERR_SUCCESS;
1585 }
1586
1587 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1588 {
1589         int level;
1590         uint16_t _level;
1591         TALLOC_CTX *_mem_save_sam2_0;
1592         TALLOC_CTX *_mem_save_sam3_0;
1593         TALLOC_CTX *_mem_save_pac_0;
1594         TALLOC_CTX *_mem_save_sam6_0;
1595         level = ndr_pull_get_switch_value(ndr, r);
1596         if (ndr_flags & NDR_SCALARS) {
1597                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1598                 if (_level != level) {
1599                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1600                 }
1601                 switch (level) {
1602                         case 2: {
1603                                 uint32_t _ptr_sam2;
1604                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1605                                 if (_ptr_sam2) {
1606                                         NDR_PULL_ALLOC(ndr, r->sam2);
1607                                 } else {
1608                                         r->sam2 = NULL;
1609                                 }
1610                         break; }
1611
1612                         case 3: {
1613                                 uint32_t _ptr_sam3;
1614                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1615                                 if (_ptr_sam3) {
1616                                         NDR_PULL_ALLOC(ndr, r->sam3);
1617                                 } else {
1618                                         r->sam3 = NULL;
1619                                 }
1620                         break; }
1621
1622                         case 4: {
1623                                 uint32_t _ptr_pac;
1624                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1625                                 if (_ptr_pac) {
1626                                         NDR_PULL_ALLOC(ndr, r->pac);
1627                                 } else {
1628                                         r->pac = NULL;
1629                                 }
1630                         break; }
1631
1632                         case 5: {
1633                                 uint32_t _ptr_pac;
1634                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1635                                 if (_ptr_pac) {
1636                                         NDR_PULL_ALLOC(ndr, r->pac);
1637                                 } else {
1638                                         r->pac = NULL;
1639                                 }
1640                         break; }
1641
1642                         case 6: {
1643                                 uint32_t _ptr_sam6;
1644                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1645                                 if (_ptr_sam6) {
1646                                         NDR_PULL_ALLOC(ndr, r->sam6);
1647                                 } else {
1648                                         r->sam6 = NULL;
1649                                 }
1650                         break; }
1651
1652                         default:
1653                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1654                 }
1655         }
1656         if (ndr_flags & NDR_BUFFERS) {
1657                 switch (level) {
1658                         case 2:
1659                                 if (r->sam2) {
1660                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1661                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1662                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1663                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1664                                 }
1665                         break;
1666
1667                         case 3:
1668                                 if (r->sam3) {
1669                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1670                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1671                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1672                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1673                                 }
1674                         break;
1675
1676                         case 4:
1677                                 if (r->pac) {
1678                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1679                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1680                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1681                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1682                                 }
1683                         break;
1684
1685                         case 5:
1686                                 if (r->pac) {
1687                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1688                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1689                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1690                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1691                                 }
1692                         break;
1693
1694                         case 6:
1695                                 if (r->sam6) {
1696                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1697                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1698                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1699                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1700                                 }
1701                         break;
1702
1703                         default:
1704                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1705                 }
1706         }
1707         return NDR_ERR_SUCCESS;
1708 }
1709
1710 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1711 {
1712         int level;
1713         level = ndr_print_get_switch_value(ndr, r);
1714         ndr_print_union(ndr, name, level, "netr_Validation");
1715         switch (level) {
1716                 case 2:
1717                         ndr_print_ptr(ndr, "sam2", r->sam2);
1718                         ndr->depth++;
1719                         if (r->sam2) {
1720                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1721                         }
1722                         ndr->depth--;
1723                 break;
1724
1725                 case 3:
1726                         ndr_print_ptr(ndr, "sam3", r->sam3);
1727                         ndr->depth++;
1728                         if (r->sam3) {
1729                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1730                         }
1731                         ndr->depth--;
1732                 break;
1733
1734                 case 4:
1735                         ndr_print_ptr(ndr, "pac", r->pac);
1736                         ndr->depth++;
1737                         if (r->pac) {
1738                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1739                         }
1740                         ndr->depth--;
1741                 break;
1742
1743                 case 5:
1744                         ndr_print_ptr(ndr, "pac", r->pac);
1745                         ndr->depth++;
1746                         if (r->pac) {
1747                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1748                         }
1749                         ndr->depth--;
1750                 break;
1751
1752                 case 6:
1753                         ndr_print_ptr(ndr, "sam6", r->sam6);
1754                         ndr->depth++;
1755                         if (r->sam6) {
1756                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1757                         }
1758                         ndr->depth--;
1759                 break;
1760
1761                 default:
1762                         ndr_print_bad_level(ndr, name, level);
1763         }
1764 }
1765
1766 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1767 {
1768         {
1769                 uint32_t _flags_save_STRUCT = ndr->flags;
1770                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1771                 if (ndr_flags & NDR_SCALARS) {
1772                         NDR_CHECK(ndr_push_align(ndr, 1));
1773                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1774                 }
1775                 if (ndr_flags & NDR_BUFFERS) {
1776                 }
1777                 ndr->flags = _flags_save_STRUCT;
1778         }
1779         return NDR_ERR_SUCCESS;
1780 }
1781
1782 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1783 {
1784         {
1785                 uint32_t _flags_save_STRUCT = ndr->flags;
1786                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1787                 if (ndr_flags & NDR_SCALARS) {
1788                         NDR_CHECK(ndr_pull_align(ndr, 1));
1789                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1790                 }
1791                 if (ndr_flags & NDR_BUFFERS) {
1792                 }
1793                 ndr->flags = _flags_save_STRUCT;
1794         }
1795         return NDR_ERR_SUCCESS;
1796 }
1797
1798 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1799 {
1800         ndr_print_struct(ndr, name, "netr_Credential");
1801         {
1802                 uint32_t _flags_save_STRUCT = ndr->flags;
1803                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1804                 ndr->depth++;
1805                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1806                 ndr->depth--;
1807                 ndr->flags = _flags_save_STRUCT;
1808         }
1809 }
1810
1811 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1812 {
1813         if (ndr_flags & NDR_SCALARS) {
1814                 NDR_CHECK(ndr_push_align(ndr, 4));
1815                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1816                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1817         }
1818         if (ndr_flags & NDR_BUFFERS) {
1819         }
1820         return NDR_ERR_SUCCESS;
1821 }
1822
1823 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1824 {
1825         if (ndr_flags & NDR_SCALARS) {
1826                 NDR_CHECK(ndr_pull_align(ndr, 4));
1827                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1828                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1829         }
1830         if (ndr_flags & NDR_BUFFERS) {
1831         }
1832         return NDR_ERR_SUCCESS;
1833 }
1834
1835 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1836 {
1837         ndr_print_struct(ndr, name, "netr_Authenticator");
1838         ndr->depth++;
1839         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1840         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1841         ndr->depth--;
1842 }
1843
1844 static enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, enum netr_LogonLevel r)
1845 {
1846         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1847         return NDR_ERR_SUCCESS;
1848 }
1849
1850 static enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonLevel *r)
1851 {
1852         uint16_t v;
1853         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1854         *r = v;
1855         return NDR_ERR_SUCCESS;
1856 }
1857
1858 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, enum netr_LogonLevel r)
1859 {
1860         const char *val = NULL;
1861
1862         switch (r) {
1863                 case INTERACTIVE_LOGON_TYPE: val = "INTERACTIVE_LOGON_TYPE"; break;
1864                 case NET_LOGON_TYPE: val = "NET_LOGON_TYPE"; break;
1865         }
1866         ndr_print_enum(ndr, name, "ENUM", val, r);
1867 }
1868
1869 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
1870 {
1871         if (ndr_flags & NDR_SCALARS) {
1872                 NDR_CHECK(ndr_push_align(ndr, 4));
1873                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1874                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1875                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1876                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1877                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1878                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1879                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1880                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1881                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1882         }
1883         if (ndr_flags & NDR_BUFFERS) {
1884                 if (r->account_name) {
1885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1886                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1887                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1888                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1889                 }
1890                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1891                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1892                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1893                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1894         }
1895         return NDR_ERR_SUCCESS;
1896 }
1897
1898 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1899 {
1900         uint32_t _ptr_account_name;
1901         TALLOC_CTX *_mem_save_account_name_0;
1902         if (ndr_flags & NDR_SCALARS) {
1903                 NDR_CHECK(ndr_pull_align(ndr, 4));
1904                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1905                 if (_ptr_account_name) {
1906                         NDR_PULL_ALLOC(ndr, r->account_name);
1907                 } else {
1908                         r->account_name = NULL;
1909                 }
1910                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1911                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1912                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1913                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1914                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1915                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1916                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1917                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1918         }
1919         if (ndr_flags & NDR_BUFFERS) {
1920                 if (r->account_name) {
1921                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1922                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1923                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1924                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1925                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1926                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
1927                         }
1928                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1929                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1930                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1931                 }
1932                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1933                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1934                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1935                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1936         }
1937         return NDR_ERR_SUCCESS;
1938 }
1939
1940 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1941 {
1942         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1943         ndr->depth++;
1944         ndr_print_ptr(ndr, "account_name", r->account_name);
1945         ndr->depth++;
1946         if (r->account_name) {
1947                 ndr_print_string(ndr, "account_name", r->account_name);
1948         }
1949         ndr->depth--;
1950         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1951         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1952         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1953         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1954         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1955         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1956         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1957         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1958         ndr->depth--;
1959 }
1960
1961 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1962 {
1963         if (ndr_flags & NDR_SCALARS) {
1964                 NDR_CHECK(ndr_push_align(ndr, 4));
1965                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1966                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
1968                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1969         }
1970         if (ndr_flags & NDR_BUFFERS) {
1971                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
1972         }
1973         return NDR_ERR_SUCCESS;
1974 }
1975
1976 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
1977 {
1978         if (ndr_flags & NDR_SCALARS) {
1979                 NDR_CHECK(ndr_pull_align(ndr, 4));
1980                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1981                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1982                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
1983                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1984         }
1985         if (ndr_flags & NDR_BUFFERS) {
1986                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
1987         }
1988         return NDR_ERR_SUCCESS;
1989 }
1990
1991 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
1992 {
1993         ndr_print_struct(ndr, name, "netr_USER_KEY16");
1994         ndr->depth++;
1995         ndr_print_uint16(ndr, "length", r->length);
1996         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
1997         ndr_print_uint32(ndr, "flags", r->flags);
1998         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
1999         ndr->depth--;
2000 }
2001
2002 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2003 {
2004         if (ndr_flags & NDR_SCALARS) {
2005                 NDR_CHECK(ndr_push_align(ndr, 4));
2006                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2007                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2008                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2009                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2010                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2011                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2012                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2013                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2014         }
2015         if (ndr_flags & NDR_BUFFERS) {
2016         }
2017         return NDR_ERR_SUCCESS;
2018 }
2019
2020 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2021 {
2022         if (ndr_flags & NDR_SCALARS) {
2023                 NDR_CHECK(ndr_pull_align(ndr, 4));
2024                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2025                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2026                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2027                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2028                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2029                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2030                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2031                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2032                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2033                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2034         }
2035         if (ndr_flags & NDR_BUFFERS) {
2036         }
2037         return NDR_ERR_SUCCESS;
2038 }
2039
2040 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2041 {
2042         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2043         ndr->depth++;
2044         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2045         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2046         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2047         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2048         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2049         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2050         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2051         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2052         ndr->depth--;
2053 }
2054
2055 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2056 {
2057         if (ndr_flags & NDR_SCALARS) {
2058                 NDR_CHECK(ndr_push_align(ndr, 4));
2059                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2060                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2061                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2062         }
2063         if (ndr_flags & NDR_BUFFERS) {
2064                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2065                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2066         }
2067         return NDR_ERR_SUCCESS;
2068 }
2069
2070 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2071 {
2072         if (ndr_flags & NDR_SCALARS) {
2073                 NDR_CHECK(ndr_pull_align(ndr, 4));
2074                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2075                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2076                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2077         }
2078         if (ndr_flags & NDR_BUFFERS) {
2079                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2080                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2081         }
2082         return NDR_ERR_SUCCESS;
2083 }
2084
2085 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2086 {
2087         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2088         ndr->depth++;
2089         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2090         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2091         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2092         ndr->depth--;
2093 }
2094
2095 static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
2096 {
2097         if (ndr_flags & NDR_SCALARS) {
2098                 NDR_CHECK(ndr_push_align(ndr, 4));
2099                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2100         }
2101         if (ndr_flags & NDR_BUFFERS) {
2102                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2103         }
2104         return NDR_ERR_SUCCESS;
2105 }
2106
2107 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2108 {
2109         if (ndr_flags & NDR_SCALARS) {
2110                 NDR_CHECK(ndr_pull_align(ndr, 4));
2111                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2112         }
2113         if (ndr_flags & NDR_BUFFERS) {
2114                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2115         }
2116         return NDR_ERR_SUCCESS;
2117 }
2118
2119 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2120 {
2121         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2122         ndr->depth++;
2123         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2124         ndr->depth--;
2125 }
2126
2127 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2128 {
2129         if (ndr_flags & NDR_SCALARS) {
2130                 NDR_CHECK(ndr_push_align(ndr, 4));
2131                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2132                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2133         }
2134         if (ndr_flags & NDR_BUFFERS) {
2135                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2136         }
2137         return NDR_ERR_SUCCESS;
2138 }
2139
2140 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2141 {
2142         if (ndr_flags & NDR_SCALARS) {
2143                 NDR_CHECK(ndr_pull_align(ndr, 4));
2144                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2145                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2146         }
2147         if (ndr_flags & NDR_BUFFERS) {
2148                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2149         }
2150         return NDR_ERR_SUCCESS;
2151 }
2152
2153 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2154 {
2155         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2156         ndr->depth++;
2157         ndr_print_uint32(ndr, "version", r->version);
2158         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2159         ndr->depth--;
2160 }
2161
2162 static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
2163 {
2164         if (ndr_flags & NDR_SCALARS) {
2165                 NDR_CHECK(ndr_push_align(ndr, 4));
2166                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2167                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2168                 {
2169                         uint32_t _flags_save_uint8 = ndr->flags;
2170                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2171                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2172                         ndr->flags = _flags_save_uint8;
2173                 }
2174         }
2175         if (ndr_flags & NDR_BUFFERS) {
2176                 {
2177                         uint32_t _flags_save_uint8 = ndr->flags;
2178                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2179                         if (r->SensitiveData) {
2180                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2181                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2182                         }
2183                         ndr->flags = _flags_save_uint8;
2184                 }
2185         }
2186         return NDR_ERR_SUCCESS;
2187 }
2188
2189 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2190 {
2191         uint32_t _ptr_SensitiveData;
2192         TALLOC_CTX *_mem_save_SensitiveData_0;
2193         if (ndr_flags & NDR_SCALARS) {
2194                 NDR_CHECK(ndr_pull_align(ndr, 4));
2195                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2196                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2197                 {
2198                         uint32_t _flags_save_uint8 = ndr->flags;
2199                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2200                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2201                         if (_ptr_SensitiveData) {
2202                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2203                         } else {
2204                                 r->SensitiveData = NULL;
2205                         }
2206                         ndr->flags = _flags_save_uint8;
2207                 }
2208         }
2209         if (ndr_flags & NDR_BUFFERS) {
2210                 {
2211                         uint32_t _flags_save_uint8 = ndr->flags;
2212                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2213                         if (r->SensitiveData) {
2214                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2215                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2216                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2217                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2218                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2219                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2220                         }
2221                         ndr->flags = _flags_save_uint8;
2222                 }
2223                 if (r->SensitiveData) {
2224                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2225                 }
2226         }
2227         return NDR_ERR_SUCCESS;
2228 }
2229
2230 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2231 {
2232         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2233         ndr->depth++;
2234         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2235         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2236         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2237         ndr->depth++;
2238         if (r->SensitiveData) {
2239                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2240         }
2241         ndr->depth--;
2242         ndr->depth--;
2243 }
2244
2245 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2246 {
2247         if (ndr_flags & NDR_SCALARS) {
2248                 NDR_CHECK(ndr_push_align(ndr, 4));
2249                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2250                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2251                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2252                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2253                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2254                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2255                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2256                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2257                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2258                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2259                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2260                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2261                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2262                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2263                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2264                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2265                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2266                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2267                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2268                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2269                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2270                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2271                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2272                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2273                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2274                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2275                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2276                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2277                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2278                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2279                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2280                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2281                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2282                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2283                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2284                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2285                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2286         }
2287         if (ndr_flags & NDR_BUFFERS) {
2288                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2289                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2290                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2291                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2292                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2293                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2294                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2295                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2296                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2297                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2298                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2299                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2300                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2301                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2302                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2303                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2304                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2305                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2306         }
2307         return NDR_ERR_SUCCESS;
2308 }
2309
2310 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2311 {
2312         if (ndr_flags & NDR_SCALARS) {
2313                 NDR_CHECK(ndr_pull_align(ndr, 4));
2314                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2315                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2316                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2317                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2318                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2319                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2320                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2321                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2322                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2323                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2324                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2325                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2326                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2327                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2328                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2329                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2330                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2331                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2332                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2333                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2334                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2335                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2338                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2339                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2340                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2341                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2342                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2343                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2344                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2345                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2346                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2347                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2348                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2349                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2350                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2351         }
2352         if (ndr_flags & NDR_BUFFERS) {
2353                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2354                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2355                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2356                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2357                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2358                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2359                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2360                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2361                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2362                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2363                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2364                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2365                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2366                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2367                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2368                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2369                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2370                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2371         }
2372         return NDR_ERR_SUCCESS;
2373 }
2374
2375 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2376 {
2377         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2378         ndr->depth++;
2379         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2380         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2381         ndr_print_uint32(ndr, "rid", r->rid);
2382         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2383         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2384         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2385         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2386         ndr_print_lsa_String(ndr, "description", &r->description);
2387         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2388         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2389         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2390         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2391         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2392         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2393         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2394         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2395         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2396         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2397         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2398         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2399         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2400         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2401         ndr_print_lsa_String(ndr, "comment", &r->comment);
2402         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2403         ndr_print_uint16(ndr, "country_code", r->country_code);
2404         ndr_print_uint16(ndr, "code_page", r->code_page);
2405         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2406         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2407         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2408         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2409         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2410         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2411         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2412         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2413         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2414         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2415         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2416         ndr->depth--;
2417 }
2418
2419 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2420 {
2421         if (ndr_flags & NDR_SCALARS) {
2422                 NDR_CHECK(ndr_push_align(ndr, 4));
2423                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2424                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2425                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2426                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2427                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2428                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2429                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2430                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2431                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2432                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2433                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2434                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2435                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2436                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2437                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2438                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2440                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2441                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2442         }
2443         if (ndr_flags & NDR_BUFFERS) {
2444                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2446                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2447                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2448                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2449                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2450                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2451         }
2452         return NDR_ERR_SUCCESS;
2453 }
2454
2455 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2456 {
2457         if (ndr_flags & NDR_SCALARS) {
2458                 NDR_CHECK(ndr_pull_align(ndr, 4));
2459                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2460                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2461                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2462                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2463                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2464                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2465                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2466                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2467                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2468                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2469                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2470                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2471                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2472                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2473                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2474                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2475                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2476                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2477                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2478         }
2479         if (ndr_flags & NDR_BUFFERS) {
2480                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2481                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2482                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2483                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2484                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2485                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2486                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2487         }
2488         return NDR_ERR_SUCCESS;
2489 }
2490
2491 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2492 {
2493         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2494         ndr->depth++;
2495         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2496         ndr_print_lsa_String(ndr, "comment", &r->comment);
2497         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2498         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2499         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2500         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2501         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2502         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2503         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2504         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2505         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2506         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2507         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2508         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2509         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2510         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2511         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2512         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2513         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2514         ndr->depth--;
2515 }
2516
2517 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2518 {
2519         if (ndr_flags & NDR_SCALARS) {
2520                 NDR_CHECK(ndr_push_align(ndr, 4));
2521                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2522                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2523                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2524                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2525                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2526                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2527                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2528                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2529                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2530                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2531                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2532                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2533                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2534                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2535         }
2536         if (ndr_flags & NDR_BUFFERS) {
2537                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2538                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2539                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2540                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2541                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2542                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2543                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2544         }
2545         return NDR_ERR_SUCCESS;
2546 }
2547
2548 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2549 {
2550         if (ndr_flags & NDR_SCALARS) {
2551                 NDR_CHECK(ndr_pull_align(ndr, 4));
2552                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2553                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2554                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2555                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2556                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2557                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2558                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2559                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2560                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2561                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2562                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2563                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2564                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2565                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2566         }
2567         if (ndr_flags & NDR_BUFFERS) {
2568                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2569                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2570                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2571                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2572                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2573                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2574                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2575         }
2576         return NDR_ERR_SUCCESS;
2577 }
2578
2579 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2580 {
2581         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2582         ndr->depth++;
2583         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2584         ndr_print_uint32(ndr, "rid", r->rid);
2585         ndr_print_uint32(ndr, "attributes", r->attributes);
2586         ndr_print_lsa_String(ndr, "description", &r->description);
2587         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2588         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2589         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2590         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2591         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2592         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2593         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2594         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2595         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2596         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2597         ndr->depth--;
2598 }
2599
2600 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2601 {
2602         if (ndr_flags & NDR_SCALARS) {
2603                 NDR_CHECK(ndr_push_align(ndr, 4));
2604                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2605                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2606                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2607                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2608                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2609                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2610                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2611                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2613                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2614         }
2615         if (ndr_flags & NDR_BUFFERS) {
2616                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2617                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2618                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2619                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2620                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2621                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2622         }
2623         return NDR_ERR_SUCCESS;
2624 }
2625
2626 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2627 {
2628         if (ndr_flags & NDR_SCALARS) {
2629                 NDR_CHECK(ndr_pull_align(ndr, 4));
2630                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2631                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2632                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2633                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2634                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2635                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2636                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2637                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2638                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2639                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2640         }
2641         if (ndr_flags & NDR_BUFFERS) {
2642                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2643                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2644                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2645                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2646                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2647                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2648         }
2649         return NDR_ERR_SUCCESS;
2650 }
2651
2652 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2653 {
2654         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2655         ndr->depth++;
2656         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2657         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2658         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2659         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2660         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2661         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2662         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2663         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2664         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2665         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2666         ndr->depth--;
2667 }
2668
2669 static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
2670 {
2671         uint32_t cntr_rids_1;
2672         uint32_t cntr_attribs_1;
2673         if (ndr_flags & NDR_SCALARS) {
2674                 NDR_CHECK(ndr_push_align(ndr, 4));
2675                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2676                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2677                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2678                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2679                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2680                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2681                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2682         }
2683         if (ndr_flags & NDR_BUFFERS) {
2684                 if (r->rids) {
2685                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2686                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2687                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2688                         }
2689                 }
2690                 if (r->attribs) {
2691                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2692                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2693                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2694                         }
2695                 }
2696         }
2697         return NDR_ERR_SUCCESS;
2698 }
2699
2700 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2701 {
2702         uint32_t _ptr_rids;
2703         uint32_t cntr_rids_1;
2704         TALLOC_CTX *_mem_save_rids_0;
2705         TALLOC_CTX *_mem_save_rids_1;
2706         uint32_t _ptr_attribs;
2707         uint32_t cntr_attribs_1;
2708         TALLOC_CTX *_mem_save_attribs_0;
2709         TALLOC_CTX *_mem_save_attribs_1;
2710         if (ndr_flags & NDR_SCALARS) {
2711                 NDR_CHECK(ndr_pull_align(ndr, 4));
2712                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2713                 if (_ptr_rids) {
2714                         NDR_PULL_ALLOC(ndr, r->rids);
2715                 } else {
2716                         r->rids = NULL;
2717                 }
2718                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2719                 if (_ptr_attribs) {
2720                         NDR_PULL_ALLOC(ndr, r->attribs);
2721                 } else {
2722                         r->attribs = NULL;
2723                 }
2724                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2725                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2726                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2727                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2728                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2729         }
2730         if (ndr_flags & NDR_BUFFERS) {
2731                 if (r->rids) {
2732                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2733                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2734                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2735                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2736                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2737                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2738                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2739                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2740                         }
2741                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2742                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2743                 }
2744                 if (r->attribs) {
2745                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2746                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2747                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2748                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2749                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2750                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2751                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2752                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2753                         }
2754                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2755                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2756                 }
2757                 if (r->rids) {
2758                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2759                 }
2760                 if (r->attribs) {
2761                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2762                 }
2763         }
2764         return NDR_ERR_SUCCESS;
2765 }
2766
2767 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2768 {
2769         uint32_t cntr_rids_1;
2770         uint32_t cntr_attribs_1;
2771         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2772         ndr->depth++;
2773         ndr_print_ptr(ndr, "rids", r->rids);
2774         ndr->depth++;
2775         if (r->rids) {
2776                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
2777                 ndr->depth++;
2778                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2779                         char *idx_1=NULL;
2780                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
2781                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2782                                 free(idx_1);
2783                         }
2784                 }
2785                 ndr->depth--;
2786         }
2787         ndr->depth--;
2788         ndr_print_ptr(ndr, "attribs", r->attribs);
2789         ndr->depth++;
2790         if (r->attribs) {
2791                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
2792                 ndr->depth++;
2793                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2794                         char *idx_1=NULL;
2795                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
2796                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2797                                 free(idx_1);
2798                         }
2799                 }
2800                 ndr->depth--;
2801         }
2802         ndr->depth--;
2803         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2804         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2805         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2806         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2807         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2808         ndr->depth--;
2809 }
2810
2811 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2812 {
2813         if (ndr_flags & NDR_SCALARS) {
2814                 NDR_CHECK(ndr_push_align(ndr, 4));
2815                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2816                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2817                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2818                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2819                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2820                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2821                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2822                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2823                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2824                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2825                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2826                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2827         }
2828         if (ndr_flags & NDR_BUFFERS) {
2829                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2830                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2831                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2832                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2833                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2834                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2835         }
2836         return NDR_ERR_SUCCESS;
2837 }
2838
2839 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2840 {
2841         if (ndr_flags & NDR_SCALARS) {
2842                 NDR_CHECK(ndr_pull_align(ndr, 4));
2843                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2844                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2845                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2846                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2847                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2848                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2849                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2850                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2851                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2852                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2853                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2854                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2855         }
2856         if (ndr_flags & NDR_BUFFERS) {
2857                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2858                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2859                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2860                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2861                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2862                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2863         }
2864         return NDR_ERR_SUCCESS;
2865 }
2866
2867 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2868 {
2869         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2870         ndr->depth++;
2871         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2872         ndr_print_uint32(ndr, "rid", r->rid);
2873         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2874         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2875         ndr_print_lsa_String(ndr, "description", &r->description);
2876         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2877         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2878         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2879         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2880         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2881         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2882         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2883         ndr->depth--;
2884 }
2885
2886 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
2887 {
2888         if (ndr_flags & NDR_SCALARS) {
2889                 NDR_CHECK(ndr_push_align(ndr, 4));
2890                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2891                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2892                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2893                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2894                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2895         }
2896         if (ndr_flags & NDR_BUFFERS) {
2897                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2898         }
2899         return NDR_ERR_SUCCESS;
2900 }
2901
2902 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2903 {
2904         if (ndr_flags & NDR_SCALARS) {
2905                 NDR_CHECK(ndr_pull_align(ndr, 4));
2906                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2907                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2908                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2909                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2910                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2911         }
2912         if (ndr_flags & NDR_BUFFERS) {
2913                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2914         }
2915         return NDR_ERR_SUCCESS;
2916 }
2917
2918 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2919 {
2920         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2921         ndr->depth++;
2922         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2923         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2924         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2925         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2926         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2927         ndr->depth--;
2928 }
2929
2930 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2931 {
2932         if (ndr_flags & NDR_SCALARS) {
2933                 NDR_CHECK(ndr_push_align(ndr, 4));
2934                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2935                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2936                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2937                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2938                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2939                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2940         }
2941         if (ndr_flags & NDR_BUFFERS) {
2942         }
2943         return NDR_ERR_SUCCESS;
2944 }
2945
2946 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2947 {
2948         if (ndr_flags & NDR_SCALARS) {
2949                 NDR_CHECK(ndr_pull_align(ndr, 4));
2950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2951                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2954                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2955                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2956         }
2957         if (ndr_flags & NDR_BUFFERS) {
2958         }
2959         return NDR_ERR_SUCCESS;
2960 }
2961
2962 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2963 {
2964         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
2965         ndr->depth++;
2966         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
2967         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
2968         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
2969         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
2970         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
2971         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
2972         ndr->depth--;
2973 }
2974
2975 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
2976 {
2977         uint32_t cntr_eventauditoptions_1;
2978         if (ndr_flags & NDR_SCALARS) {
2979                 NDR_CHECK(ndr_push_align(ndr, 4));
2980                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
2981                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
2982                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
2983                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
2984                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
2985                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
2986                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2987                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
2988                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2989                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
2990                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2991                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2992                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2993                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2994                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2995                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2996                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2997                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2998                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2999                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3000         }
3001         if (ndr_flags & NDR_BUFFERS) {
3002                 if (r->eventauditoptions) {
3003                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3004                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3005                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3006                         }
3007                 }
3008                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3009                 if (r->sid) {
3010                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3011                 }
3012                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3013                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3014                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3015                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3016                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3017         }
3018         return NDR_ERR_SUCCESS;
3019 }
3020
3021 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3022 {
3023         uint32_t _ptr_eventauditoptions;
3024         uint32_t cntr_eventauditoptions_1;
3025         TALLOC_CTX *_mem_save_eventauditoptions_0;
3026         TALLOC_CTX *_mem_save_eventauditoptions_1;
3027         uint32_t _ptr_sid;
3028         TALLOC_CTX *_mem_save_sid_0;
3029         if (ndr_flags & NDR_SCALARS) {
3030                 NDR_CHECK(ndr_pull_align(ndr, 4));
3031                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3032                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3033                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3034                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3035                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3036                 if (_ptr_eventauditoptions) {
3037                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3038                 } else {
3039                         r->eventauditoptions = NULL;
3040                 }
3041                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3042                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3043                 if (_ptr_sid) {
3044                         NDR_PULL_ALLOC(ndr, r->sid);
3045                 } else {
3046                         r->sid = NULL;
3047                 }
3048                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3049                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3050                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3051                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3052                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3053                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3054                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3055                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3056                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3057                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3058                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3059                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3060                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3061         }
3062         if (ndr_flags & NDR_BUFFERS) {
3063                 if (r->eventauditoptions) {
3064                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3065                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3066                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3067                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3068                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3069                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3070                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3071                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3072                         }
3073                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3074                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3075                 }
3076                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3077                 if (r->sid) {
3078                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3079                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3080                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3081                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3082                 }
3083                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3084                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3085                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3086                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3087                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3088                 if (r->eventauditoptions) {
3089                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3090                 }
3091         }
3092         return NDR_ERR_SUCCESS;
3093 }
3094
3095 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3096 {
3097         uint32_t cntr_eventauditoptions_1;
3098         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3099         ndr->depth++;
3100         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3101         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3102         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3103         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3104         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3105         ndr->depth++;
3106         if (r->eventauditoptions) {
3107                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3108                 ndr->depth++;
3109                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3110                         char *idx_1=NULL;
3111                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3112                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3113                                 free(idx_1);
3114                         }
3115                 }
3116                 ndr->depth--;
3117         }
3118         ndr->depth--;
3119         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3120         ndr_print_ptr(ndr, "sid", r->sid);
3121         ndr->depth++;
3122         if (r->sid) {
3123                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3124         }
3125         ndr->depth--;
3126         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3127         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3128         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3129         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3130         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3131         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3132         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3133         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3134         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3135         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3136         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3137         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3138         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3139         ndr->depth--;
3140 }
3141
3142 static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3143 {
3144         uint32_t cntr_controller_names_1;
3145         if (ndr_flags & NDR_SCALARS) {
3146                 NDR_CHECK(ndr_push_align(ndr, 4));
3147                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3148                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3149                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3150                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3151                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3152                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3153                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3154                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3155                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3156                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3157                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3158                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3159                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3160         }
3161         if (ndr_flags & NDR_BUFFERS) {
3162                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3163                 if (r->controller_names) {
3164                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3165                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3166                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3167                         }
3168                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3169                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3170                         }
3171                 }
3172                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3173                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3174                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3175                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3176                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3177         }
3178         return NDR_ERR_SUCCESS;
3179 }
3180
3181 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3182 {
3183         uint32_t _ptr_controller_names;
3184         uint32_t cntr_controller_names_1;
3185         TALLOC_CTX *_mem_save_controller_names_0;
3186         TALLOC_CTX *_mem_save_controller_names_1;
3187         if (ndr_flags & NDR_SCALARS) {
3188                 NDR_CHECK(ndr_pull_align(ndr, 4));
3189                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3190                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3191                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3192                 if (_ptr_controller_names) {
3193                         NDR_PULL_ALLOC(ndr, r->controller_names);
3194                 } else {
3195                         r->controller_names = NULL;
3196                 }
3197                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3198                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3199                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3200                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3201                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3202                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3203                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3204                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3205                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3206                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3207         }
3208         if (ndr_flags & NDR_BUFFERS) {
3209                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3210                 if (r->controller_names) {
3211                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3212                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3213                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3214                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3215                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3216                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3217                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3218                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3219                         }
3220                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3221                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3222                         }
3223                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3224                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3225                 }
3226                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3227                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3228                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3229                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3230                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3231                 if (r->controller_names) {
3232                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3233                 }
3234         }
3235         return NDR_ERR_SUCCESS;
3236 }
3237
3238 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3239 {
3240         uint32_t cntr_controller_names_1;
3241         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3242         ndr->depth++;
3243         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3244         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3245         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3246         ndr->depth++;
3247         if (r->controller_names) {
3248                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3249                 ndr->depth++;
3250                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3251                         char *idx_1=NULL;
3252                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3253                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3254                                 free(idx_1);
3255                         }
3256                 }
3257                 ndr->depth--;
3258         }
3259         ndr->depth--;
3260         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3261         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3262         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3263         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3264         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3265         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3266         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3267         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3268         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3269         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3270         ndr->depth--;
3271 }
3272
3273 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
3274 {
3275         if (ndr_flags & NDR_SCALARS) {
3276                 NDR_CHECK(ndr_push_align(ndr, 2));
3277                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3278         }
3279         if (ndr_flags & NDR_BUFFERS) {
3280         }
3281         return NDR_ERR_SUCCESS;
3282 }
3283
3284 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3285 {
3286         if (ndr_flags & NDR_SCALARS) {
3287                 NDR_CHECK(ndr_pull_align(ndr, 2));
3288                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3289         }
3290         if (ndr_flags & NDR_BUFFERS) {
3291         }
3292         return NDR_ERR_SUCCESS;
3293 }
3294
3295 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3296 {
3297         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3298         ndr->depth++;
3299         ndr_print_uint16(ndr, "unknown", r->unknown);
3300         ndr->depth--;
3301 }
3302
3303 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3304 {
3305         uint32_t cntr_privilege_attrib_1;
3306         uint32_t cntr_privilege_name_1;
3307         if (ndr_flags & NDR_SCALARS) {
3308                 NDR_CHECK(ndr_push_align(ndr, 4));
3309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3311                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3312                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3313                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3314                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3315                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3316                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3320                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3321                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3322                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3323                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3324                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3325         }
3326         if (ndr_flags & NDR_BUFFERS) {
3327                 if (r->privilege_attrib) {
3328                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3329                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3330                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3331                         }
3332                 }
3333                 if (r->privilege_name) {
3334                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3335                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3336                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3337                         }
3338                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3339                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3340                         }
3341                 }
3342                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3343                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3344                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3345                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3346                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3347         }
3348         return NDR_ERR_SUCCESS;
3349 }
3350
3351 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3352 {
3353         uint32_t _ptr_privilege_attrib;
3354         uint32_t cntr_privilege_attrib_1;
3355         TALLOC_CTX *_mem_save_privilege_attrib_0;
3356         TALLOC_CTX *_mem_save_privilege_attrib_1;
3357         uint32_t _ptr_privilege_name;
3358         uint32_t cntr_privilege_name_1;
3359         TALLOC_CTX *_mem_save_privilege_name_0;
3360         TALLOC_CTX *_mem_save_privilege_name_1;
3361         if (ndr_flags & NDR_SCALARS) {
3362                 NDR_CHECK(ndr_pull_align(ndr, 4));
3363                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3364                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3365                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3366                 if (_ptr_privilege_attrib) {
3367                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3368                 } else {
3369                         r->privilege_attrib = NULL;
3370                 }
3371                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3372                 if (_ptr_privilege_name) {
3373                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3374                 } else {
3375                         r->privilege_name = NULL;
3376                 }
3377                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3378                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3379                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3380                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3381                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3382                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3383                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3384                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3385                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3386                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3387                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3388                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3389         }
3390         if (ndr_flags & NDR_BUFFERS) {
3391                 if (r->privilege_attrib) {
3392                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3393                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3394                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3395                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3396                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3397                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3398                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3399                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3400                         }
3401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3402                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3403                 }
3404                 if (r->privilege_name) {
3405                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3406                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3407                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3408                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3409                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3410                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3411                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3412                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3413                         }
3414                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3415                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3416                         }
3417                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3418                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3419                 }
3420                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3421                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3422                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3423                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3424                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3425                 if (r->privilege_attrib) {
3426                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3427                 }
3428                 if (r->privilege_name) {
3429                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3430                 }
3431         }
3432         return NDR_ERR_SUCCESS;
3433 }
3434
3435 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3436 {
3437         uint32_t cntr_privilege_attrib_1;
3438         uint32_t cntr_privilege_name_1;
3439         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3440         ndr->depth++;
3441         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3442         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3443         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3444         ndr->depth++;
3445         if (r->privilege_attrib) {
3446                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3447                 ndr->depth++;
3448                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3449                         char *idx_1=NULL;
3450                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3451                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3452                                 free(idx_1);
3453                         }
3454                 }
3455                 ndr->depth--;
3456         }
3457         ndr->depth--;
3458         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3459         ndr->depth++;
3460         if (r->privilege_name) {
3461                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3462                 ndr->depth++;
3463                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3464                         char *idx_1=NULL;
3465                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3466                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3467                                 free(idx_1);
3468                         }
3469                 }
3470                 ndr->depth--;
3471         }
3472         ndr->depth--;
3473         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3474         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3475         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3476         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3477         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3478         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3479         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3480         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3481         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3482         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3483         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3484         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3485         ndr->depth--;
3486 }
3487
3488 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
3489 {
3490         if (ndr_flags & NDR_SCALARS) {
3491                 NDR_CHECK(ndr_push_align(ndr, 2));
3492                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3493         }
3494         if (ndr_flags & NDR_BUFFERS) {
3495         }
3496         return NDR_ERR_SUCCESS;
3497 }
3498
3499 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3500 {
3501         if (ndr_flags & NDR_SCALARS) {
3502                 NDR_CHECK(ndr_pull_align(ndr, 2));
3503                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3504         }
3505         if (ndr_flags & NDR_BUFFERS) {
3506         }
3507         return NDR_ERR_SUCCESS;
3508 }
3509
3510 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3511 {
3512         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3513         ndr->depth++;
3514         ndr_print_uint16(ndr, "unknown", r->unknown);
3515         ndr->depth--;
3516 }
3517
3518 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
3519 {
3520         if (ndr_flags & NDR_SCALARS) {
3521                 NDR_CHECK(ndr_push_align(ndr, 2));
3522                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3523         }
3524         if (ndr_flags & NDR_BUFFERS) {
3525         }
3526         return NDR_ERR_SUCCESS;
3527 }
3528
3529 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3530 {
3531         if (ndr_flags & NDR_SCALARS) {
3532                 NDR_CHECK(ndr_pull_align(ndr, 2));
3533                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3534         }
3535         if (ndr_flags & NDR_BUFFERS) {
3536         }
3537         return NDR_ERR_SUCCESS;
3538 }
3539
3540 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3541 {
3542         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3543         ndr->depth++;
3544         ndr_print_uint16(ndr, "unknown", r->unknown);
3545         ndr->depth--;
3546 }
3547
3548 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3549 {
3550         if (ndr_flags & NDR_SCALARS) {
3551                 NDR_CHECK(ndr_push_align(ndr, 4));
3552                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3553                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3554                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3555         }
3556         if (ndr_flags & NDR_BUFFERS) {
3557                 if (r->cipher_data) {
3558                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3559                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3561                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3562                 }
3563         }
3564         return NDR_ERR_SUCCESS;
3565 }
3566
3567 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3568 {
3569         uint32_t _ptr_cipher_data;
3570         TALLOC_CTX *_mem_save_cipher_data_0;
3571         if (ndr_flags & NDR_SCALARS) {
3572                 NDR_CHECK(ndr_pull_align(ndr, 4));
3573                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3574                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3575                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3576                 if (_ptr_cipher_data) {
3577                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3578                 } else {
3579                         r->cipher_data = NULL;
3580                 }
3581         }
3582         if (ndr_flags & NDR_BUFFERS) {
3583                 if (r->cipher_data) {
3584                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3585                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3586                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3587                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3588                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3589                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data));
3590                         }
3591                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3592                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3593                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3594                 }
3595                 if (r->cipher_data) {
3596                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3597                 }
3598                 if (r->cipher_data) {
3599                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3600                 }
3601         }
3602         return NDR_ERR_SUCCESS;
3603 }
3604
3605 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3606 {
3607         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3608         ndr->depth++;
3609         ndr_print_uint32(ndr, "len", r->len);
3610         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3611         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3612         ndr->depth++;
3613         if (r->cipher_data) {
3614                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3615         }
3616         ndr->depth--;
3617         ndr->depth--;
3618 }
3619
3620 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3621 {
3622         if (ndr_flags & NDR_SCALARS) {
3623                 NDR_CHECK(ndr_push_align(ndr, 4));
3624                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3625                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3626                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3627                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3628                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3629                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3630                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3631                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3632                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3633                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3636                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3637                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3638         }
3639         if (ndr_flags & NDR_BUFFERS) {
3640                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3641                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3642                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3643                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3644                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3645                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3646                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3647         }
3648         return NDR_ERR_SUCCESS;
3649 }
3650
3651 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3652 {
3653         if (ndr_flags & NDR_SCALARS) {
3654                 NDR_CHECK(ndr_pull_align(ndr, 4));
3655                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3656                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3657                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3658                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3659                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3660                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3661                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3662                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3663                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3664                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3665                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3666                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3668                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3669         }
3670         if (ndr_flags & NDR_BUFFERS) {
3671                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3672                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3673                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3674                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3675                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3676                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3677                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3678         }
3679         return NDR_ERR_SUCCESS;
3680 }
3681
3682 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3683 {
3684         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3685         ndr->depth++;
3686         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3687         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3688         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3689         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3690         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3691         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3692         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3693         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3694         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3695         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3696         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3697         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3698         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3699         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3700         ndr->depth--;
3701 }
3702
3703 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3704 {
3705         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3706         return NDR_ERR_SUCCESS;
3707 }
3708
3709 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3710 {
3711         uint16_t v;
3712         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3713         *r = v;
3714         return NDR_ERR_SUCCESS;
3715 }
3716
3717 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3718 {
3719         const char *val = NULL;
3720
3721         switch (r) {
3722                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3723                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3724                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3725                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3726                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3727                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3728                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3729                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3730                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3731                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3732                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3733                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3734                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3735                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3736                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3737                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3738                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3739                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3740                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3741                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3742                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3743                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3744         }
3745         ndr_print_enum(ndr, name, "ENUM", val, r);
3746 }
3747
3748 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3749 {
3750         if (ndr_flags & NDR_SCALARS) {
3751                 int level = ndr_push_get_switch_value(ndr, r);
3752                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3753                 switch (level) {
3754                         case NETR_DELTA_DOMAIN: {
3755                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3756                         break; }
3757
3758                         case NETR_DELTA_GROUP: {
3759                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3760                         break; }
3761
3762                         case NETR_DELTA_DELETE_GROUP: {
3763                         break; }
3764
3765                         case NETR_DELTA_RENAME_GROUP: {
3766                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3767                         break; }
3768
3769                         case NETR_DELTA_USER: {
3770                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3771                         break; }
3772
3773                         case NETR_DELTA_DELETE_USER: {
3774                         break; }
3775
3776                         case NETR_DELTA_RENAME_USER: {
3777                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3778                         break; }
3779
3780                         case NETR_DELTA_GROUP_MEMBER: {
3781                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3782                         break; }
3783
3784                         case NETR_DELTA_ALIAS: {
3785                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3786                         break; }
3787
3788                         case NETR_DELTA_DELETE_ALIAS: {
3789                         break; }
3790
3791                         case NETR_DELTA_RENAME_ALIAS: {
3792                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3793                         break; }
3794
3795                         case NETR_DELTA_ALIAS_MEMBER: {
3796                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3797                         break; }
3798
3799                         case NETR_DELTA_POLICY: {
3800                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3801                         break; }
3802
3803                         case NETR_DELTA_TRUSTED_DOMAIN: {
3804                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3805                         break; }
3806
3807                         case NETR_DELTA_DELETE_TRUST: {
3808                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3809                         break; }
3810
3811                         case NETR_DELTA_ACCOUNT: {
3812                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3813                         break; }
3814
3815                         case NETR_DELTA_DELETE_ACCOUNT: {
3816                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3817                         break; }
3818
3819                         case NETR_DELTA_SECRET: {
3820                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3821                         break; }
3822
3823                         case NETR_DELTA_DELETE_SECRET: {
3824                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3825                         break; }
3826
3827                         case NETR_DELTA_DELETE_GROUP2: {
3828                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3829                         break; }
3830
3831                         case NETR_DELTA_DELETE_USER2: {
3832                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3833                         break; }
3834
3835                         case NETR_DELTA_MODIFY_COUNT: {
3836                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3837                         break; }
3838
3839                         default:
3840                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3841                 }
3842         }
3843         if (ndr_flags & NDR_BUFFERS) {
3844                 int level = ndr_push_get_switch_value(ndr, r);
3845                 switch (level) {
3846                         case NETR_DELTA_DOMAIN:
3847                                 if (r->domain) {
3848                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3849                                 }
3850                         break;
3851
3852                         case NETR_DELTA_GROUP:
3853                                 if (r->group) {
3854                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3855                                 }
3856                         break;
3857
3858                         case NETR_DELTA_DELETE_GROUP:
3859                         break;
3860
3861                         case NETR_DELTA_RENAME_GROUP:
3862                                 if (r->rename_group) {
3863                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3864                                 }
3865                         break;
3866
3867                         case NETR_DELTA_USER:
3868                                 if (r->user) {
3869                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3870                                 }
3871                         break;
3872
3873                         case NETR_DELTA_DELETE_USER:
3874                         break;
3875
3876                         case NETR_DELTA_RENAME_USER:
3877                                 if (r->rename_user) {
3878                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3879                                 }
3880                         break;
3881
3882                         case NETR_DELTA_GROUP_MEMBER:
3883                                 if (r->group_member) {
3884                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3885                                 }
3886                         break;
3887
3888                         case NETR_DELTA_ALIAS:
3889                                 if (r->alias) {
3890                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3891                                 }
3892                         break;
3893
3894                         case NETR_DELTA_DELETE_ALIAS:
3895                         break;
3896
3897                         case NETR_DELTA_RENAME_ALIAS:
3898                                 if (r->rename_alias) {
3899                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3900                                 }
3901                         break;
3902
3903                         case NETR_DELTA_ALIAS_MEMBER:
3904                                 if (r->alias_member) {
3905                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3906                                 }
3907                         break;
3908
3909                         case NETR_DELTA_POLICY:
3910                                 if (r->policy) {
3911                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3912                                 }
3913                         break;
3914
3915                         case NETR_DELTA_TRUSTED_DOMAIN:
3916                                 if (r->trusted_domain) {
3917                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3918                                 }
3919                         break;
3920
3921                         case NETR_DELTA_DELETE_TRUST:
3922                         break;
3923
3924                         case NETR_DELTA_ACCOUNT:
3925                                 if (r->account) {
3926                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3927                                 }
3928                         break;
3929
3930                         case NETR_DELTA_DELETE_ACCOUNT:
3931                         break;
3932
3933                         case NETR_DELTA_SECRET:
3934                                 if (r->secret) {
3935                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3936                                 }
3937                         break;
3938
3939                         case NETR_DELTA_DELETE_SECRET:
3940                         break;
3941
3942                         case NETR_DELTA_DELETE_GROUP2:
3943                                 if (r->delete_group) {
3944                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3945                                 }
3946                         break;
3947
3948                         case NETR_DELTA_DELETE_USER2:
3949                                 if (r->delete_user) {
3950                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3951                                 }
3952                         break;
3953
3954                         case NETR_DELTA_MODIFY_COUNT:
3955                                 if (r->modified_count) {
3956                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3957                                 }
3958                         break;
3959
3960                         default:
3961                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3962                 }
3963         }
3964         return NDR_ERR_SUCCESS;
3965 }
3966
3967 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
3968 {
3969         int level;
3970         uint16_t _level;
3971         TALLOC_CTX *_mem_save_domain_0;
3972         TALLOC_CTX *_mem_save_group_0;
3973         TALLOC_CTX *_mem_save_rename_group_0;
3974         TALLOC_CTX *_mem_save_user_0;
3975         TALLOC_CTX *_mem_save_rename_user_0;
3976         TALLOC_CTX *_mem_save_group_member_0;
3977         TALLOC_CTX *_mem_save_alias_0;
3978         TALLOC_CTX *_mem_save_rename_alias_0;
3979         TALLOC_CTX *_mem_save_alias_member_0;
3980         TALLOC_CTX *_mem_save_policy_0;
3981         TALLOC_CTX *_mem_save_trusted_domain_0;
3982         TALLOC_CTX *_mem_save_account_0;
3983         TALLOC_CTX *_mem_save_secret_0;
3984         TALLOC_CTX *_mem_save_delete_group_0;
3985         TALLOC_CTX *_mem_save_delete_user_0;
3986         TALLOC_CTX *_mem_save_modified_count_0;
3987         level = ndr_pull_get_switch_value(ndr, r);
3988         if (ndr_flags & NDR_SCALARS) {
3989                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
3990                 if (_level != level) {
3991                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3992                 }
3993                 switch (level) {
3994                         case NETR_DELTA_DOMAIN: {
3995                                 uint32_t _ptr_domain;
3996                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
3997                                 if (_ptr_domain) {
3998                                         NDR_PULL_ALLOC(ndr, r->domain);
3999                                 } else {
4000                                         r->domain = NULL;
4001                                 }
4002                         break; }
4003
4004                         case NETR_DELTA_GROUP: {
4005                                 uint32_t _ptr_group;
4006                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4007                                 if (_ptr_group) {
4008                                         NDR_PULL_ALLOC(ndr, r->group);
4009                                 } else {
4010                                         r->group = NULL;
4011                                 }
4012                         break; }
4013
4014                         case NETR_DELTA_DELETE_GROUP: {
4015                         break; }
4016
4017                         case NETR_DELTA_RENAME_GROUP: {
4018                                 uint32_t _ptr_rename_group;
4019                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4020                                 if (_ptr_rename_group) {
4021                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4022                                 } else {
4023                                         r->rename_group = NULL;
4024                                 }
4025                         break; }
4026
4027                         case NETR_DELTA_USER: {
4028                                 uint32_t _ptr_user;
4029                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4030                                 if (_ptr_user) {
4031                                         NDR_PULL_ALLOC(ndr, r->user);
4032                                 } else {
4033                                         r->user = NULL;
4034                                 }
4035                         break; }
4036
4037                         case NETR_DELTA_DELETE_USER: {
4038                         break; }
4039
4040                         case NETR_DELTA_RENAME_USER: {
4041                                 uint32_t _ptr_rename_user;
4042                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4043                                 if (_ptr_rename_user) {
4044                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4045                                 } else {
4046                                         r->rename_user = NULL;
4047                                 }
4048                         break; }
4049
4050                         case NETR_DELTA_GROUP_MEMBER: {
4051                                 uint32_t _ptr_group_member;
4052                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4053                                 if (_ptr_group_member) {
4054                                         NDR_PULL_ALLOC(ndr, r->group_member);
4055                                 } else {
4056                                         r->group_member = NULL;
4057                                 }
4058                         break; }
4059
4060                         case NETR_DELTA_ALIAS: {
4061                                 uint32_t _ptr_alias;
4062                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4063                                 if (_ptr_alias) {
4064                                         NDR_PULL_ALLOC(ndr, r->alias);
4065                                 } else {
4066                                         r->alias = NULL;
4067                                 }
4068                         break; }
4069
4070                         case NETR_DELTA_DELETE_ALIAS: {
4071                         break; }
4072
4073                         case NETR_DELTA_RENAME_ALIAS: {
4074                                 uint32_t _ptr_rename_alias;
4075                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4076                                 if (_ptr_rename_alias) {
4077                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4078                                 } else {
4079                                         r->rename_alias = NULL;
4080                                 }
4081                         break; }
4082
4083                         case NETR_DELTA_ALIAS_MEMBER: {
4084                                 uint32_t _ptr_alias_member;
4085                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4086                                 if (_ptr_alias_member) {
4087                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4088                                 } else {
4089                                         r->alias_member = NULL;
4090                                 }
4091                         break; }
4092
4093                         case NETR_DELTA_POLICY: {
4094                                 uint32_t _ptr_policy;
4095                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4096                                 if (_ptr_policy) {
4097                                         NDR_PULL_ALLOC(ndr, r->policy);
4098                                 } else {
4099                                         r->policy = NULL;
4100                                 }
4101                         break; }
4102
4103                         case NETR_DELTA_TRUSTED_DOMAIN: {
4104                                 uint32_t _ptr_trusted_domain;
4105                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4106                                 if (_ptr_trusted_domain) {
4107                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4108                                 } else {
4109                                         r->trusted_domain = NULL;
4110                                 }
4111                         break; }
4112
4113                         case NETR_DELTA_DELETE_TRUST: {
4114                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4115                         break; }
4116
4117                         case NETR_DELTA_ACCOUNT: {
4118                                 uint32_t _ptr_account;
4119                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4120                                 if (_ptr_account) {
4121                                         NDR_PULL_ALLOC(ndr, r->account);
4122                                 } else {
4123                                         r->account = NULL;
4124                                 }
4125                         break; }
4126
4127                         case NETR_DELTA_DELETE_ACCOUNT: {
4128                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4129                         break; }
4130
4131                         case NETR_DELTA_SECRET: {
4132                                 uint32_t _ptr_secret;
4133                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4134                                 if (_ptr_secret) {
4135                                         NDR_PULL_ALLOC(ndr, r->secret);
4136                                 } else {
4137                                         r->secret = NULL;
4138                                 }
4139                         break; }
4140
4141                         case NETR_DELTA_DELETE_SECRET: {
4142                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4143                         break; }
4144
4145                         case NETR_DELTA_DELETE_GROUP2: {
4146                                 uint32_t _ptr_delete_group;
4147                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4148                                 if (_ptr_delete_group) {
4149                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4150                                 } else {
4151                                         r->delete_group = NULL;
4152                                 }
4153                         break; }
4154
4155                         case NETR_DELTA_DELETE_USER2: {
4156                                 uint32_t _ptr_delete_user;
4157                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4158                                 if (_ptr_delete_user) {
4159                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4160                                 } else {
4161                                         r->delete_user = NULL;
4162                                 }
4163                         break; }
4164
4165                         case NETR_DELTA_MODIFY_COUNT: {
4166                                 uint32_t _ptr_modified_count;
4167                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4168                                 if (_ptr_modified_count) {
4169                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4170                                 } else {
4171                                         r->modified_count = NULL;
4172                                 }
4173                         break; }
4174
4175                         default:
4176                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4177                 }
4178         }
4179         if (ndr_flags & NDR_BUFFERS) {
4180                 switch (level) {
4181                         case NETR_DELTA_DOMAIN:
4182                                 if (r->domain) {
4183                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4184                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4185                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4186                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4187                                 }
4188                         break;
4189
4190                         case NETR_DELTA_GROUP:
4191                                 if (r->group) {
4192                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4193                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4194                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4195                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4196                                 }
4197                         break;
4198
4199                         case NETR_DELTA_DELETE_GROUP:
4200                         break;
4201
4202                         case NETR_DELTA_RENAME_GROUP:
4203                                 if (r->rename_group) {
4204                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4205                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4206                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4207                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4208                                 }
4209                         break;
4210
4211                         case NETR_DELTA_USER:
4212                                 if (r->user) {
4213                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4214                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4215                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4216                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4217                                 }
4218                         break;
4219
4220                         case NETR_DELTA_DELETE_USER:
4221                         break;
4222
4223                         case NETR_DELTA_RENAME_USER:
4224                                 if (r->rename_user) {
4225                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4226                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4227                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4228                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4229                                 }
4230                         break;
4231
4232                         case NETR_DELTA_GROUP_MEMBER:
4233                                 if (r->group_member) {
4234                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4235                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4236                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4237                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4238                                 }
4239                         break;
4240
4241                         case NETR_DELTA_ALIAS:
4242                                 if (r->alias) {
4243                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4244                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4245                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4246                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4247                                 }
4248                         break;
4249
4250                         case NETR_DELTA_DELETE_ALIAS:
4251                         break;
4252
4253                         case NETR_DELTA_RENAME_ALIAS:
4254                                 if (r->rename_alias) {
4255                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4256                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4257                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4258                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4259                                 }
4260                         break;
4261
4262                         case NETR_DELTA_ALIAS_MEMBER:
4263                                 if (r->alias_member) {
4264                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4265                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4266                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4267                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4268                                 }
4269                         break;
4270
4271                         case NETR_DELTA_POLICY:
4272                                 if (r->policy) {
4273                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4274                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4275                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4276                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4277                                 }
4278                         break;
4279
4280                         case NETR_DELTA_TRUSTED_DOMAIN:
4281                                 if (r->trusted_domain) {
4282                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4283                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4284                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4285                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4286                                 }
4287                         break;
4288
4289                         case NETR_DELTA_DELETE_TRUST:
4290                         break;
4291
4292                         case NETR_DELTA_ACCOUNT:
4293                                 if (r->account) {
4294                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4295                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4296                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4297                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4298                                 }
4299                         break;
4300
4301                         case NETR_DELTA_DELETE_ACCOUNT:
4302                         break;
4303
4304                         case NETR_DELTA_SECRET:
4305                                 if (r->secret) {
4306                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4307                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4308                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4309                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4310                                 }
4311                         break;
4312
4313                         case NETR_DELTA_DELETE_SECRET:
4314                         break;
4315
4316                         case NETR_DELTA_DELETE_GROUP2:
4317                                 if (r->delete_group) {
4318                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4319                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4320                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4321                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4322                                 }
4323                         break;
4324
4325                         case NETR_DELTA_DELETE_USER2:
4326                                 if (r->delete_user) {
4327                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4328                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4329                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4330                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4331                                 }
4332                         break;
4333
4334                         case NETR_DELTA_MODIFY_COUNT:
4335                                 if (r->modified_count) {
4336                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4337                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4338                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4339                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4340                                 }
4341                         break;
4342
4343                         default:
4344                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4345                 }
4346         }
4347         return NDR_ERR_SUCCESS;
4348 }
4349
4350 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4351 {
4352         int level;
4353         level = ndr_print_get_switch_value(ndr, r);
4354         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4355         switch (level) {
4356                 case NETR_DELTA_DOMAIN:
4357                         ndr_print_ptr(ndr, "domain", r->domain);
4358                         ndr->depth++;
4359                         if (r->domain) {
4360                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4361                         }
4362                         ndr->depth--;
4363                 break;
4364
4365                 case NETR_DELTA_GROUP:
4366                         ndr_print_ptr(ndr, "group", r->group);
4367                         ndr->depth++;
4368                         if (r->group) {
4369                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4370                         }
4371                         ndr->depth--;
4372                 break;
4373
4374                 case NETR_DELTA_DELETE_GROUP:
4375                 break;
4376
4377                 case NETR_DELTA_RENAME_GROUP:
4378                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4379                         ndr->depth++;
4380                         if (r->rename_group) {
4381                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4382                         }
4383                         ndr->depth--;
4384                 break;
4385
4386                 case NETR_DELTA_USER:
4387                         ndr_print_ptr(ndr, "user", r->user);
4388                         ndr->depth++;
4389                         if (r->user) {
4390                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4391                         }
4392                         ndr->depth--;
4393                 break;
4394
4395                 case NETR_DELTA_DELETE_USER:
4396                 break;
4397
4398                 case NETR_DELTA_RENAME_USER:
4399                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4400                         ndr->depth++;
4401                         if (r->rename_user) {
4402                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4403                         }
4404                         ndr->depth--;
4405                 break;
4406
4407                 case NETR_DELTA_GROUP_MEMBER:
4408                         ndr_print_ptr(ndr, "group_member", r->group_member);
4409                         ndr->depth++;
4410                         if (r->group_member) {
4411                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4412                         }
4413                         ndr->depth--;
4414                 break;
4415
4416                 case NETR_DELTA_ALIAS:
4417                         ndr_print_ptr(ndr, "alias", r->alias);
4418                         ndr->depth++;
4419                         if (r->alias) {
4420                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4421                         }
4422                         ndr->depth--;
4423                 break;
4424
4425                 case NETR_DELTA_DELETE_ALIAS:
4426                 break;
4427
4428                 case NETR_DELTA_RENAME_ALIAS:
4429                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4430                         ndr->depth++;
4431                         if (r->rename_alias) {
4432                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4433                         }
4434                         ndr->depth--;
4435                 break;
4436
4437                 case NETR_DELTA_ALIAS_MEMBER:
4438                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4439                         ndr->depth++;
4440                         if (r->alias_member) {
4441                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4442                         }
4443                         ndr->depth--;
4444                 break;
4445
4446                 case NETR_DELTA_POLICY:
4447                         ndr_print_ptr(ndr, "policy", r->policy);
4448                         ndr->depth++;
4449                         if (r->policy) {
4450                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4451                         }
4452                         ndr->depth--;
4453                 break;
4454
4455                 case NETR_DELTA_TRUSTED_DOMAIN:
4456                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4457                         ndr->depth++;
4458                         if (r->trusted_domain) {
4459                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4460                         }
4461                         ndr->depth--;
4462                 break;
4463
4464                 case NETR_DELTA_DELETE_TRUST:
4465                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4466                 break;
4467
4468                 case NETR_DELTA_ACCOUNT:
4469                         ndr_print_ptr(ndr, "account", r->account);
4470                         ndr->depth++;
4471                         if (r->account) {
4472                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4473                         }
4474                         ndr->depth--;
4475                 break;
4476
4477                 case NETR_DELTA_DELETE_ACCOUNT:
4478                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4479                 break;
4480
4481                 case NETR_DELTA_SECRET:
4482                         ndr_print_ptr(ndr, "secret", r->secret);
4483                         ndr->depth++;
4484                         if (r->secret) {
4485                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4486                         }
4487                         ndr->depth--;
4488                 break;
4489
4490                 case NETR_DELTA_DELETE_SECRET:
4491                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4492                 break;
4493
4494                 case NETR_DELTA_DELETE_GROUP2:
4495                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4496                         ndr->depth++;
4497                         if (r->delete_group) {
4498                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4499                         }
4500                         ndr->depth--;
4501                 break;
4502
4503                 case NETR_DELTA_DELETE_USER2:
4504                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4505                         ndr->depth++;
4506                         if (r->delete_user) {
4507                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4508                         }
4509                         ndr->depth--;
4510                 break;
4511
4512                 case NETR_DELTA_MODIFY_COUNT:
4513                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4514                         ndr->depth++;
4515                         if (r->modified_count) {
4516                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4517                         }
4518                         ndr->depth--;
4519                 break;
4520
4521                 default:
4522                         ndr_print_bad_level(ndr, name, level);
4523         }
4524 }
4525
4526 static enum ndr_err_code ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
4527 {
4528         if (ndr_flags & NDR_SCALARS) {
4529                 int level = ndr_push_get_switch_value(ndr, r);
4530                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4531                 switch (level) {
4532                         case NETR_DELTA_DOMAIN: {
4533                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4534                         break; }
4535
4536                         case NETR_DELTA_GROUP: {
4537                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4538                         break; }
4539
4540                         case NETR_DELTA_DELETE_GROUP: {
4541                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4542                         break; }
4543
4544                         case NETR_DELTA_RENAME_GROUP: {
4545                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4546                         break; }
4547
4548                         case NETR_DELTA_USER: {
4549                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4550                         break; }
4551
4552                         case NETR_DELTA_DELETE_USER: {
4553                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4554                         break; }
4555
4556                         case NETR_DELTA_RENAME_USER: {
4557                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4558                         break; }
4559
4560                         case NETR_DELTA_GROUP_MEMBER: {
4561                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4562                         break; }
4563
4564                         case NETR_DELTA_ALIAS: {
4565                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4566                         break; }
4567
4568                         case NETR_DELTA_DELETE_ALIAS: {
4569                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4570                         break; }
4571
4572                         case NETR_DELTA_RENAME_ALIAS: {
4573                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4574                         break; }
4575
4576                         case NETR_DELTA_ALIAS_MEMBER: {
4577                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4578                         break; }
4579
4580                         case NETR_DELTA_POLICY: {
4581                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4582                         break; }
4583
4584                         case NETR_DELTA_TRUSTED_DOMAIN: {
4585                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4586                         break; }
4587
4588                         case NETR_DELTA_DELETE_TRUST: {
4589                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4590                         break; }
4591
4592                         case NETR_DELTA_ACCOUNT: {
4593                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4594                         break; }
4595
4596                         case NETR_DELTA_DELETE_ACCOUNT: {
4597                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4598                         break; }
4599
4600                         case NETR_DELTA_SECRET: {
4601                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4602                         break; }
4603
4604                         case NETR_DELTA_DELETE_SECRET: {
4605                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4606                         break; }
4607
4608                         case NETR_DELTA_DELETE_GROUP2: {
4609                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4610                         break; }
4611
4612                         case NETR_DELTA_DELETE_USER2: {
4613                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4614                         break; }
4615
4616                         case NETR_DELTA_MODIFY_COUNT: {
4617                         break; }
4618
4619                         default:
4620                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4621                 }
4622         }
4623         if (ndr_flags & NDR_BUFFERS) {
4624                 int level = ndr_push_get_switch_value(ndr, r);
4625                 switch (level) {
4626                         case NETR_DELTA_DOMAIN:
4627                         break;
4628
4629                         case NETR_DELTA_GROUP:
4630                         break;
4631
4632                         case NETR_DELTA_DELETE_GROUP:
4633                         break;
4634
4635                         case NETR_DELTA_RENAME_GROUP:
4636                         break;
4637
4638                         case NETR_DELTA_USER:
4639                         break;
4640
4641                         case NETR_DELTA_DELETE_USER:
4642                         break;
4643
4644                         case NETR_DELTA_RENAME_USER:
4645                         break;
4646
4647                         case NETR_DELTA_GROUP_MEMBER:
4648                         break;
4649
4650                         case NETR_DELTA_ALIAS:
4651                         break;
4652
4653                         case NETR_DELTA_DELETE_ALIAS:
4654                         break;
4655
4656                         case NETR_DELTA_RENAME_ALIAS:
4657                         break;
4658
4659                         case NETR_DELTA_ALIAS_MEMBER:
4660                         break;
4661
4662                         case NETR_DELTA_POLICY:
4663                                 if (r->sid) {
4664                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4665                                 }
4666                         break;
4667
4668                         case NETR_DELTA_TRUSTED_DOMAIN:
4669                                 if (r->sid) {
4670                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4671                                 }
4672                         break;
4673
4674                         case NETR_DELTA_DELETE_TRUST:
4675                                 if (r->sid) {
4676                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4677                                 }
4678                         break;
4679
4680                         case NETR_DELTA_ACCOUNT:
4681                                 if (r->sid) {
4682                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4683                                 }
4684                         break;
4685
4686                         case NETR_DELTA_DELETE_ACCOUNT:
4687                                 if (r->sid) {
4688                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4689                                 }
4690                         break;
4691
4692                         case NETR_DELTA_SECRET:
4693                                 if (r->name) {
4694                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4695                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4696                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4697                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4698                                 }
4699                         break;
4700
4701                         case NETR_DELTA_DELETE_SECRET:
4702                                 if (r->name) {
4703                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4704                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4705                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4706                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4707                                 }
4708                         break;
4709
4710                         case NETR_DELTA_DELETE_GROUP2:
4711                         break;
4712
4713                         case NETR_DELTA_DELETE_USER2:
4714                         break;
4715
4716                         case NETR_DELTA_MODIFY_COUNT:
4717                         break;
4718
4719                         default:
4720                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4721                 }
4722         }
4723         return NDR_ERR_SUCCESS;
4724 }
4725
4726 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4727 {
4728         int level;
4729         uint16_t _level;
4730         TALLOC_CTX *_mem_save_sid_0;
4731         TALLOC_CTX *_mem_save_name_0;
4732         level = ndr_pull_get_switch_value(ndr, r);
4733         if (ndr_flags & NDR_SCALARS) {
4734                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4735                 if (_level != level) {
4736                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4737                 }
4738                 switch (level) {
4739                         case NETR_DELTA_DOMAIN: {
4740                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4741                         break; }
4742
4743                         case NETR_DELTA_GROUP: {
4744                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4745                         break; }
4746
4747                         case NETR_DELTA_DELETE_GROUP: {
4748                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4749                         break; }
4750
4751                         case NETR_DELTA_RENAME_GROUP: {
4752                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4753                         break; }
4754
4755                         case NETR_DELTA_USER: {
4756                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4757                         break; }
4758
4759                         case NETR_DELTA_DELETE_USER: {
4760                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4761                         break; }
4762
4763                         case NETR_DELTA_RENAME_USER: {
4764                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4765                         break; }
4766
4767                         case NETR_DELTA_GROUP_MEMBER: {
4768                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4769                         break; }
4770
4771                         case NETR_DELTA_ALIAS: {
4772                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4773                         break; }
4774
4775                         case NETR_DELTA_DELETE_ALIAS: {
4776                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4777                         break; }
4778
4779                         case NETR_DELTA_RENAME_ALIAS: {
4780                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4781                         break; }
4782
4783                         case NETR_DELTA_ALIAS_MEMBER: {
4784                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4785                         break; }
4786
4787                         case NETR_DELTA_POLICY: {
4788                                 uint32_t _ptr_sid;
4789                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4790                                 if (_ptr_sid) {
4791                                         NDR_PULL_ALLOC(ndr, r->sid);
4792                                 } else {
4793                                         r->sid = NULL;
4794                                 }
4795                         break; }
4796
4797                         case NETR_DELTA_TRUSTED_DOMAIN: {
4798                                 uint32_t _ptr_sid;
4799                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4800                                 if (_ptr_sid) {
4801                                         NDR_PULL_ALLOC(ndr, r->sid);
4802                                 } else {
4803                                         r->sid = NULL;
4804                                 }
4805                         break; }
4806
4807                         case NETR_DELTA_DELETE_TRUST: {
4808                                 uint32_t _ptr_sid;
4809                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4810                                 if (_ptr_sid) {
4811                                         NDR_PULL_ALLOC(ndr, r->sid);
4812                                 } else {
4813                                         r->sid = NULL;
4814                                 }
4815                         break; }
4816
4817                         case NETR_DELTA_ACCOUNT: {
4818                                 uint32_t _ptr_sid;
4819                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4820                                 if (_ptr_sid) {
4821                                         NDR_PULL_ALLOC(ndr, r->sid);
4822                                 } else {
4823                                         r->sid = NULL;
4824                                 }
4825                         break; }
4826
4827                         case NETR_DELTA_DELETE_ACCOUNT: {
4828                                 uint32_t _ptr_sid;
4829                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4830                                 if (_ptr_sid) {
4831                                         NDR_PULL_ALLOC(ndr, r->sid);
4832                                 } else {
4833                                         r->sid = NULL;
4834                                 }
4835                         break; }
4836
4837                         case NETR_DELTA_SECRET: {
4838                                 uint32_t _ptr_name;
4839                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4840                                 if (_ptr_name) {
4841                                         NDR_PULL_ALLOC(ndr, r->name);
4842                                 } else {
4843                                         r->name = NULL;
4844                                 }
4845                         break; }
4846
4847                         case NETR_DELTA_DELETE_SECRET: {
4848                                 uint32_t _ptr_name;
4849                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4850                                 if (_ptr_name) {
4851                                         NDR_PULL_ALLOC(ndr, r->name);
4852                                 } else {
4853                                         r->name = NULL;
4854                                 }
4855                         break; }
4856
4857                         case NETR_DELTA_DELETE_GROUP2: {
4858                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4859                         break; }
4860
4861                         case NETR_DELTA_DELETE_USER2: {
4862                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4863                         break; }
4864
4865                         case NETR_DELTA_MODIFY_COUNT: {
4866                         break; }
4867
4868                         default:
4869                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4870                 }
4871         }
4872         if (ndr_flags & NDR_BUFFERS) {
4873                 switch (level) {
4874                         case NETR_DELTA_DOMAIN:
4875                         break;
4876
4877                         case NETR_DELTA_GROUP:
4878                         break;
4879
4880                         case NETR_DELTA_DELETE_GROUP:
4881                         break;
4882
4883                         case NETR_DELTA_RENAME_GROUP:
4884                         break;
4885
4886                         case NETR_DELTA_USER:
4887                         break;
4888
4889                         case NETR_DELTA_DELETE_USER:
4890                         break;
4891
4892                         case NETR_DELTA_RENAME_USER:
4893                         break;
4894
4895                         case NETR_DELTA_GROUP_MEMBER:
4896                         break;
4897
4898                         case NETR_DELTA_ALIAS:
4899                         break;
4900
4901                         case NETR_DELTA_DELETE_ALIAS:
4902                         break;
4903
4904                         case NETR_DELTA_RENAME_ALIAS:
4905                         break;
4906
4907                         case NETR_DELTA_ALIAS_MEMBER:
4908                         break;
4909
4910                         case NETR_DELTA_POLICY:
4911                                 if (r->sid) {
4912                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4913                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4914                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4915                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4916                                 }
4917                         break;
4918
4919                         case NETR_DELTA_TRUSTED_DOMAIN:
4920                                 if (r->sid) {
4921                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4922                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4923                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4924                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4925                                 }
4926                         break;
4927
4928                         case NETR_DELTA_DELETE_TRUST:
4929                                 if (r->sid) {
4930                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4931                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4932                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4933                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4934                                 }
4935                         break;
4936
4937                         case NETR_DELTA_ACCOUNT:
4938                                 if (r->sid) {
4939                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4940                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4941                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4942                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4943                                 }
4944                         break;
4945
4946                         case NETR_DELTA_DELETE_ACCOUNT:
4947                                 if (r->sid) {
4948                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4949                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4950                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4951                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4952                                 }
4953                         break;
4954
4955                         case NETR_DELTA_SECRET:
4956                                 if (r->name) {
4957                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4958                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4959                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4960                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4961                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4962                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
4963                                         }
4964                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4965                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4966                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4967                                 }
4968                         break;
4969
4970                         case NETR_DELTA_DELETE_SECRET:
4971                                 if (r->name) {
4972                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4973                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4974                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4975                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4976                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4977                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
4978                                         }
4979                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4980                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4981                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4982                                 }
4983                         break;
4984
4985                         case NETR_DELTA_DELETE_GROUP2:
4986                         break;
4987
4988                         case NETR_DELTA_DELETE_USER2:
4989                         break;
4990
4991                         case NETR_DELTA_MODIFY_COUNT:
4992                         break;
4993
4994                         default:
4995                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4996                 }
4997         }
4998         return NDR_ERR_SUCCESS;
4999 }
5000
5001 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5002 {
5003         int level;
5004         level = ndr_print_get_switch_value(ndr, r);
5005         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5006         switch (level) {
5007                 case NETR_DELTA_DOMAIN:
5008                         ndr_print_uint32(ndr, "rid", r->rid);
5009                 break;
5010
5011                 case NETR_DELTA_GROUP:
5012                         ndr_print_uint32(ndr, "rid", r->rid);
5013                 break;
5014
5015                 case NETR_DELTA_DELETE_GROUP:
5016                         ndr_print_uint32(ndr, "rid", r->rid);
5017                 break;
5018
5019                 case NETR_DELTA_RENAME_GROUP:
5020                         ndr_print_uint32(ndr, "rid", r->rid);
5021                 break;
5022
5023                 case NETR_DELTA_USER:
5024                         ndr_print_uint32(ndr, "rid", r->rid);
5025                 break;
5026
5027                 case NETR_DELTA_DELETE_USER:
5028                         ndr_print_uint32(ndr, "rid", r->rid);
5029                 break;
5030
5031                 case NETR_DELTA_RENAME_USER:
5032                         ndr_print_uint32(ndr, "rid", r->rid);
5033                 break;
5034
5035                 case NETR_DELTA_GROUP_MEMBER:
5036                         ndr_print_uint32(ndr, "rid", r->rid);
5037                 break;
5038
5039                 case NETR_DELTA_ALIAS:
5040                         ndr_print_uint32(ndr, "rid", r->rid);
5041                 break;
5042
5043                 case NETR_DELTA_DELETE_ALIAS:
5044                         ndr_print_uint32(ndr, "rid", r->rid);
5045                 break;
5046
5047                 case NETR_DELTA_RENAME_ALIAS:
5048                         ndr_print_uint32(ndr, "rid", r->rid);
5049                 break;
5050
5051                 case NETR_DELTA_ALIAS_MEMBER:
5052                         ndr_print_uint32(ndr, "rid", r->rid);
5053                 break;
5054
5055                 case NETR_DELTA_POLICY:
5056                         ndr_print_ptr(ndr, "sid", r->sid);
5057                         ndr->depth++;
5058                         if (r->sid) {
5059                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5060                         }
5061                         ndr->depth--;
5062                 break;
5063
5064                 case NETR_DELTA_TRUSTED_DOMAIN:
5065                         ndr_print_ptr(ndr, "sid", r->sid);
5066                         ndr->depth++;
5067                         if (r->sid) {
5068                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5069                         }
5070                         ndr->depth--;
5071                 break;
5072
5073                 case NETR_DELTA_DELETE_TRUST:
5074                         ndr_print_ptr(ndr, "sid", r->sid);
5075                         ndr->depth++;
5076                         if (r->sid) {
5077                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5078                         }
5079                         ndr->depth--;
5080                 break;
5081
5082                 case NETR_DELTA_ACCOUNT:
5083                         ndr_print_ptr(ndr, "sid", r->sid);
5084                         ndr->depth++;
5085                         if (r->sid) {
5086                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5087                         }
5088                         ndr->depth--;
5089                 break;
5090
5091                 case NETR_DELTA_DELETE_ACCOUNT:
5092                         ndr_print_ptr(ndr, "sid", r->sid);
5093                         ndr->depth++;
5094                         if (r->sid) {
5095                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5096                         }
5097                         ndr->depth--;
5098                 break;
5099
5100                 case NETR_DELTA_SECRET:
5101                         ndr_print_ptr(ndr, "name", r->name);
5102                         ndr->depth++;
5103                         if (r->name) {
5104                                 ndr_print_string(ndr, "name", r->name);
5105                         }
5106                         ndr->depth--;
5107                 break;
5108
5109                 case NETR_DELTA_DELETE_SECRET:
5110                         ndr_print_ptr(ndr, "name", r->name);
5111                         ndr->depth++;
5112                         if (r->name) {
5113                                 ndr_print_string(ndr, "name", r->name);
5114                         }
5115                         ndr->depth--;
5116                 break;
5117
5118                 case NETR_DELTA_DELETE_GROUP2:
5119                         ndr_print_uint32(ndr, "rid", r->rid);
5120                 break;
5121
5122                 case NETR_DELTA_DELETE_USER2:
5123                         ndr_print_uint32(ndr, "rid", r->rid);
5124                 break;
5125
5126                 case NETR_DELTA_MODIFY_COUNT:
5127                 break;
5128
5129                 default:
5130                         ndr_print_bad_level(ndr, name, level);
5131         }
5132 }
5133
5134 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5135 {
5136         if (ndr_flags & NDR_SCALARS) {
5137                 NDR_CHECK(ndr_push_align(ndr, 4));
5138                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5139                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5140                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5141                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5142                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5143         }
5144         if (ndr_flags & NDR_BUFFERS) {
5145                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5146                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5147         }
5148         return NDR_ERR_SUCCESS;
5149 }
5150
5151 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5152 {
5153         if (ndr_flags & NDR_SCALARS) {
5154                 NDR_CHECK(ndr_pull_align(ndr, 4));
5155                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5156                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5157                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5158                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5159                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5160         }
5161         if (ndr_flags & NDR_BUFFERS) {
5162                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5163                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5164         }
5165         return NDR_ERR_SUCCESS;
5166 }
5167
5168 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5169 {
5170         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5171         ndr->depth++;
5172         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5173         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5174         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5175         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5176         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5177         ndr->depth--;
5178 }
5179
5180 static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
5181 {
5182         uint32_t cntr_delta_enum_1;
5183         if (ndr_flags & NDR_SCALARS) {
5184                 NDR_CHECK(ndr_push_align(ndr, 4));
5185                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5186                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5187         }
5188         if (ndr_flags & NDR_BUFFERS) {
5189                 if (r->delta_enum) {
5190                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5191                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5192                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5193                         }
5194                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5195                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5196                         }
5197                 }
5198         }
5199         return NDR_ERR_SUCCESS;
5200 }
5201
5202 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5203 {
5204         uint32_t _ptr_delta_enum;
5205         uint32_t cntr_delta_enum_1;
5206         TALLOC_CTX *_mem_save_delta_enum_0;
5207         TALLOC_CTX *_mem_save_delta_enum_1;
5208         if (ndr_flags & NDR_SCALARS) {
5209                 NDR_CHECK(ndr_pull_align(ndr, 4));
5210                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5211                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5212                 if (_ptr_delta_enum) {
5213                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5214                 } else {
5215                         r->delta_enum = NULL;
5216                 }
5217         }
5218         if (ndr_flags & NDR_BUFFERS) {
5219                 if (r->delta_enum) {
5220                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5221                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5222                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5223                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5224                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5225                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5226                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5227                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5228                         }
5229                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5230                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5231                         }
5232                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5233                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5234                 }
5235                 if (r->delta_enum) {
5236                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5237                 }
5238         }
5239         return NDR_ERR_SUCCESS;
5240 }
5241
5242 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5243 {
5244         uint32_t cntr_delta_enum_1;
5245         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5246         ndr->depth++;
5247         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5248         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5249         ndr->depth++;
5250         if (r->delta_enum) {
5251                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5252                 ndr->depth++;
5253                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5254                         char *idx_1=NULL;
5255                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5256                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5257                                 free(idx_1);
5258                         }
5259                 }
5260                 ndr->depth--;
5261         }
5262         ndr->depth--;
5263         ndr->depth--;
5264 }
5265
5266 static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
5267 {
5268         {
5269                 uint32_t _flags_save_STRUCT = ndr->flags;
5270                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5271                 if (ndr_flags & NDR_SCALARS) {
5272                         NDR_CHECK(ndr_push_align(ndr, 4));
5273                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5274                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5275                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5276                 }
5277                 if (ndr_flags & NDR_BUFFERS) {
5278                 }
5279                 ndr->flags = _flags_save_STRUCT;
5280         }
5281         return NDR_ERR_SUCCESS;
5282 }
5283
5284 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5285 {
5286         {
5287                 uint32_t _flags_save_STRUCT = ndr->flags;
5288                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5289                 if (ndr_flags & NDR_SCALARS) {
5290                         NDR_CHECK(ndr_pull_align(ndr, 4));
5291                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5292                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5293                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5294                 }
5295                 if (ndr_flags & NDR_BUFFERS) {
5296                 }
5297                 ndr->flags = _flags_save_STRUCT;
5298         }
5299         return NDR_ERR_SUCCESS;
5300 }
5301
5302 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5303 {
5304         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5305         {
5306                 uint32_t _flags_save_STRUCT = ndr->flags;
5307                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5308                 ndr->depth++;
5309                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5310                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5311                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5312                 ndr->depth--;
5313                 ndr->flags = _flags_save_STRUCT;
5314         }
5315 }
5316
5317 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5318 {
5319         if (ndr_flags & NDR_SCALARS) {
5320                 NDR_CHECK(ndr_push_align(ndr, 4));
5321                 {
5322                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5323                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5324                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5325                         ndr->flags = _flags_save_DATA_BLOB;
5326                 }
5327         }
5328         if (ndr_flags & NDR_BUFFERS) {
5329         }
5330         return NDR_ERR_SUCCESS;
5331 }
5332
5333 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5334 {
5335         if (ndr_flags & NDR_SCALARS) {
5336                 NDR_CHECK(ndr_pull_align(ndr, 4));
5337                 {
5338                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5339                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5340                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5341                         ndr->flags = _flags_save_DATA_BLOB;
5342                 }
5343         }
5344         if (ndr_flags & NDR_BUFFERS) {
5345         }
5346         return NDR_ERR_SUCCESS;
5347 }
5348
5349 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5350 {
5351         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5352         ndr->depth++;
5353         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5354         ndr->depth--;
5355 }
5356
5357 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5358 {
5359         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5360         return NDR_ERR_SUCCESS;
5361 }
5362
5363 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5364 {
5365         uint32_t v;
5366         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5367         *r = v;
5368         return NDR_ERR_SUCCESS;
5369 }
5370
5371 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5372 {
5373         ndr_print_uint32(ndr, name, r);
5374         ndr->depth++;
5375         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5376         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5377         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5378         ndr->depth--;
5379 }
5380
5381 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
5382 {
5383         if (ndr_flags & NDR_SCALARS) {
5384                 NDR_CHECK(ndr_push_align(ndr, 4));
5385                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5386                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5387         }
5388         if (ndr_flags & NDR_BUFFERS) {
5389         }
5390         return NDR_ERR_SUCCESS;
5391 }
5392
5393 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5394 {
5395         if (ndr_flags & NDR_SCALARS) {
5396                 NDR_CHECK(ndr_pull_align(ndr, 4));
5397                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5398                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5399         }
5400         if (ndr_flags & NDR_BUFFERS) {
5401         }
5402         return NDR_ERR_SUCCESS;
5403 }
5404
5405 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5406 {
5407         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5408         ndr->depth++;
5409         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5410         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5411         ndr->depth--;
5412 }
5413
5414 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
5415 {
5416         if (ndr_flags & NDR_SCALARS) {
5417                 NDR_CHECK(ndr_push_align(ndr, 4));
5418                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5419                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5420                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5422         }
5423         if (ndr_flags & NDR_BUFFERS) {
5424                 if (r->trusted_dc_name) {
5425                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5427                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5428                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5429                 }
5430         }
5431         return NDR_ERR_SUCCESS;
5432 }
5433
5434 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5435 {
5436         uint32_t _ptr_trusted_dc_name;
5437         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5438         if (ndr_flags & NDR_SCALARS) {
5439                 NDR_CHECK(ndr_pull_align(ndr, 4));
5440                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5441                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5442                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5443                 if (_ptr_trusted_dc_name) {
5444                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5445                 } else {
5446                         r->trusted_dc_name = NULL;
5447                 }
5448                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5449         }
5450         if (ndr_flags & NDR_BUFFERS) {
5451                 if (r->trusted_dc_name) {
5452                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5453                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5454                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5455                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5456                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5457                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name));
5458                         }
5459                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5460                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16));
5461                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5462                 }
5463         }
5464         return NDR_ERR_SUCCESS;
5465 }
5466
5467 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5468 {
5469         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5470         ndr->depth++;
5471         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5472         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5473         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5474         ndr->depth++;
5475         if (r->trusted_dc_name) {
5476                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5477         }
5478         ndr->depth--;
5479         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5480         ndr->depth--;
5481 }
5482
5483 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
5484 {
5485         if (ndr_flags & NDR_SCALARS) {
5486                 NDR_CHECK(ndr_push_align(ndr, 4));
5487                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5488                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5489                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5490                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5491                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5493                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5494         }
5495         if (ndr_flags & NDR_BUFFERS) {
5496         }
5497         return NDR_ERR_SUCCESS;
5498 }
5499
5500 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5501 {
5502         if (ndr_flags & NDR_SCALARS) {
5503                 NDR_CHECK(ndr_pull_align(ndr, 4));
5504                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5505                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5506                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5507                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5509                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5510                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5511         }
5512         if (ndr_flags & NDR_BUFFERS) {
5513         }
5514         return NDR_ERR_SUCCESS;
5515 }
5516
5517 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5518 {
5519         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5520         ndr->depth++;
5521         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5522         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5523         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5524         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5525         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5526         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5527         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5528         ndr->depth--;
5529 }
5530
5531 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
5532 {
5533         if (ndr_flags & NDR_SCALARS) {
5534                 int level = ndr_push_get_switch_value(ndr, r);
5535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5536                 switch (level) {
5537                         case 1: {
5538                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5539                         break; }
5540
5541                         case 2: {
5542                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5543                         break; }
5544
5545                         case 3: {
5546                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5547                         break; }
5548
5549                         default:
5550                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5551                 }
5552         }
5553         if (ndr_flags & NDR_BUFFERS) {
5554                 int level = ndr_push_get_switch_value(ndr, r);
5555                 switch (level) {
5556                         case 1:
5557                                 if (r->info1) {
5558                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5559                                 }
5560                         break;
5561
5562                         case 2:
5563                                 if (r->info2) {
5564                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5565                                 }
5566                         break;
5567
5568                         case 3:
5569                                 if (r->info3) {
5570                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5571                                 }
5572                         break;
5573
5574                         default:
5575                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5576                 }
5577         }
5578         return NDR_ERR_SUCCESS;
5579 }
5580
5581 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5582 {
5583         int level;
5584         uint32_t _level;
5585         TALLOC_CTX *_mem_save_info1_0;
5586         TALLOC_CTX *_mem_save_info2_0;
5587         TALLOC_CTX *_mem_save_info3_0;
5588         level = ndr_pull_get_switch_value(ndr, r);
5589         if (ndr_flags & NDR_SCALARS) {
5590                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5591                 if (_level != level) {
5592                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5593                 }
5594                 switch (level) {
5595                         case 1: {
5596                                 uint32_t _ptr_info1;
5597                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5598                                 if (_ptr_info1) {
5599                                         NDR_PULL_ALLOC(ndr, r->info1);
5600                                 } else {
5601                                         r->info1 = NULL;
5602                                 }
5603                         break; }
5604
5605                         case 2: {
5606                                 uint32_t _ptr_info2;
5607                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5608                                 if (_ptr_info2) {
5609                                         NDR_PULL_ALLOC(ndr, r->info2);
5610                                 } else {
5611                                         r->info2 = NULL;
5612                                 }
5613                         break; }
5614
5615                         case 3: {
5616                                 uint32_t _ptr_info3;
5617                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5618                                 if (_ptr_info3) {
5619                                         NDR_PULL_ALLOC(ndr, r->info3);
5620                                 } else {
5621                                         r->info3 = NULL;
5622                                 }
5623                         break; }
5624
5625                         default:
5626                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5627                 }
5628         }
5629         if (ndr_flags & NDR_BUFFERS) {
5630                 switch (level) {
5631                         case 1:
5632                                 if (r->info1) {
5633                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5634                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5635                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5636                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5637                                 }
5638                         break;
5639
5640                         case 2:
5641                                 if (r->info2) {
5642                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5643                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5644                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5645                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5646                                 }
5647                         break;
5648
5649                         case 3:
5650                                 if (r->info3) {
5651                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5652                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5653                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5654                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5655                                 }
5656                         break;
5657
5658                         default:
5659                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5660                 }
5661         }
5662         return NDR_ERR_SUCCESS;
5663 }
5664
5665 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5666 {
5667         int level;
5668         level = ndr_print_get_switch_value(ndr, r);
5669         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5670         switch (level) {
5671                 case 1:
5672                         ndr_print_ptr(ndr, "info1", r->info1);
5673                         ndr->depth++;
5674                         if (r->info1) {
5675                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5676                         }
5677                         ndr->depth--;
5678                 break;
5679
5680                 case 2:
5681                         ndr_print_ptr(ndr, "info2", r->info2);
5682                         ndr->depth++;
5683                         if (r->info2) {
5684                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5685                         }
5686                         ndr->depth--;
5687                 break;
5688
5689                 case 3:
5690                         ndr_print_ptr(ndr, "info3", r->info3);
5691                         ndr->depth++;
5692                         if (r->info3) {
5693                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5694                         }
5695                         ndr->depth--;
5696                 break;
5697
5698                 default:
5699                         ndr_print_bad_level(ndr, name, level);
5700         }
5701 }
5702
5703 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5704 {
5705         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5706         return NDR_ERR_SUCCESS;
5707 }
5708
5709 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5710 {
5711         uint32_t v;
5712         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5713         *r = v;
5714         return NDR_ERR_SUCCESS;
5715 }
5716
5717 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5718 {
5719         const char *val = NULL;
5720
5721         switch (r) {
5722                 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5723                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5724                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5725                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5726                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5727         }
5728         ndr_print_enum(ndr, name, "ENUM", val, r);
5729 }
5730
5731 static enum ndr_err_code ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
5732 {
5733         if (ndr_flags & NDR_SCALARS) {
5734                 int level = ndr_push_get_switch_value(ndr, r);
5735                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5736                 switch (level) {
5737                         case NETLOGON_CONTROL_REDISCOVER: {
5738                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5739                         break; }
5740
5741                         case NETLOGON_CONTROL_TC_QUERY: {
5742                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5743                         break; }
5744
5745                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5746                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5747                         break; }
5748
5749                         case NETLOGON_CONTROL_SET_DBFLAG: {
5750                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5751                         break; }
5752
5753                         default:
5754                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5755                 }
5756         }
5757         if (ndr_flags & NDR_BUFFERS) {
5758                 int level = ndr_push_get_switch_value(ndr, r);
5759                 switch (level) {
5760                         case NETLOGON_CONTROL_REDISCOVER:
5761                                 if (r->domain) {
5762                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5763                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5764                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5765                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5766                                 }
5767                         break;
5768
5769                         case NETLOGON_CONTROL_TC_QUERY:
5770                                 if (r->domain) {
5771                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5772                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5773                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5774                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5775                                 }
5776                         break;
5777
5778                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5779                                 if (r->domain) {
5780                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5781                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5782                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5783                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5784                                 }
5785                         break;
5786
5787                         case NETLOGON_CONTROL_SET_DBFLAG:
5788                         break;
5789
5790                         default:
5791                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5792                 }
5793         }
5794         return NDR_ERR_SUCCESS;
5795 }
5796
5797 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5798 {
5799         int level;
5800         uint32_t _level;
5801         TALLOC_CTX *_mem_save_domain_0;
5802         level = ndr_pull_get_switch_value(ndr, r);
5803         if (ndr_flags & NDR_SCALARS) {
5804                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5805                 if (_level != level) {
5806                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5807                 }
5808                 switch (level) {
5809                         case NETLOGON_CONTROL_REDISCOVER: {
5810                                 uint32_t _ptr_domain;
5811                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5812                                 if (_ptr_domain) {
5813                                         NDR_PULL_ALLOC(ndr, r->domain);
5814                                 } else {
5815                                         r->domain = NULL;
5816                                 }
5817                         break; }
5818
5819                         case NETLOGON_CONTROL_TC_QUERY: {
5820                                 uint32_t _ptr_domain;
5821                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5822                                 if (_ptr_domain) {
5823                                         NDR_PULL_ALLOC(ndr, r->domain);
5824                                 } else {
5825                                         r->domain = NULL;
5826                                 }
5827                         break; }
5828
5829                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5830                                 uint32_t _ptr_domain;
5831                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5832                                 if (_ptr_domain) {
5833                                         NDR_PULL_ALLOC(ndr, r->domain);
5834                                 } else {
5835                                         r->domain = NULL;
5836                                 }
5837                         break; }
5838
5839                         case NETLOGON_CONTROL_SET_DBFLAG: {
5840                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5841                         break; }
5842
5843                         default:
5844                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5845                 }
5846         }
5847         if (ndr_flags & NDR_BUFFERS) {
5848                 switch (level) {
5849                         case NETLOGON_CONTROL_REDISCOVER:
5850                                 if (r->domain) {
5851                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5852                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5853                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5854                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5855                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5856                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5857                                         }
5858                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5859                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5860                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5861                                 }
5862                         break;
5863
5864                         case NETLOGON_CONTROL_TC_QUERY:
5865                                 if (r->domain) {
5866                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5867                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5868                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5869                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5870                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5871                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5872                                         }
5873                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5874                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5875                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5876                                 }
5877                         break;
5878
5879                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5880                                 if (r->domain) {
5881                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5882                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5883                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5884                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5885                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5886                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5887                                         }
5888                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5889                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5890                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5891                                 }
5892                         break;
5893
5894                         case NETLOGON_CONTROL_SET_DBFLAG:
5895                         break;
5896
5897                         default:
5898                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5899                 }
5900         }
5901         return NDR_ERR_SUCCESS;
5902 }
5903
5904 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5905 {
5906         int level;
5907         level = ndr_print_get_switch_value(ndr, r);
5908         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5909         switch (level) {
5910                 case NETLOGON_CONTROL_REDISCOVER:
5911                         ndr_print_ptr(ndr, "domain", r->domain);
5912                         ndr->depth++;
5913                         if (r->domain) {
5914                                 ndr_print_string(ndr, "domain", r->domain);
5915                         }
5916                         ndr->depth--;
5917                 break;
5918
5919                 case NETLOGON_CONTROL_TC_QUERY:
5920                         ndr_print_ptr(ndr, "domain", r->domain);
5921                         ndr->depth++;
5922                         if (r->domain) {
5923                                 ndr_print_string(ndr, "domain", r->domain);
5924                         }
5925                         ndr->depth--;
5926                 break;
5927
5928                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5929                         ndr_print_ptr(ndr, "domain", r->domain);
5930                         ndr->depth++;
5931                         if (r->domain) {
5932                                 ndr_print_string(ndr, "domain", r->domain);
5933                         }
5934                         ndr->depth--;
5935                 break;
5936
5937                 case NETLOGON_CONTROL_SET_DBFLAG:
5938                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5939                 break;
5940
5941                 default:
5942                         ndr_print_bad_level(ndr, name, level);
5943         }
5944 }
5945
5946 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5947 {
5948         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5949         return NDR_ERR_SUCCESS;
5950 }
5951
5952 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5953 {
5954         uint32_t v;
5955         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5956         *r = v;
5957         return NDR_ERR_SUCCESS;
5958 }
5959
5960 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5961 {
5962         ndr_print_uint32(ndr, name, r);
5963         ndr->depth++;
5964         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
5965         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
5966         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
5967         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
5968         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
5969         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
5970         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
5971         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
5972         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
5973         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
5974         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
5975         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
5976         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
5977         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
5978         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT, r);
5979         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
5980         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
5981         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
5982         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
5983         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
5984         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
5985         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
5986         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
5987         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL, r);
5988         ndr->depth--;
5989 }
5990
5991 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5992 {
5993         if (ndr_flags & NDR_SCALARS) {
5994                 NDR_CHECK(ndr_push_align(ndr, 4));
5995                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5996                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5997         }
5998         if (ndr_flags & NDR_BUFFERS) {
5999                 if (r->data) {
6000                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6001                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6002                 }
6003         }
6004         return NDR_ERR_SUCCESS;
6005 }
6006
6007 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6008 {
6009         uint32_t _ptr_data;
6010         TALLOC_CTX *_mem_save_data_0;
6011         if (ndr_flags & NDR_SCALARS) {
6012                 NDR_CHECK(ndr_pull_align(ndr, 4));
6013                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6014                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6015                 if (_ptr_data) {
6016                         NDR_PULL_ALLOC(ndr, r->data);
6017                 } else {
6018                         r->data = NULL;
6019                 }
6020         }
6021         if (ndr_flags & NDR_BUFFERS) {
6022                 if (r->data) {
6023                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6024                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6025                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6026                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6027                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6028                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6029                 }
6030                 if (r->data) {
6031                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6032                 }
6033         }
6034         return NDR_ERR_SUCCESS;
6035 }
6036
6037 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6038 {
6039         ndr_print_struct(ndr, name, "netr_Blob");
6040         ndr->depth++;
6041         ndr_print_uint32(ndr, "length", r->length);
6042         ndr_print_ptr(ndr, "data", r->data);
6043         ndr->depth++;
6044         if (r->data) {
6045                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6046         }
6047         ndr->depth--;
6048         ndr->depth--;
6049 }
6050
6051 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6052 {
6053         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6054         return NDR_ERR_SUCCESS;
6055 }
6056
6057 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6058 {
6059         uint32_t v;
6060         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6061         *r = v;
6062         return NDR_ERR_SUCCESS;
6063 }
6064
6065 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6066 {
6067         ndr_print_uint32(ndr, name, r);
6068         ndr->depth++;
6069         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6070         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6071         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6072         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6073         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6074         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6075         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6076         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6077         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6078         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6079         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6080         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6081         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6082         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6083         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6084         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6085         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6086         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6087         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6088         ndr->depth--;
6089 }
6090
6091 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6092 {
6093         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6094         return NDR_ERR_SUCCESS;
6095 }
6096
6097 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6098 {
6099         uint32_t v;
6100         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6101         *r = v;
6102         return NDR_ERR_SUCCESS;
6103 }
6104
6105 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6106 {
6107         const char *val = NULL;
6108
6109         switch (r) {
6110                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6111                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6112         }
6113         ndr_print_enum(ndr, name, "ENUM", val, r);
6114 }
6115
6116 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6117 {
6118         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6119         return NDR_ERR_SUCCESS;
6120 }
6121
6122 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6123 {
6124         uint32_t v;
6125         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6126         *r = v;
6127         return NDR_ERR_SUCCESS;
6128 }
6129
6130 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6131 {
6132         ndr_print_uint32(ndr, name, r);
6133         ndr->depth++;
6134         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6135         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6136         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6137         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6138         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6139         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6140         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6141         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6142         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6143         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6144         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6145         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6146         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6147         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6148         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6149         ndr->depth--;
6150 }
6151
6152 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6153 {
6154         if (ndr_flags & NDR_SCALARS) {
6155                 NDR_CHECK(ndr_push_align(ndr, 4));
6156                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6157                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6158                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6159                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6160                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6161                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6162                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6163                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6164                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6165         }
6166         if (ndr_flags & NDR_BUFFERS) {
6167                 if (r->dc_unc) {
6168                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6170                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6171                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6172                 }
6173                 if (r->dc_address) {
6174                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6175                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6176                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6177                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6178                 }
6179                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6180                 if (r->domain_name) {
6181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6182                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6183                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6184                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6185                 }
6186                 if (r->forest_name) {
6187                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6188                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6189                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6190                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6191                 }
6192                 if (r->dc_site_name) {
6193                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6194                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6195                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6196                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_site_name, ndr_charset_length(r->dc_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6197                 }
6198                 if (r->client_site_name) {
6199                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6200                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6201                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6202                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_site_name, ndr_charset_length(r->client_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6203                 }
6204         }
6205         return NDR_ERR_SUCCESS;
6206 }
6207
6208 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6209 {
6210         uint32_t _ptr_dc_unc;
6211         TALLOC_CTX *_mem_save_dc_unc_0;
6212         uint32_t _ptr_dc_address;
6213         TALLOC_CTX *_mem_save_dc_address_0;
6214         uint32_t _ptr_domain_name;
6215         TALLOC_CTX *_mem_save_domain_name_0;
6216         uint32_t _ptr_forest_name;
6217         TALLOC_CTX *_mem_save_forest_name_0;
6218         uint32_t _ptr_dc_site_name;
6219         TALLOC_CTX *_mem_save_dc_site_name_0;
6220         uint32_t _ptr_client_site_name;
6221         TALLOC_CTX *_mem_save_client_site_name_0;
6222         if (ndr_flags & NDR_SCALARS) {
6223                 NDR_CHECK(ndr_pull_align(ndr, 4));
6224                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6225                 if (_ptr_dc_unc) {
6226                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6227                 } else {
6228                         r->dc_unc = NULL;
6229                 }
6230                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6231                 if (_ptr_dc_address) {
6232                         NDR_PULL_ALLOC(ndr, r->dc_address);
6233                 } else {
6234                         r->dc_address = NULL;
6235                 }
6236                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6237                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6238                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6239                 if (_ptr_domain_name) {
6240                         NDR_PULL_ALLOC(ndr, r->domain_name);
6241                 } else {
6242                         r->domain_name = NULL;
6243                 }
6244                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6245                 if (_ptr_forest_name) {
6246                         NDR_PULL_ALLOC(ndr, r->forest_name);
6247                 } else {
6248                         r->forest_name = NULL;
6249                 }
6250                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6251                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6252                 if (_ptr_dc_site_name) {
6253                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6254                 } else {
6255                         r->dc_site_name = NULL;
6256                 }
6257                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6258                 if (_ptr_client_site_name) {
6259                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6260                 } else {
6261                         r->client_site_name = NULL;
6262                 }
6263         }
6264         if (ndr_flags & NDR_BUFFERS) {
6265                 if (r->dc_unc) {
6266                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6267                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6268                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6269                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6270                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6271                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_unc), ndr_get_array_length(ndr, &r->dc_unc));
6272                         }
6273                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6274                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6275                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6276                 }
6277                 if (r->dc_address) {
6278                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6279                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6280                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6281                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6282                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6283                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address));
6284                         }
6285                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6286                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6287                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6288                 }
6289                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6290                 if (r->domain_name) {
6291                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6292                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6293                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6294                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6295                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6296                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
6297                         }
6298                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6299                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6300                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6301                 }
6302                 if (r->forest_name) {
6303                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6304                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6305                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6306                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6307                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6308                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest_name), ndr_get_array_length(ndr, &r->forest_name));
6309                         }
6310                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6311                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6312                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6313                 }
6314                 if (r->dc_site_name) {
6315                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6316                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6317                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6318                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6319                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6320                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_site_name), ndr_get_array_length(ndr, &r->dc_site_name));
6321                         }
6322                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6323                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t), CH_UTF16));
6324                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6325                 }
6326                 if (r->client_site_name) {
6327                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6328                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6329                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6330                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6331                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6332                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_site_name), ndr_get_array_length(ndr, &r->client_site_name));
6333                         }
6334                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6335                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t), CH_UTF16));
6336                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6337                 }
6338         }
6339         return NDR_ERR_SUCCESS;
6340 }
6341
6342 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6343 {
6344         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6345         ndr->depth++;
6346         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6347         ndr->depth++;
6348         if (r->dc_unc) {
6349                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6350         }
6351         ndr->depth--;
6352         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6353         ndr->depth++;
6354         if (r->dc_address) {
6355                 ndr_print_string(ndr, "dc_address", r->dc_address);
6356         }
6357         ndr->depth--;
6358         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6359         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6360         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6361         ndr->depth++;
6362         if (r->domain_name) {
6363                 ndr_print_string(ndr, "domain_name", r->domain_name);
6364         }
6365         ndr->depth--;
6366         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6367         ndr->depth++;
6368         if (r->forest_name) {
6369                 ndr_print_string(ndr, "forest_name", r->forest_name);
6370         }
6371         ndr->depth--;
6372         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6373         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6374         ndr->depth++;
6375         if (r->dc_site_name) {
6376                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6377         }
6378         ndr->depth--;
6379         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6380         ndr->depth++;
6381         if (r->client_site_name) {
6382                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6383         }
6384         ndr->depth--;
6385         ndr->depth--;
6386 }
6387
6388 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6389 {
6390         uint32_t cntr_data_1;
6391         {
6392                 uint32_t _flags_save_STRUCT = ndr->flags;
6393                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6394                 if (ndr_flags & NDR_SCALARS) {
6395                         NDR_CHECK(ndr_push_align(ndr, 4));
6396                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6397                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6398                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6399                 }
6400                 if (ndr_flags & NDR_BUFFERS) {
6401                         if (r->data) {
6402                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6403                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6404                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6405                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6406                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6407                                 }
6408                         }
6409                 }
6410                 ndr->flags = _flags_save_STRUCT;
6411         }
6412         return NDR_ERR_SUCCESS;
6413 }
6414
6415 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6416 {
6417         uint32_t _ptr_data;
6418         uint32_t cntr_data_1;
6419         TALLOC_CTX *_mem_save_data_0;
6420         TALLOC_CTX *_mem_save_data_1;
6421         {
6422                 uint32_t _flags_save_STRUCT = ndr->flags;
6423                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6424                 if (ndr_flags & NDR_SCALARS) {
6425                         NDR_CHECK(ndr_pull_align(ndr, 4));
6426                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6427                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6428                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6429                         if (_ptr_data) {
6430                                 NDR_PULL_ALLOC(ndr, r->data);
6431                         } else {
6432                                 r->data = NULL;
6433                         }
6434                 }
6435                 if (ndr_flags & NDR_BUFFERS) {
6436                         if (r->data) {
6437                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6438                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6439                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6440                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6441                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6442                                         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));
6443                                 }
6444                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6445                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6446                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6447                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6448                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6449                                 }
6450                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6451                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6452                         }
6453                         if (r->data) {
6454                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6455                         }
6456                         if (r->data) {
6457                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6458                         }
6459                 }
6460                 ndr->flags = _flags_save_STRUCT;
6461         }
6462         return NDR_ERR_SUCCESS;
6463 }
6464
6465 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6466 {
6467         uint32_t cntr_data_1;
6468         ndr_print_struct(ndr, name, "netr_BinaryString");
6469         {
6470                 uint32_t _flags_save_STRUCT = ndr->flags;
6471                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6472                 ndr->depth++;
6473                 ndr_print_uint16(ndr, "length", r->length);
6474                 ndr_print_uint16(ndr, "size", r->size);
6475                 ndr_print_ptr(ndr, "data", r->data);
6476                 ndr->depth++;
6477                 if (r->data) {
6478                         ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->length / 2);
6479                         ndr->depth++;
6480                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6481                                 char *idx_1=NULL;
6482                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6483                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6484                                         free(idx_1);
6485                                 }
6486                         }
6487                         ndr->depth--;
6488                 }
6489                 ndr->depth--;
6490                 ndr->depth--;
6491                 ndr->flags = _flags_save_STRUCT;
6492         }
6493 }
6494
6495 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6496 {
6497         uint32_t cntr_unknown7_0;
6498         if (ndr_flags & NDR_SCALARS) {
6499                 NDR_CHECK(ndr_push_align(ndr, 4));
6500                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6501                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6502                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6503                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6504                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6505                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6506                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6507                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6508                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6511                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6512                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6513                 }
6514         }
6515         if (ndr_flags & NDR_BUFFERS) {
6516                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6517                 if (r->workstation_domain) {
6518                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6519                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6520                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6521                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6522                 }
6523                 if (r->workstation_site) {
6524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6525                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6526                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6527                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6528                 }
6529                 if (r->unknown1) {
6530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6531                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6532                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6533                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6534                 }
6535                 if (r->unknown2) {
6536                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6537                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6538                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6539                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6540                 }
6541                 if (r->unknown3) {
6542                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6543                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6544                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6545                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6546                 }
6547                 if (r->unknown4) {
6548                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6549                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6551                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6552                 }
6553                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6554                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6555                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6556                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6557         }
6558         return NDR_ERR_SUCCESS;
6559 }
6560
6561 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6562 {
6563         uint32_t _ptr_workstation_domain;
6564         TALLOC_CTX *_mem_save_workstation_domain_0;
6565         uint32_t _ptr_workstation_site;
6566         TALLOC_CTX *_mem_save_workstation_site_0;
6567         uint32_t _ptr_unknown1;
6568         TALLOC_CTX *_mem_save_unknown1_0;
6569         uint32_t _ptr_unknown2;
6570         TALLOC_CTX *_mem_save_unknown2_0;
6571         uint32_t _ptr_unknown3;
6572         TALLOC_CTX *_mem_save_unknown3_0;
6573         uint32_t _ptr_unknown4;
6574         TALLOC_CTX *_mem_save_unknown4_0;
6575         uint32_t cntr_unknown7_0;
6576         if (ndr_flags & NDR_SCALARS) {
6577                 NDR_CHECK(ndr_pull_align(ndr, 4));
6578                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6579                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6580                 if (_ptr_workstation_domain) {
6581                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6582                 } else {
6583                         r->workstation_domain = NULL;
6584                 }
6585                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6586                 if (_ptr_workstation_site) {
6587                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6588                 } else {
6589                         r->workstation_site = NULL;
6590                 }
6591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6592                 if (_ptr_unknown1) {
6593                         NDR_PULL_ALLOC(ndr, r->unknown1);
6594                 } else {
6595                         r->unknown1 = NULL;
6596                 }
6597                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6598                 if (_ptr_unknown2) {
6599                         NDR_PULL_ALLOC(ndr, r->unknown2);
6600                 } else {
6601                         r->unknown2 = NULL;
6602                 }
6603                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6604                 if (_ptr_unknown3) {
6605                         NDR_PULL_ALLOC(ndr, r->unknown3);
6606                 } else {
6607                         r->unknown3 = NULL;
6608                 }
6609                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6610                 if (_ptr_unknown4) {
6611                         NDR_PULL_ALLOC(ndr, r->unknown4);
6612                 } else {
6613                         r->unknown4 = NULL;
6614                 }
6615                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6616                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6617                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6618                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6619                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6620                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6621                 }
6622         }
6623         if (ndr_flags & NDR_BUFFERS) {
6624                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6625                 if (r->workstation_domain) {
6626                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6627                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6628                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6629                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6630                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6631                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain));
6632                         }
6633                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6634                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6635                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6636                 }
6637                 if (r->workstation_site) {
6638                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6639                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6640                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6641                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6642                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6643                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site));
6644                         }
6645                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6646                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6647                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6648                 }
6649                 if (r->unknown1) {
6650                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6651                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6652                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6653                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6654                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6655                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1));
6656                         }
6657                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6658                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6659                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6660                 }
6661                 if (r->unknown2) {
6662                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6663                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6664                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6665                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6666                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6667                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2));
6668                         }
6669                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6670                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6671                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6672                 }
6673                 if (r->unknown3) {
6674                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6675                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6676                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6677                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6678                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6679                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3));
6680                         }
6681                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6682                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6683                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6684                 }
6685                 if (r->unknown4) {
6686                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6687                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6688                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6689                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6690                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6691                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4));
6692                         }
6693                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6694                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6695                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6696                 }
6697                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6698                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6699                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6700                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6701         }
6702         return NDR_ERR_SUCCESS;
6703 }
6704
6705 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6706 {
6707         uint32_t cntr_unknown7_0;
6708         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6709         ndr->depth++;
6710         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6711         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6712         ndr->depth++;
6713         if (r->workstation_domain) {
6714                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6715         }
6716         ndr->depth--;
6717         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6718         ndr->depth++;
6719         if (r->workstation_site) {
6720                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6721         }
6722         ndr->depth--;
6723         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6724         ndr->depth++;
6725         if (r->unknown1) {
6726                 ndr_print_string(ndr, "unknown1", r->unknown1);
6727         }
6728         ndr->depth--;
6729         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6730         ndr->depth++;
6731         if (r->unknown2) {
6732                 ndr_print_string(ndr, "unknown2", r->unknown2);
6733         }
6734         ndr->depth--;
6735         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6736         ndr->depth++;
6737         if (r->unknown3) {
6738                 ndr_print_string(ndr, "unknown3", r->unknown3);
6739         }
6740         ndr->depth--;
6741         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6742         ndr->depth++;
6743         if (r->unknown4) {
6744                 ndr_print_string(ndr, "unknown4", r->unknown4);
6745         }
6746         ndr->depth--;
6747         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6748         ndr_print_lsa_String(ndr, "product", &r->product);
6749         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6750         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6751         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
6752         ndr->depth++;
6753         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6754                 char *idx_0=NULL;
6755                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
6756                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6757                         free(idx_0);
6758                 }
6759         }
6760         ndr->depth--;
6761         ndr->depth--;
6762 }
6763
6764 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6765 {
6766         if (ndr_flags & NDR_SCALARS) {
6767                 int level = ndr_push_get_switch_value(ndr, r);
6768                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6769                 switch (level) {
6770                         case 1: {
6771                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6772                         break; }
6773
6774                         case 2: {
6775                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6776                         break; }
6777
6778                         default:
6779                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6780                 }
6781         }
6782         if (ndr_flags & NDR_BUFFERS) {
6783                 int level = ndr_push_get_switch_value(ndr, r);
6784                 switch (level) {
6785                         case 1:
6786                                 if (r->query1) {
6787                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6788                                 }
6789                         break;
6790
6791                         case 2:
6792                                 if (r->query1) {
6793                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6794                                 }
6795                         break;
6796
6797                         default:
6798                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6799                 }
6800         }
6801         return NDR_ERR_SUCCESS;
6802 }
6803
6804 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6805 {
6806         int level;
6807         uint32_t _level;
6808         TALLOC_CTX *_mem_save_query1_0;
6809         level = ndr_pull_get_switch_value(ndr, r);
6810         if (ndr_flags & NDR_SCALARS) {
6811                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6812                 if (_level != level) {
6813                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6814                 }
6815                 switch (level) {
6816                         case 1: {
6817                                 uint32_t _ptr_query1;
6818                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6819                                 if (_ptr_query1) {
6820                                         NDR_PULL_ALLOC(ndr, r->query1);
6821                                 } else {
6822                                         r->query1 = NULL;
6823                                 }
6824                         break; }
6825
6826                         case 2: {
6827                                 uint32_t _ptr_query1;
6828                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6829                                 if (_ptr_query1) {
6830                                         NDR_PULL_ALLOC(ndr, r->query1);
6831                                 } else {
6832                                         r->query1 = NULL;
6833                                 }
6834                         break; }
6835
6836                         default:
6837                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6838                 }
6839         }
6840         if (ndr_flags & NDR_BUFFERS) {
6841                 switch (level) {
6842                         case 1:
6843                                 if (r->query1) {
6844                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6845                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6846                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6847                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6848                                 }
6849                         break;
6850
6851                         case 2:
6852                                 if (r->query1) {
6853                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6854                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6855                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6856                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6857                                 }
6858                         break;
6859
6860                         default:
6861                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6862                 }
6863         }
6864         return NDR_ERR_SUCCESS;
6865 }
6866
6867 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6868 {
6869         int level;
6870         level = ndr_print_get_switch_value(ndr, r);
6871         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6872         switch (level) {
6873                 case 1:
6874                         ndr_print_ptr(ndr, "query1", r->query1);
6875                         ndr->depth++;
6876                         if (r->query1) {
6877                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6878                         }
6879                         ndr->depth--;
6880                 break;
6881
6882                 case 2:
6883                         ndr_print_ptr(ndr, "query1", r->query1);
6884                         ndr->depth++;
6885                         if (r->query1) {
6886                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6887                         }
6888                         ndr->depth--;
6889                 break;
6890
6891                 default:
6892                         ndr_print_bad_level(ndr, name, level);
6893         }
6894 }
6895
6896 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6897 {
6898         uint32_t cntr_unknown1_0;
6899         uint32_t cntr_unknown_0;
6900         if (ndr_flags & NDR_SCALARS) {
6901                 NDR_CHECK(ndr_push_align(ndr, 4));
6902                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6903                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6904                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6905                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6906                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6907                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6908                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6909                 }
6910                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6911                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6912                 }
6913         }
6914         if (ndr_flags & NDR_BUFFERS) {
6915                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6916                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6917                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6918                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6919                 if (r->sid) {
6920                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6921                 }
6922                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6923                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6924                 }
6925         }
6926         return NDR_ERR_SUCCESS;
6927 }
6928
6929 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6930 {
6931         uint32_t _ptr_sid;
6932         TALLOC_CTX *_mem_save_sid_0;
6933         uint32_t cntr_unknown1_0;
6934         uint32_t cntr_unknown_0;
6935         if (ndr_flags & NDR_SCALARS) {
6936                 NDR_CHECK(ndr_pull_align(ndr, 4));
6937                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6938                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6939                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6940                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6941                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6942                 if (_ptr_sid) {
6943                         NDR_PULL_ALLOC(ndr, r->sid);
6944                 } else {
6945                         r->sid = NULL;
6946                 }
6947                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6948                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6949                 }
6950                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6951                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6952                 }
6953         }
6954         if (ndr_flags & NDR_BUFFERS) {
6955                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6956                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6957                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6958                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6959                 if (r->sid) {
6960                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6961                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6962                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6963                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6964                 }
6965                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6966                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6967                 }
6968         }
6969         return NDR_ERR_SUCCESS;
6970 }
6971
6972 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6973 {
6974         uint32_t cntr_unknown1_0;
6975         uint32_t cntr_unknown_0;
6976         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6977         ndr->depth++;
6978         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6979         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6980         ndr_print_lsa_String(ndr, "forest", &r->forest);
6981         ndr_print_GUID(ndr, "guid", &r->guid);
6982         ndr_print_ptr(ndr, "sid", r->sid);
6983         ndr->depth++;
6984         if (r->sid) {
6985                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6986         }
6987         ndr->depth--;
6988         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", (int)4);
6989         ndr->depth++;
6990         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6991                 char *idx_0=NULL;
6992                 if (asprintf(&idx_0, "[%d]", cntr_unknown1_0) != -1) {
6993                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6994                         free(idx_0);
6995                 }
6996         }
6997         ndr->depth--;
6998         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)4);
6999         ndr->depth++;
7000         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
7001                 char *idx_0=NULL;
7002                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7003                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7004                         free(idx_0);
7005                 }
7006         }
7007         ndr->depth--;
7008         ndr->depth--;
7009 }
7010
7011 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
7012 {
7013         uint32_t cntr_trusts_1;
7014         uint32_t cntr_unknown_0;
7015         if (ndr_flags & NDR_SCALARS) {
7016                 NDR_CHECK(ndr_push_align(ndr, 4));
7017                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7018                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7019                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
7020                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7021                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
7022                 }
7023         }
7024         if (ndr_flags & NDR_BUFFERS) {
7025                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7026                 if (r->trusts) {
7027                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7028                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7029                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7030                         }
7031                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7032                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7033                         }
7034                 }
7035         }
7036         return NDR_ERR_SUCCESS;
7037 }
7038
7039 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7040 {
7041         uint32_t _ptr_trusts;
7042         uint32_t cntr_trusts_1;
7043         TALLOC_CTX *_mem_save_trusts_0;
7044         TALLOC_CTX *_mem_save_trusts_1;
7045         uint32_t cntr_unknown_0;
7046         if (ndr_flags & NDR_SCALARS) {
7047                 NDR_CHECK(ndr_pull_align(ndr, 4));
7048                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7049                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7050                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7051                 if (_ptr_trusts) {
7052                         NDR_PULL_ALLOC(ndr, r->trusts);
7053                 } else {
7054                         r->trusts = NULL;
7055                 }
7056                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7057                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7058                 }
7059         }
7060         if (ndr_flags & NDR_BUFFERS) {
7061                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7062                 if (r->trusts) {
7063                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7064                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7065                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7066                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7067                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7068                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7069                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7070                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7071                         }
7072                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7073                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7074                         }
7075                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7076                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7077                 }
7078                 if (r->trusts) {
7079                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7080                 }
7081         }
7082         return NDR_ERR_SUCCESS;
7083 }
7084
7085 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7086 {
7087         uint32_t cntr_trusts_1;
7088         uint32_t cntr_unknown_0;
7089         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7090         ndr->depth++;
7091         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7092         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7093         ndr_print_ptr(ndr, "trusts", r->trusts);
7094         ndr->depth++;
7095         if (r->trusts) {
7096                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
7097                 ndr->depth++;
7098                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7099                         char *idx_1=NULL;
7100                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7101                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7102                                 free(idx_1);
7103                         }
7104                 }
7105                 ndr->depth--;
7106         }
7107         ndr->depth--;
7108         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)14);
7109         ndr->depth++;
7110         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7111                 char *idx_0=NULL;
7112                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7113                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7114                         free(idx_0);
7115                 }
7116         }
7117         ndr->depth--;
7118         ndr->depth--;
7119 }
7120
7121 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7122 {
7123         if (ndr_flags & NDR_SCALARS) {
7124                 int level = ndr_push_get_switch_value(ndr, r);
7125                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7126                 switch (level) {
7127                         case 1: {
7128                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7129                         break; }
7130
7131                         case 2: {
7132                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7133                         break; }
7134
7135                         default:
7136                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7137                 }
7138         }
7139         if (ndr_flags & NDR_BUFFERS) {
7140                 int level = ndr_push_get_switch_value(ndr, r);
7141                 switch (level) {
7142                         case 1:
7143                                 if (r->info1) {
7144                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7145                                 }
7146                         break;
7147
7148                         case 2:
7149                                 if (r->info1) {
7150                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7151                                 }
7152                         break;
7153
7154                         default:
7155                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7156                 }
7157         }
7158         return NDR_ERR_SUCCESS;
7159 }
7160
7161 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7162 {
7163         int level;
7164         uint32_t _level;
7165         TALLOC_CTX *_mem_save_info1_0;
7166         level = ndr_pull_get_switch_value(ndr, r);
7167         if (ndr_flags & NDR_SCALARS) {
7168                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7169                 if (_level != level) {
7170                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7171                 }
7172                 switch (level) {
7173                         case 1: {
7174                                 uint32_t _ptr_info1;
7175                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7176                                 if (_ptr_info1) {
7177                                         NDR_PULL_ALLOC(ndr, r->info1);
7178                                 } else {
7179                                         r->info1 = NULL;
7180                                 }
7181                         break; }
7182
7183                         case 2: {
7184                                 uint32_t _ptr_info1;
7185                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7186                                 if (_ptr_info1) {
7187                                         NDR_PULL_ALLOC(ndr, r->info1);
7188                                 } else {
7189                                         r->info1 = NULL;
7190                                 }
7191                         break; }
7192
7193                         default:
7194                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7195                 }
7196         }
7197         if (ndr_flags & NDR_BUFFERS) {
7198                 switch (level) {
7199                         case 1:
7200                                 if (r->info1) {
7201                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7202                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7203                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7204                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7205                                 }
7206                         break;
7207
7208                         case 2:
7209                                 if (r->info1) {
7210                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7211                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7212                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7213                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7214                                 }
7215                         break;
7216
7217                         default:
7218                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7219                 }
7220         }
7221         return NDR_ERR_SUCCESS;
7222 }
7223
7224 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7225 {
7226         int level;
7227         level = ndr_print_get_switch_value(ndr, r);
7228         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7229         switch (level) {
7230                 case 1:
7231                         ndr_print_ptr(ndr, "info1", r->info1);
7232                         ndr->depth++;
7233                         if (r->info1) {
7234                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7235                         }
7236                         ndr->depth--;
7237                 break;
7238
7239                 case 2:
7240                         ndr_print_ptr(ndr, "info1", r->info1);
7241                         ndr->depth++;
7242                         if (r->info1) {
7243                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7244                         }
7245                         ndr->depth--;
7246                 break;
7247
7248                 default:
7249                         ndr_print_bad_level(ndr, name, level);
7250         }
7251 }
7252
7253 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7254 {
7255         {
7256                 uint32_t _flags_save_STRUCT = ndr->flags;
7257                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7258                 if (ndr_flags & NDR_SCALARS) {
7259                         NDR_CHECK(ndr_push_align(ndr, 4));
7260                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7261                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7262                 }
7263                 if (ndr_flags & NDR_BUFFERS) {
7264                 }
7265                 ndr->flags = _flags_save_STRUCT;
7266         }
7267         return NDR_ERR_SUCCESS;
7268 }
7269
7270 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7271 {
7272         {
7273                 uint32_t _flags_save_STRUCT = ndr->flags;
7274                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7275                 if (ndr_flags & NDR_SCALARS) {
7276                         NDR_CHECK(ndr_pull_align(ndr, 4));
7277                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7278                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7279                 }
7280                 if (ndr_flags & NDR_BUFFERS) {
7281                 }
7282                 ndr->flags = _flags_save_STRUCT;
7283         }
7284         return NDR_ERR_SUCCESS;
7285 }
7286
7287 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7288 {
7289         ndr_print_struct(ndr, name, "netr_CryptPassword");
7290         {
7291                 uint32_t _flags_save_STRUCT = ndr->flags;
7292                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7293                 ndr->depth++;
7294                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7295                 ndr_print_uint32(ndr, "length", r->length);
7296                 ndr->depth--;
7297                 ndr->flags = _flags_save_STRUCT;
7298         }
7299 }
7300
7301 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7302 {
7303         uint32_t cntr_sitename_1;
7304         if (ndr_flags & NDR_SCALARS) {
7305                 NDR_CHECK(ndr_push_align(ndr, 4));
7306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7307                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7308         }
7309         if (ndr_flags & NDR_BUFFERS) {
7310                 if (r->sitename) {
7311                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7312                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7313                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7314                         }
7315                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7316                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7317                         }
7318                 }
7319         }
7320         return NDR_ERR_SUCCESS;
7321 }
7322
7323 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7324 {
7325         uint32_t _ptr_sitename;
7326         uint32_t cntr_sitename_1;
7327         TALLOC_CTX *_mem_save_sitename_0;
7328         TALLOC_CTX *_mem_save_sitename_1;
7329         if (ndr_flags & NDR_SCALARS) {
7330                 NDR_CHECK(ndr_pull_align(ndr, 4));
7331                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7332                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7333                 if (_ptr_sitename) {
7334                         NDR_PULL_ALLOC(ndr, r->sitename);
7335                 } else {
7336                         r->sitename = NULL;
7337                 }
7338         }
7339         if (ndr_flags & NDR_BUFFERS) {
7340                 if (r->sitename) {
7341                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7342                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7343                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7344                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7345                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7346                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7347                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7348                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7349                         }
7350                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7351                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7352                         }
7353                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7354                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7355                 }
7356                 if (r->sitename) {
7357                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7358                 }
7359         }
7360         return NDR_ERR_SUCCESS;
7361 }
7362
7363 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7364 {
7365         uint32_t cntr_sitename_1;
7366         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7367         ndr->depth++;
7368         ndr_print_uint32(ndr, "count", r->count);
7369         ndr_print_ptr(ndr, "sitename", r->sitename);
7370         ndr->depth++;
7371         if (r->sitename) {
7372                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
7373                 ndr->depth++;
7374                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7375                         char *idx_1=NULL;
7376                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7377                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7378                                 free(idx_1);
7379                         }
7380                 }
7381                 ndr->depth--;
7382         }
7383         ndr->depth--;
7384         ndr->depth--;
7385 }
7386
7387 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7388 {
7389         if (ndr_flags & NDR_SCALARS) {
7390                 NDR_CHECK(ndr_push_align(ndr, 4));
7391                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7392                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7393         }
7394         if (ndr_flags & NDR_BUFFERS) {
7395                 if (r->buffer) {
7396                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7397                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7398                 }
7399         }
7400         return NDR_ERR_SUCCESS;
7401 }
7402
7403 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7404 {
7405         uint32_t _ptr_buffer;
7406         TALLOC_CTX *_mem_save_buffer_0;
7407         if (ndr_flags & NDR_SCALARS) {
7408                 NDR_CHECK(ndr_pull_align(ndr, 4));
7409                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7410                 if (_ptr_buffer) {
7411                         NDR_PULL_ALLOC(ndr, r->buffer);
7412                 } else {
7413                         r->buffer = NULL;
7414                 }
7415                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7416         }
7417         if (ndr_flags & NDR_BUFFERS) {
7418                 if (r->buffer) {
7419                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7420                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7421                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7422                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7423                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7424                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7425                 }
7426                 if (r->buffer) {
7427                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7428                 }
7429         }
7430         return NDR_ERR_SUCCESS;
7431 }
7432
7433 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7434 {
7435         ndr_print_struct(ndr, name, "netr_DsRAddress");
7436         ndr->depth++;
7437         ndr_print_ptr(ndr, "buffer", r->buffer);
7438         ndr->depth++;
7439         if (r->buffer) {
7440                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7441         }
7442         ndr->depth--;
7443         ndr_print_uint32(ndr, "size", r->size);
7444         ndr->depth--;
7445 }
7446
7447 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7448 {
7449         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7450         return NDR_ERR_SUCCESS;
7451 }
7452
7453 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7454 {
7455         uint32_t v;
7456         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7457         *r = v;
7458         return NDR_ERR_SUCCESS;
7459 }
7460
7461 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7462 {
7463         ndr_print_uint32(ndr, name, r);
7464         ndr->depth++;
7465         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7466         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7467         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7468         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7469         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7470         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7471         ndr->depth--;
7472 }
7473
7474 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7475 {
7476         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7477         return NDR_ERR_SUCCESS;
7478 }
7479
7480 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7481 {
7482         uint32_t v;
7483         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7484         *r = v;
7485         return NDR_ERR_SUCCESS;
7486 }
7487
7488 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7489 {
7490         const char *val = NULL;
7491
7492         switch (r) {
7493                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7494                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7495                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7496                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7497         }
7498         ndr_print_enum(ndr, name, "ENUM", val, r);
7499 }
7500
7501 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7502 {
7503         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7504         return NDR_ERR_SUCCESS;
7505 }
7506
7507 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7508 {
7509         uint32_t v;
7510         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7511         *r = v;
7512         return NDR_ERR_SUCCESS;
7513 }
7514
7515 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7516 {
7517         ndr_print_uint32(ndr, name, r);
7518         ndr->depth++;
7519         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7520         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7521         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7522         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7523         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7524         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7525         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7526         ndr->depth--;
7527 }
7528
7529 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7530 {
7531         if (ndr_flags & NDR_SCALARS) {
7532                 NDR_CHECK(ndr_push_align(ndr, 4));
7533                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7534                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7535                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7537                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7538                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7539                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7540                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7541         }
7542         if (ndr_flags & NDR_BUFFERS) {
7543                 if (r->netbios_name) {
7544                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7545                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7546                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7547                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7548                 }
7549                 if (r->dns_name) {
7550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7551                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7552                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7553                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7554                 }
7555                 if (r->sid) {
7556                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7557                 }
7558                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7559         }
7560         return NDR_ERR_SUCCESS;
7561 }
7562
7563 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7564 {
7565         uint32_t _ptr_netbios_name;
7566         TALLOC_CTX *_mem_save_netbios_name_0;
7567         uint32_t _ptr_dns_name;
7568         TALLOC_CTX *_mem_save_dns_name_0;
7569         uint32_t _ptr_sid;
7570         TALLOC_CTX *_mem_save_sid_0;
7571         if (ndr_flags & NDR_SCALARS) {
7572                 NDR_CHECK(ndr_pull_align(ndr, 4));
7573                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7574                 if (_ptr_netbios_name) {
7575                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7576                 } else {
7577                         r->netbios_name = NULL;
7578                 }
7579                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7580                 if (_ptr_dns_name) {
7581                         NDR_PULL_ALLOC(ndr, r->dns_name);
7582                 } else {
7583                         r->dns_name = NULL;
7584                 }
7585                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7586                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7587                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7588                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7589                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7590                 if (_ptr_sid) {
7591                         NDR_PULL_ALLOC(ndr, r->sid);
7592                 } else {
7593                         r->sid = NULL;
7594                 }
7595                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7596         }
7597         if (ndr_flags & NDR_BUFFERS) {
7598                 if (r->netbios_name) {
7599                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7600                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7601                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7602                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7603                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7604                                 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));
7605                         }
7606                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7607                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7608                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7609                 }
7610                 if (r->dns_name) {
7611                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7612                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7613                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7614                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7615                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7616                                 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));
7617                         }
7618                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7619                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7620                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7621                 }
7622                 if (r->sid) {
7623                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7624                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7625                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7626                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7627                 }
7628                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7629         }
7630         return NDR_ERR_SUCCESS;
7631 }
7632
7633 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7634 {
7635         ndr_print_struct(ndr, name, "netr_DomainTrust");
7636         ndr->depth++;
7637         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7638         ndr->depth++;
7639         if (r->netbios_name) {
7640                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7641         }
7642         ndr->depth--;
7643         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7644         ndr->depth++;
7645         if (r->dns_name) {
7646                 ndr_print_string(ndr, "dns_name", r->dns_name);
7647         }
7648         ndr->depth--;
7649         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7650         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7651         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7652         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7653         ndr_print_ptr(ndr, "sid", r->sid);
7654         ndr->depth++;
7655         if (r->sid) {
7656                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7657         }
7658         ndr->depth--;
7659         ndr_print_GUID(ndr, "guid", &r->guid);
7660         ndr->depth--;
7661 }
7662
7663 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7664 {
7665         uint32_t cntr_array_1;
7666         if (ndr_flags & NDR_SCALARS) {
7667                 NDR_CHECK(ndr_push_align(ndr, 4));
7668                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7669                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7670         }
7671         if (ndr_flags & NDR_BUFFERS) {
7672                 if (r->array) {
7673                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7674                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7675                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7676                         }
7677                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7678                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7679                         }
7680                 }
7681         }
7682         return NDR_ERR_SUCCESS;
7683 }
7684
7685 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7686 {
7687         uint32_t _ptr_array;
7688         uint32_t cntr_array_1;
7689         TALLOC_CTX *_mem_save_array_0;
7690         TALLOC_CTX *_mem_save_array_1;
7691         if (ndr_flags & NDR_SCALARS) {
7692                 NDR_CHECK(ndr_pull_align(ndr, 4));
7693                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7694                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7695                 if (_ptr_array) {
7696                         NDR_PULL_ALLOC(ndr, r->array);
7697                 } else {
7698                         r->array = NULL;
7699                 }
7700         }
7701         if (ndr_flags & NDR_BUFFERS) {
7702                 if (r->array) {
7703                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7704                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7705                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7706                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7707                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7708                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7709                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7710                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7711                         }
7712                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7713                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7714                         }
7715                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7716                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7717                 }
7718                 if (r->array) {
7719                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7720                 }
7721         }
7722         return NDR_ERR_SUCCESS;
7723 }
7724
7725 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7726 {
7727         uint32_t cntr_array_1;
7728         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7729         ndr->depth++;
7730         ndr_print_uint32(ndr, "count", r->count);
7731         ndr_print_ptr(ndr, "array", r->array);
7732         ndr->depth++;
7733         if (r->array) {
7734                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7735                 ndr->depth++;
7736                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7737                         char *idx_1=NULL;
7738                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7739                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7740                                 free(idx_1);
7741                         }
7742                 }
7743                 ndr->depth--;
7744         }
7745         ndr->depth--;
7746         ndr->depth--;
7747 }
7748
7749 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7750 {
7751         uint32_t cntr_sitename_1;
7752         uint32_t cntr_subnetname_1;
7753         if (ndr_flags & NDR_SCALARS) {
7754                 NDR_CHECK(ndr_push_align(ndr, 4));
7755                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7756                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7757                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7758         }
7759         if (ndr_flags & NDR_BUFFERS) {
7760                 if (r->sitename) {
7761                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7762                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7763                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7764                         }
7765                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7766                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7767                         }
7768                 }
7769                 if (r->subnetname) {
7770                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7771                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7772                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7773                         }
7774                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7775                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7776                         }
7777                 }
7778         }
7779         return NDR_ERR_SUCCESS;
7780 }
7781
7782 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7783 {
7784         uint32_t _ptr_sitename;
7785         uint32_t cntr_sitename_1;
7786         TALLOC_CTX *_mem_save_sitename_0;
7787         TALLOC_CTX *_mem_save_sitename_1;
7788         uint32_t _ptr_subnetname;
7789         uint32_t cntr_subnetname_1;
7790         TALLOC_CTX *_mem_save_subnetname_0;
7791         TALLOC_CTX *_mem_save_subnetname_1;
7792         if (ndr_flags & NDR_SCALARS) {
7793                 NDR_CHECK(ndr_pull_align(ndr, 4));
7794                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7795                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7796                 if (_ptr_sitename) {
7797                         NDR_PULL_ALLOC(ndr, r->sitename);
7798                 } else {
7799                         r->sitename = NULL;
7800                 }
7801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7802                 if (_ptr_subnetname) {
7803                         NDR_PULL_ALLOC(ndr, r->subnetname);
7804                 } else {
7805                         r->subnetname = NULL;
7806                 }
7807         }
7808         if (ndr_flags & NDR_BUFFERS) {
7809                 if (r->sitename) {
7810                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7811                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7812                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7813                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7814                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7815                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7816                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7817                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7818                         }
7819                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7820                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7821                         }
7822                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7823                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7824                 }
7825                 if (r->subnetname) {
7826                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7827                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7828                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7829                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7830                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7831                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7832                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7833                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7834                         }
7835                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7836                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7837                         }
7838                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7839                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7840                 }
7841                 if (r->sitename) {
7842                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7843                 }
7844                 if (r->subnetname) {
7845                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7846                 }
7847         }
7848         return NDR_ERR_SUCCESS;
7849 }
7850
7851 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7852 {
7853         uint32_t cntr_sitename_1;
7854         uint32_t cntr_subnetname_1;
7855         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7856         ndr->depth++;
7857         ndr_print_uint32(ndr, "count", r->count);
7858         ndr_print_ptr(ndr, "sitename", r->sitename);
7859         ndr->depth++;
7860         if (r->sitename) {
7861                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
7862                 ndr->depth++;
7863                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7864                         char *idx_1=NULL;
7865                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7866                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7867                                 free(idx_1);
7868                         }
7869                 }
7870                 ndr->depth--;
7871         }
7872         ndr->depth--;
7873         ndr_print_ptr(ndr, "subnetname", r->subnetname);
7874         ndr->depth++;
7875         if (r->subnetname) {
7876                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
7877                 ndr->depth++;
7878                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
7879                         char *idx_1=NULL;
7880                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
7881                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7882                                 free(idx_1);
7883                         }
7884                 }
7885                 ndr->depth--;
7886         }
7887         ndr->depth--;
7888         ndr->depth--;
7889 }
7890
7891 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7892 {
7893         uint32_t cntr_sites_1;
7894         if (ndr_flags & NDR_SCALARS) {
7895                 NDR_CHECK(ndr_push_align(ndr, 4));
7896                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7897                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7898         }
7899         if (ndr_flags & NDR_BUFFERS) {
7900                 if (r->sites) {
7901                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7902                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7903                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7904                         }
7905                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7906                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7907                         }
7908                 }
7909         }
7910         return NDR_ERR_SUCCESS;
7911 }
7912
7913 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7914 {
7915         uint32_t _ptr_sites;
7916         uint32_t cntr_sites_1;
7917         TALLOC_CTX *_mem_save_sites_0;
7918         TALLOC_CTX *_mem_save_sites_1;
7919         if (ndr_flags & NDR_SCALARS) {
7920                 NDR_CHECK(ndr_pull_align(ndr, 4));
7921                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7922                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7923                 if (_ptr_sites) {
7924                         NDR_PULL_ALLOC(ndr, r->sites);
7925                 } else {
7926                         r->sites = NULL;
7927                 }
7928         }
7929         if (ndr_flags & NDR_BUFFERS) {
7930                 if (r->sites) {
7931                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7932                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7933                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7934                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7935                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7936                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7937                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7938                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7939                         }
7940                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7941                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7942                         }
7943                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7944                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7945                 }
7946                 if (r->sites) {
7947                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7948                 }
7949         }
7950         return NDR_ERR_SUCCESS;
7951 }
7952
7953 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7954 {
7955         uint32_t cntr_sites_1;
7956         ndr_print_struct(ndr, name, "DcSitesCtr");
7957         ndr->depth++;
7958         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7959         ndr_print_ptr(ndr, "sites", r->sites);
7960         ndr->depth++;
7961         if (r->sites) {
7962                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
7963                 ndr->depth++;
7964                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7965                         char *idx_1=NULL;
7966                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
7967                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7968                                 free(idx_1);
7969                         }
7970                 }
7971                 ndr->depth--;
7972         }
7973         ndr->depth--;
7974         ndr->depth--;
7975 }
7976
7977 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7978 {
7979         if (flags & NDR_IN) {
7980                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7981                 if (r->in.server_name) {
7982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7984                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7985                         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));
7986                 }
7987                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7988                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7989                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7990                 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));
7991                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7992                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7993                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7994                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7995         }
7996         if (flags & NDR_OUT) {
7997                 if (r->out.info == NULL) {
7998                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7999                 }
8000                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8001                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8002         }
8003         return NDR_ERR_SUCCESS;
8004 }
8005
8006 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
8007 {
8008         uint32_t _ptr_server_name;
8009         TALLOC_CTX *_mem_save_server_name_0;
8010         TALLOC_CTX *_mem_save_info_0;
8011         if (flags & NDR_IN) {
8012                 ZERO_STRUCT(r->out);
8013
8014                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8015                 if (_ptr_server_name) {
8016                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8017                 } else {
8018                         r->in.server_name = NULL;
8019                 }
8020                 if (r->in.server_name) {
8021                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8022                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8023                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8024                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8025                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8026                                 return 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));
8027                         }
8028                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8029                         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));
8030                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8031                 }
8032                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8033                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8034                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8035                         return 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));
8036                 }
8037                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8038                 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));
8039                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8040                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8041                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8042                         return 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));
8043                 }
8044                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8045                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8046                 NDR_PULL_ALLOC(ndr, r->out.info);
8047                 ZERO_STRUCTP(r->out.info);
8048         }
8049         if (flags & NDR_OUT) {
8050                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8051                         NDR_PULL_ALLOC(ndr, r->out.info);
8052                 }
8053                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8054                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8055                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8056                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8057                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8058         }
8059         return NDR_ERR_SUCCESS;
8060 }
8061
8062 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8063 {
8064         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8065         ndr->depth++;
8066         if (flags & NDR_SET_VALUES) {
8067                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8068         }
8069         if (flags & NDR_IN) {
8070                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8071                 ndr->depth++;
8072                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8073                 ndr->depth++;
8074                 if (r->in.server_name) {
8075                         ndr_print_string(ndr, "server_name", r->in.server_name);
8076                 }
8077                 ndr->depth--;
8078                 ndr_print_string(ndr, "account_name", r->in.account_name);
8079                 ndr_print_string(ndr, "workstation", r->in.workstation);
8080                 ndr->depth--;
8081         }
8082         if (flags & NDR_OUT) {
8083                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8084                 ndr->depth++;
8085                 ndr_print_ptr(ndr, "info", r->out.info);
8086                 ndr->depth++;
8087                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8088                 ndr->depth--;
8089                 ndr_print_WERROR(ndr, "result", r->out.result);
8090                 ndr->depth--;
8091         }
8092         ndr->depth--;
8093 }
8094
8095 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8096 {
8097         if (flags & NDR_IN) {
8098                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8099                 if (r->in.server_name) {
8100                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8102                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8103                         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));
8104                 }
8105                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8106                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8107                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8108                 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));
8109                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8110                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8111                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8112                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8113         }
8114         if (flags & NDR_OUT) {
8115                 if (r->out.info == NULL) {
8116                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8117                 }
8118                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8119                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8120         }
8121         return NDR_ERR_SUCCESS;
8122 }
8123
8124 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8125 {
8126         uint32_t _ptr_server_name;
8127         TALLOC_CTX *_mem_save_server_name_0;
8128         TALLOC_CTX *_mem_save_info_0;
8129         if (flags & NDR_IN) {
8130                 ZERO_STRUCT(r->out);
8131
8132                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8133                 if (_ptr_server_name) {
8134                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8135                 } else {
8136                         r->in.server_name = NULL;
8137                 }
8138                 if (r->in.server_name) {
8139                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8140                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8141                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8142                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8143                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8144                                 return 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));
8145                         }
8146                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8147                         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));
8148                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8149                 }
8150                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8151                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8152                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8153                         return 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));
8154                 }
8155                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8156                 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));
8157                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8158                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8159                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8160                         return 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));
8161                 }
8162                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8163                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8164                 NDR_PULL_ALLOC(ndr, r->out.info);
8165                 ZERO_STRUCTP(r->out.info);
8166         }
8167         if (flags & NDR_OUT) {
8168                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8169                         NDR_PULL_ALLOC(ndr, r->out.info);
8170                 }
8171                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8172                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8173                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8174                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8175                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8176         }
8177         return NDR_ERR_SUCCESS;
8178 }
8179
8180 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8181 {
8182         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8183         ndr->depth++;
8184         if (flags & NDR_SET_VALUES) {
8185                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8186         }
8187         if (flags & NDR_IN) {
8188                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8189                 ndr->depth++;
8190                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8191                 ndr->depth++;
8192                 if (r->in.server_name) {
8193                         ndr_print_string(ndr, "server_name", r->in.server_name);
8194                 }
8195                 ndr->depth--;
8196                 ndr_print_string(ndr, "account_name", r->in.account_name);
8197                 ndr_print_string(ndr, "workstation", r->in.workstation);
8198                 ndr->depth--;
8199         }
8200         if (flags & NDR_OUT) {
8201                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8202                 ndr->depth++;
8203                 ndr_print_ptr(ndr, "info", r->out.info);
8204                 ndr->depth++;
8205                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8206                 ndr->depth--;
8207                 ndr_print_WERROR(ndr, "result", r->out.result);
8208                 ndr->depth--;
8209         }
8210         ndr->depth--;
8211 }
8212
8213 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8214 {
8215         if (flags & NDR_IN) {
8216                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8217                 if (r->in.server_name) {
8218                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8219                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8220                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8221                         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));
8222                 }
8223                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8224                 if (r->in.computer_name) {
8225                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8226                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8227                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8228                         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));
8229                 }
8230                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8231                 if (r->in.credential) {
8232                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8233                 }
8234                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8235                 if (r->in.return_authenticator) {
8236                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8237                 }
8238                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8239                 if (r->in.logon == NULL) {
8240                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8241                 }
8242                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8243                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8244                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8245         }
8246         if (flags & NDR_OUT) {
8247                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8248                 if (r->out.return_authenticator) {
8249                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8250                 }
8251                 if (r->out.validation == NULL) {
8252                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8253                 }
8254                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8255                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8256                 if (r->out.authoritative == NULL) {
8257                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8258                 }
8259                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8260                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8261         }
8262         return NDR_ERR_SUCCESS;
8263 }
8264
8265 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8266 {
8267         uint32_t _ptr_server_name;
8268         uint32_t _ptr_computer_name;
8269         uint32_t _ptr_credential;
8270         uint32_t _ptr_return_authenticator;
8271         TALLOC_CTX *_mem_save_server_name_0;
8272         TALLOC_CTX *_mem_save_computer_name_0;
8273         TALLOC_CTX *_mem_save_credential_0;
8274         TALLOC_CTX *_mem_save_return_authenticator_0;
8275         TALLOC_CTX *_mem_save_logon_0;
8276         TALLOC_CTX *_mem_save_validation_0;
8277         TALLOC_CTX *_mem_save_authoritative_0;
8278         if (flags & NDR_IN) {
8279                 ZERO_STRUCT(r->out);
8280
8281                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8282                 if (_ptr_server_name) {
8283                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8284                 } else {
8285                         r->in.server_name = NULL;
8286                 }
8287                 if (r->in.server_name) {
8288                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8289                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8290                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8291                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8292                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8293                                 return 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));
8294                         }
8295                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8296                         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));
8297                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8298                 }
8299                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8300                 if (_ptr_computer_name) {
8301                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8302                 } else {
8303                         r->in.computer_name = NULL;
8304                 }
8305                 if (r->in.computer_name) {
8306                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8307                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8308                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8309                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8310                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8311                                 return 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));
8312                         }
8313                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8314                         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));
8315                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8316                 }
8317                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8318                 if (_ptr_credential) {
8319                         NDR_PULL_ALLOC(ndr, r->in.credential);
8320                 } else {
8321                         r->in.credential = NULL;
8322                 }
8323                 if (r->in.credential) {
8324                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8325                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8326                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8327                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8328                 }
8329                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8330                 if (_ptr_return_authenticator) {
8331                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8332                 } else {
8333                         r->in.return_authenticator = NULL;
8334                 }
8335                 if (r->in.return_authenticator) {
8336                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8337                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8338                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8339                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8340                 }
8341                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8342                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8343                         NDR_PULL_ALLOC(ndr, r->in.logon);
8344                 }
8345                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
8346                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
8347                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8348                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8349                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
8350                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8351                 NDR_PULL_ALLOC(ndr, r->out.validation);
8352                 ZERO_STRUCTP(r->out.validation);
8353                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8354                 ZERO_STRUCTP(r->out.authoritative);
8355         }
8356         if (flags & NDR_OUT) {
8357                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8358                 if (_ptr_return_authenticator) {
8359                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8360                 } else {
8361                         r->out.return_authenticator = NULL;
8362                 }
8363                 if (r->out.return_authenticator) {
8364                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8365                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8366                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8367                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8368                 }
8369                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8370                         NDR_PULL_ALLOC(ndr, r->out.validation);
8371                 }
8372                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8373                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8374                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8375                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8376                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8377                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8378                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8379                 }
8380                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8381                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8382                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8383                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8384                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8385         }
8386         return NDR_ERR_SUCCESS;
8387 }
8388
8389 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8390 {
8391         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8392         ndr->depth++;
8393         if (flags & NDR_SET_VALUES) {
8394                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8395         }
8396         if (flags & NDR_IN) {
8397                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8398                 ndr->depth++;
8399                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8400                 ndr->depth++;
8401                 if (r->in.server_name) {
8402                         ndr_print_string(ndr, "server_name", r->in.server_name);
8403                 }
8404                 ndr->depth--;
8405                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8406                 ndr->depth++;
8407                 if (r->in.computer_name) {
8408                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8409                 }
8410                 ndr->depth--;
8411                 ndr_print_ptr(ndr, "credential", r->in.credential);
8412                 ndr->depth++;
8413                 if (r->in.credential) {
8414                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8415                 }
8416                 ndr->depth--;
8417                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8418                 ndr->depth++;
8419                 if (r->in.return_authenticator) {
8420                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8421                 }
8422                 ndr->depth--;
8423                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8424                 ndr_print_ptr(ndr, "logon", r->in.logon);
8425                 ndr->depth++;
8426                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
8427                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
8428                 ndr->depth--;
8429                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8430                 ndr->depth--;
8431         }
8432         if (flags & NDR_OUT) {
8433                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8434                 ndr->depth++;
8435                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8436                 ndr->depth++;
8437                 if (r->out.return_authenticator) {
8438                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8439                 }
8440                 ndr->depth--;
8441                 ndr_print_ptr(ndr, "validation", r->out.validation);
8442                 ndr->depth++;
8443                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8444                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8445                 ndr->depth--;
8446                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8447                 ndr->depth++;
8448                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8449                 ndr->depth--;
8450                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8451                 ndr->depth--;
8452         }
8453         ndr->depth--;
8454 }
8455
8456 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8457 {
8458         if (flags & NDR_IN) {
8459                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8460                 if (r->in.server_name) {
8461                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8462                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8463                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8464                         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));
8465                 }
8466                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8467                 if (r->in.computer_name) {
8468                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8469                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8471                         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));
8472                 }
8473                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8474                 if (r->in.credential) {
8475                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8476                 }
8477                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8478                 if (r->in.return_authenticator) {
8479                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8480                 }
8481                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8482                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8483                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8484         }
8485         if (flags & NDR_OUT) {
8486                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8487                 if (r->out.return_authenticator) {
8488                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8489                 }
8490                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8491         }
8492         return NDR_ERR_SUCCESS;
8493 }
8494
8495 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8496 {
8497         uint32_t _ptr_server_name;
8498         uint32_t _ptr_computer_name;
8499         uint32_t _ptr_credential;
8500         uint32_t _ptr_return_authenticator;
8501         TALLOC_CTX *_mem_save_server_name_0;
8502         TALLOC_CTX *_mem_save_computer_name_0;
8503         TALLOC_CTX *_mem_save_credential_0;
8504         TALLOC_CTX *_mem_save_return_authenticator_0;
8505         if (flags & NDR_IN) {
8506                 ZERO_STRUCT(r->out);
8507
8508                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8509                 if (_ptr_server_name) {
8510                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8511                 } else {
8512                         r->in.server_name = NULL;
8513                 }
8514                 if (r->in.server_name) {
8515                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8516                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8517                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8518                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8519                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8520                                 return 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));
8521                         }
8522                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8523                         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));
8524                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8525                 }
8526                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8527                 if (_ptr_computer_name) {
8528                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8529                 } else {
8530                         r->in.computer_name = NULL;
8531                 }
8532                 if (r->in.computer_name) {
8533                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8534                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8535                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8536                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8537                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8538                                 return 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));
8539                         }
8540                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8541                         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));
8542                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8543                 }
8544                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8545                 if (_ptr_credential) {
8546                         NDR_PULL_ALLOC(ndr, r->in.credential);
8547                 } else {
8548                         r->in.credential = NULL;
8549                 }
8550                 if (r->in.credential) {
8551                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8552                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8553                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8554                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8555                 }
8556                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8557                 if (_ptr_return_authenticator) {
8558                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8559                 } else {
8560                         r->in.return_authenticator = NULL;
8561                 }
8562                 if (r->in.return_authenticator) {
8563                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8564                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8565                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8566                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8567                 }
8568                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8569                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8570                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8571         }
8572         if (flags & NDR_OUT) {
8573                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8574                 if (_ptr_return_authenticator) {
8575                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8576                 } else {
8577                         r->out.return_authenticator = NULL;
8578                 }
8579                 if (r->out.return_authenticator) {
8580                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8581                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8582                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8583                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8584                 }
8585                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8586         }
8587         return NDR_ERR_SUCCESS;
8588 }
8589
8590 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8591 {
8592         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8593         ndr->depth++;
8594         if (flags & NDR_SET_VALUES) {
8595                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8596         }
8597         if (flags & NDR_IN) {
8598                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8599                 ndr->depth++;
8600                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8601                 ndr->depth++;
8602                 if (r->in.server_name) {
8603                         ndr_print_string(ndr, "server_name", r->in.server_name);
8604                 }
8605                 ndr->depth--;
8606                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8607                 ndr->depth++;
8608                 if (r->in.computer_name) {
8609                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8610                 }
8611                 ndr->depth--;
8612                 ndr_print_ptr(ndr, "credential", r->in.credential);
8613                 ndr->depth++;
8614                 if (r->in.credential) {
8615                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8616                 }
8617                 ndr->depth--;
8618                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8619                 ndr->depth++;
8620                 if (r->in.return_authenticator) {
8621                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8622                 }
8623                 ndr->depth--;
8624                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8625                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8626                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
8627                 ndr->depth--;
8628         }
8629         if (flags & NDR_OUT) {
8630                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8631                 ndr->depth++;
8632                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8633                 ndr->depth++;
8634                 if (r->out.return_authenticator) {
8635                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8636                 }
8637                 ndr->depth--;
8638                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8639                 ndr->depth--;
8640         }
8641         ndr->depth--;
8642 }
8643
8644 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8645 {
8646         if (flags & NDR_IN) {
8647                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8648                 if (r->in.server_name) {
8649                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8650                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8651                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8652                         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));
8653                 }
8654                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8655                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8656                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8657                 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));
8658                 if (r->in.credentials == NULL) {
8659                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8660                 }
8661                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8662         }
8663         if (flags & NDR_OUT) {
8664                 if (r->out.return_credentials == NULL) {
8665                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8666                 }
8667                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8668                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8669         }
8670         return NDR_ERR_SUCCESS;
8671 }
8672
8673 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8674 {
8675         uint32_t _ptr_server_name;
8676         TALLOC_CTX *_mem_save_server_name_0;
8677         TALLOC_CTX *_mem_save_credentials_0;
8678         TALLOC_CTX *_mem_save_return_credentials_0;
8679         if (flags & NDR_IN) {
8680                 ZERO_STRUCT(r->out);
8681
8682                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8683                 if (_ptr_server_name) {
8684                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8685                 } else {
8686                         r->in.server_name = NULL;
8687                 }
8688                 if (r->in.server_name) {
8689                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8690                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8691                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8692                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8693                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8694                                 return 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));
8695                         }
8696                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8697                         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));
8698                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8699                 }
8700                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8701                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8702                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8703                         return 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));
8704                 }
8705                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8706                 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));
8707                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8708                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8709                 }
8710                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8711                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8712                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8713                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8714                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8715                 ZERO_STRUCTP(r->out.return_credentials);
8716         }
8717         if (flags & NDR_OUT) {
8718                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8719                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8720                 }
8721                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8722                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8723                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8724                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8725                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8726         }
8727         return NDR_ERR_SUCCESS;
8728 }
8729
8730 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8731 {
8732         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8733         ndr->depth++;
8734         if (flags & NDR_SET_VALUES) {
8735                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8736         }
8737         if (flags & NDR_IN) {
8738                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8739                 ndr->depth++;
8740                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8741                 ndr->depth++;
8742                 if (r->in.server_name) {
8743                         ndr_print_string(ndr, "server_name", r->in.server_name);
8744                 }
8745                 ndr->depth--;
8746                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8747                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8748                 ndr->depth++;
8749                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8750                 ndr->depth--;
8751                 ndr->depth--;
8752         }
8753         if (flags & NDR_OUT) {
8754                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8755                 ndr->depth++;
8756                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8757                 ndr->depth++;
8758                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8759                 ndr->depth--;
8760                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8761                 ndr->depth--;
8762         }
8763         ndr->depth--;
8764 }
8765
8766 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8767 {
8768         if (flags & NDR_IN) {
8769                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8770                 if (r->in.server_name) {
8771                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8773                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8774                         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));
8775                 }
8776                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8779                 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));
8780                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8781                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8782                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8783                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8784                 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));
8785                 if (r->in.credentials == NULL) {
8786                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8787                 }
8788                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8789         }
8790         if (flags & NDR_OUT) {
8791                 if (r->out.return_credentials == NULL) {
8792                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8793                 }
8794                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8795                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8796         }
8797         return NDR_ERR_SUCCESS;
8798 }
8799
8800 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8801 {
8802         uint32_t _ptr_server_name;
8803         TALLOC_CTX *_mem_save_server_name_0;
8804         TALLOC_CTX *_mem_save_credentials_0;
8805         TALLOC_CTX *_mem_save_return_credentials_0;
8806         if (flags & NDR_IN) {
8807                 ZERO_STRUCT(r->out);
8808
8809                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8810                 if (_ptr_server_name) {
8811                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8812                 } else {
8813                         r->in.server_name = NULL;
8814                 }
8815                 if (r->in.server_name) {
8816                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8817                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8818                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8819                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8820                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8821                                 return 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));
8822                         }
8823                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8824                         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));
8825                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8826                 }
8827                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8828                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8829                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8830                         return 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));
8831                 }
8832                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8833                 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));
8834                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8835                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8836                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8837                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8838                         return 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));
8839                 }
8840                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8841                 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));
8842                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8843                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8844                 }
8845                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8846                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8847                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8848                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8849                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8850                 ZERO_STRUCTP(r->out.return_credentials);
8851         }
8852         if (flags & NDR_OUT) {
8853                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8854                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8855                 }
8856                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8857                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8858                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8859                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8860                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8861         }
8862         return NDR_ERR_SUCCESS;
8863 }
8864
8865 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8866 {
8867         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8868         ndr->depth++;
8869         if (flags & NDR_SET_VALUES) {
8870                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8871         }
8872         if (flags & NDR_IN) {
8873                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8874                 ndr->depth++;
8875                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8876                 ndr->depth++;
8877                 if (r->in.server_name) {
8878                         ndr_print_string(ndr, "server_name", r->in.server_name);
8879                 }
8880                 ndr->depth--;
8881                 ndr_print_string(ndr, "account_name", r->in.account_name);
8882                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8883                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8884                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8885                 ndr->depth++;
8886                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8887                 ndr->depth--;
8888                 ndr->depth--;
8889         }
8890         if (flags & NDR_OUT) {
8891                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8892                 ndr->depth++;
8893                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8894                 ndr->depth++;
8895                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8896                 ndr->depth--;
8897                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8898                 ndr->depth--;
8899         }
8900         ndr->depth--;
8901 }
8902
8903 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8904 {
8905         if (flags & NDR_IN) {
8906                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8907                 if (r->in.server_name) {
8908                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8909                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8910                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8911                         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));
8912                 }
8913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8915                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8916                 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));
8917                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8919                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8920                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8921                 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));
8922                 if (r->in.credential == NULL) {
8923                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8924                 }
8925                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8926                 if (r->in.new_password == NULL) {
8927                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8928                 }
8929                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8930         }
8931         if (flags & NDR_OUT) {
8932                 if (r->out.return_authenticator == NULL) {
8933                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8934                 }
8935                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8936                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8937         }
8938         return NDR_ERR_SUCCESS;
8939 }
8940
8941 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8942 {
8943         uint32_t _ptr_server_name;
8944         TALLOC_CTX *_mem_save_server_name_0;
8945         TALLOC_CTX *_mem_save_credential_0;
8946         TALLOC_CTX *_mem_save_return_authenticator_0;
8947         TALLOC_CTX *_mem_save_new_password_0;
8948         if (flags & NDR_IN) {
8949                 ZERO_STRUCT(r->out);
8950
8951                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8952                 if (_ptr_server_name) {
8953                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8954                 } else {
8955                         r->in.server_name = NULL;
8956                 }
8957                 if (r->in.server_name) {
8958                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8959                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8960                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8961                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8962                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8963                                 return 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));
8964                         }
8965                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8966                         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));
8967                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8968                 }
8969                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8970                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8971                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8972                         return 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));
8973                 }
8974                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8975                 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));
8976                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8977                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8978                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8979                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8980                         return 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));
8981                 }
8982                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8983                 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));
8984                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8985                         NDR_PULL_ALLOC(ndr, r->in.credential);
8986                 }
8987                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8988                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
8989                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8990                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
8991                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8992                         NDR_PULL_ALLOC(ndr, r->in.new_password);
8993                 }
8994                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
8995                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
8996                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8997                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
8998                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8999                 ZERO_STRUCTP(r->out.return_authenticator);
9000         }
9001         if (flags & NDR_OUT) {
9002                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9003                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9004                 }
9005                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9006                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9007                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9008                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9009                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9010         }
9011         return NDR_ERR_SUCCESS;
9012 }
9013
9014 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
9015 {
9016         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
9017         ndr->depth++;
9018         if (flags & NDR_SET_VALUES) {
9019                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9020         }
9021         if (flags & NDR_IN) {
9022                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
9023                 ndr->depth++;
9024                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9025                 ndr->depth++;
9026                 if (r->in.server_name) {
9027                         ndr_print_string(ndr, "server_name", r->in.server_name);
9028                 }
9029                 ndr->depth--;
9030                 ndr_print_string(ndr, "account_name", r->in.account_name);
9031                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9032                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9033                 ndr_print_ptr(ndr, "credential", r->in.credential);
9034                 ndr->depth++;
9035                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9036                 ndr->depth--;
9037                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
9038                 ndr->depth++;
9039                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
9040                 ndr->depth--;
9041                 ndr->depth--;
9042         }
9043         if (flags & NDR_OUT) {
9044                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9045                 ndr->depth++;
9046                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9047                 ndr->depth++;
9048                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9049                 ndr->depth--;
9050                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9051                 ndr->depth--;
9052         }
9053         ndr->depth--;
9054 }
9055
9056 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9057 {
9058         if (flags & NDR_IN) {
9059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9060                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9061                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9062                 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));
9063                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9064                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9065                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9066                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9067                 if (r->in.credential == NULL) {
9068                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9069                 }
9070                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9071                 if (r->in.return_authenticator == NULL) {
9072                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9073                 }
9074                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9075                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9076                 if (r->in.sequence_num == NULL) {
9077                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9078                 }
9079                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9080                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9081         }
9082         if (flags & NDR_OUT) {
9083                 if (r->out.return_authenticator == NULL) {
9084                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9085                 }
9086                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9087                 if (r->out.sequence_num == NULL) {
9088                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9089                 }
9090                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9091                 if (r->out.delta_enum_array == NULL) {
9092                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9093                 }
9094                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9095                 if (*r->out.delta_enum_array) {
9096                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9097                 }
9098                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9099         }
9100         return NDR_ERR_SUCCESS;
9101 }
9102
9103 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9104 {
9105         uint32_t _ptr_delta_enum_array;
9106         TALLOC_CTX *_mem_save_credential_0;
9107         TALLOC_CTX *_mem_save_return_authenticator_0;
9108         TALLOC_CTX *_mem_save_sequence_num_0;
9109         TALLOC_CTX *_mem_save_delta_enum_array_0;
9110         TALLOC_CTX *_mem_save_delta_enum_array_1;
9111         if (flags & NDR_IN) {
9112                 ZERO_STRUCT(r->out);
9113
9114                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9115                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9116                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9117                         return 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));
9118                 }
9119                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9120                 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));
9121                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9122                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9123                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9124                         return 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));
9125                 }
9126                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9127                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9128                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9129                         NDR_PULL_ALLOC(ndr, r->in.credential);
9130                 }
9131                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9132                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9133                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9134                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9135                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9136                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9137                 }
9138                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9139                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9140                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9141                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9142                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9143                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9144                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9145                 }
9146                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9147                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9148                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9149                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9150                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9151                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9152                 *r->out.return_authenticator = *r->in.return_authenticator;
9153                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9154                 *r->out.sequence_num = *r->in.sequence_num;
9155                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9156                 ZERO_STRUCTP(r->out.delta_enum_array);
9157         }
9158         if (flags & NDR_OUT) {
9159                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9160                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9161                 }
9162                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9163                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9164                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9165                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9166                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9167                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9168                 }
9169                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9170                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9171                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9172                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9173                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9174                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9175                 }
9176                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9177                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9178                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9179                 if (_ptr_delta_enum_array) {
9180                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9181                 } else {
9182                         *r->out.delta_enum_array = NULL;
9183                 }
9184                 if (*r->out.delta_enum_array) {
9185                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9186                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9187                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9188                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9189                 }
9190                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9191                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9192         }
9193         return NDR_ERR_SUCCESS;
9194 }
9195
9196 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9197 {
9198         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9199         ndr->depth++;
9200         if (flags & NDR_SET_VALUES) {
9201                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9202         }
9203         if (flags & NDR_IN) {
9204                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9205                 ndr->depth++;
9206                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9207                 ndr_print_string(ndr, "computername", r->in.computername);
9208                 ndr_print_ptr(ndr, "credential", r->in.credential);
9209                 ndr->depth++;
9210                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9211                 ndr->depth--;
9212                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9213                 ndr->depth++;
9214                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9215                 ndr->depth--;
9216                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9217                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9218                 ndr->depth++;
9219                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9220                 ndr->depth--;
9221                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9222                 ndr->depth--;
9223         }
9224         if (flags & NDR_OUT) {
9225                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9226                 ndr->depth++;
9227                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9228                 ndr->depth++;
9229                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9230                 ndr->depth--;
9231                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9232                 ndr->depth++;
9233                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9234                 ndr->depth--;
9235                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9236                 ndr->depth++;
9237                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9238                 ndr->depth++;
9239                 if (*r->out.delta_enum_array) {
9240                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9241                 }
9242                 ndr->depth--;
9243                 ndr->depth--;
9244                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9245                 ndr->depth--;
9246         }
9247         ndr->depth--;
9248 }
9249
9250 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9251 {
9252         if (flags & NDR_IN) {
9253                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9254                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9255                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9256                 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));
9257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9258                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9260                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9261                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9262                 if (r->in.return_authenticator == NULL) {
9263                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9264                 }
9265                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9266                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9267                 if (r->in.sync_context == NULL) {
9268                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9269                 }
9270                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9271                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9272         }
9273         if (flags & NDR_OUT) {
9274                 if (r->out.return_authenticator == NULL) {
9275                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9276                 }
9277                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9278                 if (r->out.sync_context == NULL) {
9279                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9280                 }
9281                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9282                 if (r->out.delta_enum_array == NULL) {
9283                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9284                 }
9285                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9286                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9287         }
9288         return NDR_ERR_SUCCESS;
9289 }
9290
9291 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9292 {
9293         TALLOC_CTX *_mem_save_return_authenticator_0;
9294         TALLOC_CTX *_mem_save_sync_context_0;
9295         TALLOC_CTX *_mem_save_delta_enum_array_0;
9296         if (flags & NDR_IN) {
9297                 ZERO_STRUCT(r->out);
9298
9299                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9300                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9301                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9302                         return 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));
9303                 }
9304                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9305                 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));
9306                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9307                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9308                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9309                         return 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));
9310                 }
9311                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9312                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9313                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9314                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9315                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9316                 }
9317                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9318                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9319                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9320                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9321                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9322                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9323                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9324                 }
9325                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9326                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9327                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9328                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9329                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9330                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9331                 *r->out.return_authenticator = *r->in.return_authenticator;
9332                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9333                 *r->out.sync_context = *r->in.sync_context;
9334                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9335                 ZERO_STRUCTP(r->out.delta_enum_array);
9336         }
9337         if (flags & NDR_OUT) {
9338                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9339                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9340                 }
9341                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9342                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9343                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9344                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9345                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9346                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9347                 }
9348                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9349                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9350                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9351                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9352                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9353                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9354                 }
9355                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9356                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9357                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9358                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9359                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9360         }
9361         return NDR_ERR_SUCCESS;
9362 }
9363
9364 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9365 {
9366         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9367         ndr->depth++;
9368         if (flags & NDR_SET_VALUES) {
9369                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9370         }
9371         if (flags & NDR_IN) {
9372                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9373                 ndr->depth++;
9374                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9375                 ndr_print_string(ndr, "computername", r->in.computername);
9376                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9377                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9378                 ndr->depth++;
9379                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9380                 ndr->depth--;
9381                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9382                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9383                 ndr->depth++;
9384                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9385                 ndr->depth--;
9386                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9387                 ndr->depth--;
9388         }
9389         if (flags & NDR_OUT) {
9390                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9391                 ndr->depth++;
9392                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9393                 ndr->depth++;
9394                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9395                 ndr->depth--;
9396                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9397                 ndr->depth++;
9398                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9399                 ndr->depth--;
9400                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9401                 ndr->depth++;
9402                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9403                 ndr->depth--;
9404                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9405                 ndr->depth--;
9406         }
9407         ndr->depth--;
9408 }
9409
9410 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9411 {
9412         if (flags & NDR_IN) {
9413                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9414                 if (r->in.logon_server) {
9415                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9417                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9418                         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));
9419                 }
9420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9423                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9424                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9425                 if (r->in.return_authenticator == NULL) {
9426                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9427                 }
9428                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9429                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9430                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9431                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9432                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9433         }
9434         if (flags & NDR_OUT) {
9435                 if (r->out.return_authenticator == NULL) {
9436                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9437                 }
9438                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9439                 if (r->out.buffer == NULL) {
9440                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9441                 }
9442                 {
9443                         struct ndr_push *_ndr_buffer;
9444                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9445                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9446                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9447                 }
9448                 if (r->out.count_returned == NULL) {
9449                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9450                 }
9451                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9452                 if (r->out.total_entries == NULL) {
9453                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9454                 }
9455                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9456                 if (r->out.recordid == NULL) {
9457                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9458                 }
9459                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9460                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9461         }
9462         return NDR_ERR_SUCCESS;
9463 }
9464
9465 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9466 {
9467         uint32_t _ptr_logon_server;
9468         TALLOC_CTX *_mem_save_logon_server_0;
9469         TALLOC_CTX *_mem_save_return_authenticator_0;
9470         TALLOC_CTX *_mem_save_buffer_0;
9471         TALLOC_CTX *_mem_save_count_returned_0;
9472         TALLOC_CTX *_mem_save_total_entries_0;
9473         TALLOC_CTX *_mem_save_recordid_0;
9474         if (flags & NDR_IN) {
9475                 ZERO_STRUCT(r->out);
9476
9477                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9478                 if (_ptr_logon_server) {
9479                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9480                 } else {
9481                         r->in.logon_server = NULL;
9482                 }
9483                 if (r->in.logon_server) {
9484                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9485                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9486                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9487                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9488                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9489                                 return 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));
9490                         }
9491                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9492                         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));
9493                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9494                 }
9495                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9496                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9497                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9498                         return 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));
9499                 }
9500                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9501                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9502                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9503                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9504                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9505                 }
9506                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9507                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9508                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9509                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9510                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9511                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9512                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9513                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9514                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9515                 *r->out.return_authenticator = *r->in.return_authenticator;
9516                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9517                 ZERO_STRUCTP(r->out.buffer);
9518                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9519                 ZERO_STRUCTP(r->out.count_returned);
9520                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9521                 ZERO_STRUCTP(r->out.total_entries);
9522                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9523                 ZERO_STRUCTP(r->out.recordid);
9524         }
9525         if (flags & NDR_OUT) {
9526                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9527                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9528                 }
9529                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9530                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9531                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9532                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9533                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9534                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9535                 }
9536                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9537                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9538                 {
9539                         struct ndr_pull *_ndr_buffer;
9540                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9541                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9542                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9543                 }
9544                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9545                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9546                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9547                 }
9548                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9549                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9550                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9551                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9552                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9553                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9554                 }
9555                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9556                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9557                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9558                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9559                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9560                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9561                 }
9562                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9563                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9564                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9565                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9566                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9567         }
9568         return NDR_ERR_SUCCESS;
9569 }
9570
9571 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9572 {
9573         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9574         ndr->depth++;
9575         if (flags & NDR_SET_VALUES) {
9576                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9577         }
9578         if (flags & NDR_IN) {
9579                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9580                 ndr->depth++;
9581                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9582                 ndr->depth++;
9583                 if (r->in.logon_server) {
9584                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9585                 }
9586                 ndr->depth--;
9587                 ndr_print_string(ndr, "computername", r->in.computername);
9588                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9589                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9590                 ndr->depth++;
9591                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9592                 ndr->depth--;
9593                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9594                 ndr_print_uint32(ndr, "count", r->in.count);
9595                 ndr_print_uint32(ndr, "level", r->in.level);
9596                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9597                 ndr->depth--;
9598         }
9599         if (flags & NDR_OUT) {
9600                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9601                 ndr->depth++;
9602                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9603                 ndr->depth++;
9604                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9605                 ndr->depth--;
9606                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9607                 ndr->depth++;
9608                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9609                 ndr->depth--;
9610                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9611                 ndr->depth++;
9612                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9613                 ndr->depth--;
9614                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9615                 ndr->depth++;
9616                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9617                 ndr->depth--;
9618                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9619                 ndr->depth++;
9620                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9621                 ndr->depth--;
9622                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9623                 ndr->depth--;
9624         }
9625         ndr->depth--;
9626 }
9627
9628 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9629 {
9630         if (flags & NDR_IN) {
9631                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9632                 if (r->in.logon_server) {
9633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9634                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9635                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9636                         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));
9637                 }
9638                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9639                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9640                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9641                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9642                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9643                 if (r->in.return_authenticator == NULL) {
9644                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9645                 }
9646                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9650                 if (r->in.recordid == NULL) {
9651                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9652                 }
9653                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9654         }
9655         if (flags & NDR_OUT) {
9656                 if (r->out.return_authenticator == NULL) {
9657                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9658                 }
9659                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9660                 if (r->out.buffer == NULL) {
9661                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9662                 }
9663                 {
9664                         struct ndr_push *_ndr_buffer;
9665                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9666                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9667                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9668                 }
9669                 if (r->out.count_returned == NULL) {
9670                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9671                 }
9672                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9673                 if (r->out.total_entries == NULL) {
9674                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9675                 }
9676                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9677                 if (r->out.next_reference == NULL) {
9678                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9679                 }
9680                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9681                 if (r->out.recordid == NULL) {
9682                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9683                 }
9684                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9685                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9686         }
9687         return NDR_ERR_SUCCESS;
9688 }
9689
9690 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9691 {
9692         uint32_t _ptr_logon_server;
9693         TALLOC_CTX *_mem_save_logon_server_0;
9694         TALLOC_CTX *_mem_save_return_authenticator_0;
9695         TALLOC_CTX *_mem_save_buffer_0;
9696         TALLOC_CTX *_mem_save_count_returned_0;
9697         TALLOC_CTX *_mem_save_total_entries_0;
9698         TALLOC_CTX *_mem_save_next_reference_0;
9699         TALLOC_CTX *_mem_save_recordid_0;
9700         if (flags & NDR_IN) {
9701                 ZERO_STRUCT(r->out);
9702
9703                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9704                 if (_ptr_logon_server) {
9705                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9706                 } else {
9707                         r->in.logon_server = NULL;
9708                 }
9709                 if (r->in.logon_server) {
9710                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9711                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9712                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9713                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9714                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9715                                 return 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));
9716                         }
9717                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9718                         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));
9719                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9720                 }
9721                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9722                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9723                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9724                         return 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));
9725                 }
9726                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9727                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9728                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9729                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9730                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9731                 }
9732                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9733                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9734                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9735                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9737                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9738                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9739                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9740                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9741                 }
9742                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9743                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9744                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9745                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9746                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9747                 *r->out.return_authenticator = *r->in.return_authenticator;
9748                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9749                 ZERO_STRUCTP(r->out.buffer);
9750                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9751                 ZERO_STRUCTP(r->out.count_returned);
9752                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9753                 ZERO_STRUCTP(r->out.total_entries);
9754                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9755                 ZERO_STRUCTP(r->out.next_reference);
9756                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9757                 *r->out.recordid = *r->in.recordid;
9758         }
9759         if (flags & NDR_OUT) {
9760                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9761                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9762                 }
9763                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9764                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9765                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9766                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9767                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9768                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9769                 }
9770                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9771                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9772                 {
9773                         struct ndr_pull *_ndr_buffer;
9774                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9775                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9776                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9777                 }
9778                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9779                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9780                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9781                 }
9782                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9783                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9784                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9785                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9786                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9787                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9788                 }
9789                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9790                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9792                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9793                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9794                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9795                 }
9796                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9797                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9798                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9799                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9800                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9801                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9802                 }
9803                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9804                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9805                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9806                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9807                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9808         }
9809         return NDR_ERR_SUCCESS;
9810 }
9811
9812 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9813 {
9814         ndr_print_struct(ndr, name, "netr_AccountSync");
9815         ndr->depth++;
9816         if (flags & NDR_SET_VALUES) {
9817                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9818         }
9819         if (flags & NDR_IN) {
9820                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9821                 ndr->depth++;
9822                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9823                 ndr->depth++;
9824                 if (r->in.logon_server) {
9825                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9826                 }
9827                 ndr->depth--;
9828                 ndr_print_string(ndr, "computername", r->in.computername);
9829                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9830                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9831                 ndr->depth++;
9832                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9833                 ndr->depth--;
9834                 ndr_print_uint32(ndr, "reference", r->in.reference);
9835                 ndr_print_uint32(ndr, "level", r->in.level);
9836                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9837                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9838                 ndr->depth++;
9839                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9840                 ndr->depth--;
9841                 ndr->depth--;
9842         }
9843         if (flags & NDR_OUT) {
9844                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9845                 ndr->depth++;
9846                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9847                 ndr->depth++;
9848                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9849                 ndr->depth--;
9850                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9851                 ndr->depth++;
9852                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9853                 ndr->depth--;
9854                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9855                 ndr->depth++;
9856                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9857                 ndr->depth--;
9858                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9859                 ndr->depth++;
9860                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9861                 ndr->depth--;
9862                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9863                 ndr->depth++;
9864                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9865                 ndr->depth--;
9866                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9867                 ndr->depth++;
9868                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9869                 ndr->depth--;
9870                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9871                 ndr->depth--;
9872         }
9873         ndr->depth--;
9874 }
9875
9876 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9877 {
9878         if (flags & NDR_IN) {
9879                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9880                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9881                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9882                 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));
9883                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9884                 if (r->in.domainname) {
9885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9886                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9887                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9888                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9889                 }
9890         }
9891         if (flags & NDR_OUT) {
9892                 if (r->out.dcname == NULL) {
9893                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9894                 }
9895                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
9896                 if (*r->out.dcname) {
9897                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9898                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9899                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9900                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9901                 }
9902                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9903         }
9904         return NDR_ERR_SUCCESS;
9905 }
9906
9907 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9908 {
9909         uint32_t _ptr_domainname;
9910         uint32_t _ptr_dcname;
9911         TALLOC_CTX *_mem_save_domainname_0;
9912         TALLOC_CTX *_mem_save_dcname_0;
9913         TALLOC_CTX *_mem_save_dcname_1;
9914         if (flags & NDR_IN) {
9915                 ZERO_STRUCT(r->out);
9916
9917                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9918                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9919                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9920                         return 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));
9921                 }
9922                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9923                 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));
9924                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9925                 if (_ptr_domainname) {
9926                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9927                 } else {
9928                         r->in.domainname = NULL;
9929                 }
9930                 if (r->in.domainname) {
9931                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9932                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9933                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9934                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9935                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9936                                 return 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));
9937                         }
9938                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9939                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9940                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9941                 }
9942                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9943                 ZERO_STRUCTP(r->out.dcname);
9944         }
9945         if (flags & NDR_OUT) {
9946                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9947                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9948                 }
9949                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9950                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9951                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
9952                 if (_ptr_dcname) {
9953                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
9954                 } else {
9955                         *r->out.dcname = NULL;
9956                 }
9957                 if (*r->out.dcname) {
9958                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9959                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
9960                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9961                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9962                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9963                                 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));
9964                         }
9965                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9966                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9967                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
9968                 }
9969                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9970                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9971         }
9972         return NDR_ERR_SUCCESS;
9973 }
9974
9975 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9976 {
9977         ndr_print_struct(ndr, name, "netr_GetDcName");
9978         ndr->depth++;
9979         if (flags & NDR_SET_VALUES) {
9980                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9981         }
9982         if (flags & NDR_IN) {
9983                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9984                 ndr->depth++;
9985                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9986                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9987                 ndr->depth++;
9988                 if (r->in.domainname) {
9989                         ndr_print_string(ndr, "domainname", r->in.domainname);
9990                 }
9991                 ndr->depth--;
9992                 ndr->depth--;
9993         }
9994         if (flags & NDR_OUT) {
9995                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9996                 ndr->depth++;
9997                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9998                 ndr->depth++;
9999                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10000                 ndr->depth++;
10001                 if (*r->out.dcname) {
10002                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10003                 }
10004                 ndr->depth--;
10005                 ndr->depth--;
10006                 ndr_print_WERROR(ndr, "result", r->out.result);
10007                 ndr->depth--;
10008         }
10009         ndr->depth--;
10010 }
10011
10012 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
10013 {
10014         if (flags & NDR_IN) {
10015                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10016                 if (r->in.logon_server) {
10017                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10018                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10019                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10020                         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));
10021                 }
10022                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10024         }
10025         if (flags & NDR_OUT) {
10026                 if (r->out.info == NULL) {
10027                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10028                 }
10029                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10030                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10031                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10032         }
10033         return NDR_ERR_SUCCESS;
10034 }
10035
10036 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
10037 {
10038         uint32_t _ptr_logon_server;
10039         TALLOC_CTX *_mem_save_logon_server_0;
10040         TALLOC_CTX *_mem_save_info_0;
10041         if (flags & NDR_IN) {
10042                 ZERO_STRUCT(r->out);
10043
10044                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10045                 if (_ptr_logon_server) {
10046                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10047                 } else {
10048                         r->in.logon_server = NULL;
10049                 }
10050                 if (r->in.logon_server) {
10051                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10052                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10053                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10054                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10055                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10056                                 return 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));
10057                         }
10058                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10059                         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));
10060                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10061                 }
10062                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10063                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10064                 NDR_PULL_ALLOC(ndr, r->out.info);
10065                 ZERO_STRUCTP(r->out.info);
10066         }
10067         if (flags & NDR_OUT) {
10068                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10069                         NDR_PULL_ALLOC(ndr, r->out.info);
10070                 }
10071                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10072                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10073                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10074                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10075                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10076                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10077         }
10078         return NDR_ERR_SUCCESS;
10079 }
10080
10081 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10082 {
10083         ndr_print_struct(ndr, name, "netr_LogonControl");
10084         ndr->depth++;
10085         if (flags & NDR_SET_VALUES) {
10086                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10087         }
10088         if (flags & NDR_IN) {
10089                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10090                 ndr->depth++;
10091                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10092                 ndr->depth++;
10093                 if (r->in.logon_server) {
10094                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10095                 }
10096                 ndr->depth--;
10097                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10098                 ndr_print_uint32(ndr, "level", r->in.level);
10099                 ndr->depth--;
10100         }
10101         if (flags & NDR_OUT) {
10102                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10103                 ndr->depth++;
10104                 ndr_print_ptr(ndr, "info", r->out.info);
10105                 ndr->depth++;
10106                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10107                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10108                 ndr->depth--;
10109                 ndr_print_WERROR(ndr, "result", r->out.result);
10110                 ndr->depth--;
10111         }
10112         ndr->depth--;
10113 }
10114
10115 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10116 {
10117         if (flags & NDR_IN) {
10118                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10119                 if (r->in.logon_server) {
10120                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10121                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10122                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10123                         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));
10124                 }
10125                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10126                 if (r->in.domainname) {
10127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10128                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10129                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10130                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10131                 }
10132         }
10133         if (flags & NDR_OUT) {
10134                 if (r->out.dcname == NULL) {
10135                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10136                 }
10137                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10138                 if (*r->out.dcname) {
10139                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10140                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10141                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10142                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10143                 }
10144                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10145         }
10146         return NDR_ERR_SUCCESS;
10147 }
10148
10149 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10150 {
10151         uint32_t _ptr_logon_server;
10152         uint32_t _ptr_domainname;
10153         uint32_t _ptr_dcname;
10154         TALLOC_CTX *_mem_save_logon_server_0;
10155         TALLOC_CTX *_mem_save_domainname_0;
10156         TALLOC_CTX *_mem_save_dcname_0;
10157         TALLOC_CTX *_mem_save_dcname_1;
10158         if (flags & NDR_IN) {
10159                 ZERO_STRUCT(r->out);
10160
10161                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10162                 if (_ptr_logon_server) {
10163                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10164                 } else {
10165                         r->in.logon_server = NULL;
10166                 }
10167                 if (r->in.logon_server) {
10168                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10169                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10170                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10171                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10172                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10173                                 return 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));
10174                         }
10175                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10176                         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));
10177                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10178                 }
10179                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10180                 if (_ptr_domainname) {
10181                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10182                 } else {
10183                         r->in.domainname = NULL;
10184                 }
10185                 if (r->in.domainname) {
10186                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10187                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10188                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10189                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10190                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10191                                 return 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));
10192                         }
10193                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10194                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10195                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10196                 }
10197                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10198                 ZERO_STRUCTP(r->out.dcname);
10199         }
10200         if (flags & NDR_OUT) {
10201                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10202                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10203                 }
10204                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10205                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10206                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10207                 if (_ptr_dcname) {
10208                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10209                 } else {
10210                         *r->out.dcname = NULL;
10211                 }
10212                 if (*r->out.dcname) {
10213                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10214                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10215                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10216                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10217                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10218                                 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));
10219                         }
10220                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10221                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10222                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10223                 }
10224                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10225                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10226         }
10227         return NDR_ERR_SUCCESS;
10228 }
10229
10230 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10231 {
10232         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10233         ndr->depth++;
10234         if (flags & NDR_SET_VALUES) {
10235                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10236         }
10237         if (flags & NDR_IN) {
10238                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10239                 ndr->depth++;
10240                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10241                 ndr->depth++;
10242                 if (r->in.logon_server) {
10243                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10244                 }
10245                 ndr->depth--;
10246                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10247                 ndr->depth++;
10248                 if (r->in.domainname) {
10249                         ndr_print_string(ndr, "domainname", r->in.domainname);
10250                 }
10251                 ndr->depth--;
10252                 ndr->depth--;
10253         }
10254         if (flags & NDR_OUT) {
10255                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10256                 ndr->depth++;
10257                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10258                 ndr->depth++;
10259                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10260                 ndr->depth++;
10261                 if (*r->out.dcname) {
10262                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10263                 }
10264                 ndr->depth--;
10265                 ndr->depth--;
10266                 ndr_print_WERROR(ndr, "result", r->out.result);
10267                 ndr->depth--;
10268         }
10269         ndr->depth--;
10270 }
10271
10272 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10273 {
10274         if (flags & NDR_IN) {
10275                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10276                 if (r->in.logon_server) {
10277                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10278                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10279                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10280                         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));
10281                 }
10282                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10283                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10284                 if (r->in.data == NULL) {
10285                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10286                 }
10287                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10288                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10289         }
10290         if (flags & NDR_OUT) {
10291                 if (r->out.query == NULL) {
10292                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10293                 }
10294                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10295                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10296                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10297         }
10298         return NDR_ERR_SUCCESS;
10299 }
10300
10301 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10302 {
10303         uint32_t _ptr_logon_server;
10304         TALLOC_CTX *_mem_save_logon_server_0;
10305         TALLOC_CTX *_mem_save_data_0;
10306         TALLOC_CTX *_mem_save_query_0;
10307         if (flags & NDR_IN) {
10308                 ZERO_STRUCT(r->out);
10309
10310                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10311                 if (_ptr_logon_server) {
10312                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10313                 } else {
10314                         r->in.logon_server = NULL;
10315                 }
10316                 if (r->in.logon_server) {
10317                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10318                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10319                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10320                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10321                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10322                                 return 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));
10323                         }
10324                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10325                         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));
10326                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10327                 }
10328                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10329                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10330                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10331                         NDR_PULL_ALLOC(ndr, r->in.data);
10332                 }
10333                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10334                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10335                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10336                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10337                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10338                 NDR_PULL_ALLOC(ndr, r->out.query);
10339                 ZERO_STRUCTP(r->out.query);
10340         }
10341         if (flags & NDR_OUT) {
10342                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10343                         NDR_PULL_ALLOC(ndr, r->out.query);
10344                 }
10345                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10346                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10347                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10348                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10349                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10350                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10351         }
10352         return NDR_ERR_SUCCESS;
10353 }
10354
10355 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10356 {
10357         ndr_print_struct(ndr, name, "netr_LogonControl2");
10358         ndr->depth++;
10359         if (flags & NDR_SET_VALUES) {
10360                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10361         }
10362         if (flags & NDR_IN) {
10363                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10364                 ndr->depth++;
10365                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10366                 ndr->depth++;
10367                 if (r->in.logon_server) {
10368                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10369                 }
10370                 ndr->depth--;
10371                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10372                 ndr_print_uint32(ndr, "level", r->in.level);
10373                 ndr_print_ptr(ndr, "data", r->in.data);
10374                 ndr->depth++;
10375                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10376                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10377                 ndr->depth--;
10378                 ndr->depth--;
10379         }
10380         if (flags & NDR_OUT) {
10381                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10382                 ndr->depth++;
10383                 ndr_print_ptr(ndr, "query", r->out.query);
10384                 ndr->depth++;
10385                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10386                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10387                 ndr->depth--;
10388                 ndr_print_WERROR(ndr, "result", r->out.result);
10389                 ndr->depth--;
10390         }
10391         ndr->depth--;
10392 }
10393
10394 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10395 {
10396         if (flags & NDR_IN) {
10397                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10398                 if (r->in.server_name) {
10399                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10400                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10401                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10402                         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));
10403                 }
10404                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10405                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10406                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10407                 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));
10408                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10409                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10410                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10412                 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));
10413                 if (r->in.credentials == NULL) {
10414                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10415                 }
10416                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10417                 if (r->in.negotiate_flags == NULL) {
10418                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10419                 }
10420                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10421         }
10422         if (flags & NDR_OUT) {
10423                 if (r->out.return_credentials == NULL) {
10424                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10425                 }
10426                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10427                 if (r->out.negotiate_flags == NULL) {
10428                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10429                 }
10430                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10431                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10432         }
10433         return NDR_ERR_SUCCESS;
10434 }
10435
10436 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10437 {
10438         uint32_t _ptr_server_name;
10439         TALLOC_CTX *_mem_save_server_name_0;
10440         TALLOC_CTX *_mem_save_credentials_0;
10441         TALLOC_CTX *_mem_save_return_credentials_0;
10442         TALLOC_CTX *_mem_save_negotiate_flags_0;
10443         if (flags & NDR_IN) {
10444                 ZERO_STRUCT(r->out);
10445
10446                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10447                 if (_ptr_server_name) {
10448                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10449                 } else {
10450                         r->in.server_name = NULL;
10451                 }
10452                 if (r->in.server_name) {
10453                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10454                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10455                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10456                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10457                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10458                                 return 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));
10459                         }
10460                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10461                         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));
10462                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10463                 }
10464                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10465                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10466                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10467                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
10468                 }
10469                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10470                 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));
10471                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10472                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10473                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10474                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10475                         return 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));
10476                 }
10477                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10478                 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));
10479                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10480                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10481                 }
10482                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10483                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10484                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10485                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10486                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10487                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10488                 }
10489                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10490                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10491                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
10492                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10493                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10494                 ZERO_STRUCTP(r->out.return_credentials);
10495                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10496                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10497         }
10498         if (flags & NDR_OUT) {
10499                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10500                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10501                 }
10502                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10503                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10504                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10505                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10506                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10507                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10508                 }
10509                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10510                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10511                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
10512                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10513                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10514         }
10515         return NDR_ERR_SUCCESS;
10516 }
10517
10518 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10519 {
10520         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10521         ndr->depth++;
10522         if (flags & NDR_SET_VALUES) {
10523                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10524         }
10525         if (flags & NDR_IN) {
10526                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10527                 ndr->depth++;
10528                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10529                 ndr->depth++;
10530                 if (r->in.server_name) {
10531                         ndr_print_string(ndr, "server_name", r->in.server_name);
10532                 }
10533                 ndr->depth--;
10534                 ndr_print_string(ndr, "account_name", r->in.account_name);
10535                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10536                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10537                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10538                 ndr->depth++;
10539                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10540                 ndr->depth--;
10541                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10542                 ndr->depth++;
10543                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
10544                 ndr->depth--;
10545                 ndr->depth--;
10546         }
10547         if (flags & NDR_OUT) {
10548                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10549                 ndr->depth++;
10550                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10551                 ndr->depth++;
10552                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10553                 ndr->depth--;
10554                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10555                 ndr->depth++;
10556                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
10557                 ndr->depth--;
10558                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10559                 ndr->depth--;
10560         }
10561         ndr->depth--;
10562 }
10563
10564 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10565 {
10566         if (flags & NDR_IN) {
10567                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10568                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10569                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10570                 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));
10571                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10572                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10573                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10574                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10575                 if (r->in.credential == NULL) {
10576                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10577                 }
10578                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10579                 if (r->in.return_authenticator == NULL) {
10580                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10581                 }
10582                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10583                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10584                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10585                 if (r->in.sync_context == NULL) {
10586                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10587                 }
10588                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10589                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10590         }
10591         if (flags & NDR_OUT) {
10592                 if (r->out.return_authenticator == NULL) {
10593                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10594                 }
10595                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10596                 if (r->out.sync_context == NULL) {
10597                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10598                 }
10599                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10600                 if (r->out.delta_enum_array == NULL) {
10601                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10602                 }
10603                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10604                 if (*r->out.delta_enum_array) {
10605                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10606                 }
10607                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10608         }
10609         return NDR_ERR_SUCCESS;
10610 }
10611
10612 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10613 {
10614         uint32_t _ptr_delta_enum_array;
10615         TALLOC_CTX *_mem_save_credential_0;
10616         TALLOC_CTX *_mem_save_return_authenticator_0;
10617         TALLOC_CTX *_mem_save_sync_context_0;
10618         TALLOC_CTX *_mem_save_delta_enum_array_0;
10619         TALLOC_CTX *_mem_save_delta_enum_array_1;
10620         if (flags & NDR_IN) {
10621                 ZERO_STRUCT(r->out);
10622
10623                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10624                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10625                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10626                         return 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));
10627                 }
10628                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10629                 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));
10630                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10631                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10632                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10633                         return 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));
10634                 }
10635                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10636                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10637                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10638                         NDR_PULL_ALLOC(ndr, r->in.credential);
10639                 }
10640                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10641                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10642                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10643                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10644                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10645                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10646                 }
10647                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10648                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10649                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10650                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10651                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10652                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10653                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10654                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10655                 }
10656                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10657                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10658                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10659                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10660                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10661                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10662                 *r->out.return_authenticator = *r->in.return_authenticator;
10663                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10664                 *r->out.sync_context = *r->in.sync_context;
10665                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10666                 ZERO_STRUCTP(r->out.delta_enum_array);
10667         }
10668         if (flags & NDR_OUT) {
10669                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10670                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10671                 }
10672                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10673                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10674                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10675                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10676                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10677                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10678                 }
10679                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10680                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10681                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10682                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10683                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10684                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10685                 }
10686                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10687                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10688                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10689                 if (_ptr_delta_enum_array) {
10690                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10691                 } else {
10692                         *r->out.delta_enum_array = NULL;
10693                 }
10694                 if (*r->out.delta_enum_array) {
10695                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10696                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10697                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10698                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10699                 }
10700                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10701                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10702         }
10703         return NDR_ERR_SUCCESS;
10704 }
10705
10706 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10707 {
10708         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10709         ndr->depth++;
10710         if (flags & NDR_SET_VALUES) {
10711                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10712         }
10713         if (flags & NDR_IN) {
10714                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10715                 ndr->depth++;
10716                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10717                 ndr_print_string(ndr, "computername", r->in.computername);
10718                 ndr_print_ptr(ndr, "credential", r->in.credential);
10719                 ndr->depth++;
10720                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10721                 ndr->depth--;
10722                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10723                 ndr->depth++;
10724                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10725                 ndr->depth--;
10726                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10727                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10728                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10729                 ndr->depth++;
10730                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10731                 ndr->depth--;
10732                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10733                 ndr->depth--;
10734         }
10735         if (flags & NDR_OUT) {
10736                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10737                 ndr->depth++;
10738                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10739                 ndr->depth++;
10740                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10741                 ndr->depth--;
10742                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10743                 ndr->depth++;
10744                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10745                 ndr->depth--;
10746                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10747                 ndr->depth++;
10748                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10749                 ndr->depth++;
10750                 if (*r->out.delta_enum_array) {
10751                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10752                 }
10753                 ndr->depth--;
10754                 ndr->depth--;
10755                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10756                 ndr->depth--;
10757         }
10758         ndr->depth--;
10759 }
10760
10761 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10762 {
10763         if (flags & NDR_IN) {
10764                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10765                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10766                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10767                 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));
10768                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10769                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10770                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10771                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10772                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10773                 if (r->in.return_authenticator == NULL) {
10774                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10775                 }
10776                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10777                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10778                 if (r->in.change_log_entry) {
10779                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10780                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10781                 }
10782                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10783         }
10784         if (flags & NDR_OUT) {
10785                 if (r->out.return_authenticator == NULL) {
10786                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10787                 }
10788                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10789                 if (r->out.delta_enum_array == NULL) {
10790                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10791                 }
10792                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10793                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10794         }
10795         return NDR_ERR_SUCCESS;
10796 }
10797
10798 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10799 {
10800         uint32_t _ptr_change_log_entry;
10801         TALLOC_CTX *_mem_save_return_authenticator_0;
10802         TALLOC_CTX *_mem_save_change_log_entry_0;
10803         TALLOC_CTX *_mem_save_delta_enum_array_0;
10804         if (flags & NDR_IN) {
10805                 ZERO_STRUCT(r->out);
10806
10807                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10808                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10809                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10810                         return 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));
10811                 }
10812                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10813                 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));
10814                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10815                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10816                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10817                         return 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));
10818                 }
10819                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10820                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10821                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10822                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10823                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10824                 }
10825                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10826                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10827                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10828                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10829                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10830                 if (_ptr_change_log_entry) {
10831                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10832                 } else {
10833                         r->in.change_log_entry = NULL;
10834                 }
10835                 if (r->in.change_log_entry) {
10836                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10837                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10838                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10839                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10840                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10841                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10842                 }
10843                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10844                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10845                 *r->out.return_authenticator = *r->in.return_authenticator;
10846                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10847                 ZERO_STRUCTP(r->out.delta_enum_array);
10848                 if (r->in.change_log_entry) {
10849                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10850                 }
10851         }
10852         if (flags & NDR_OUT) {
10853                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10854                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10855                 }
10856                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10857                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10858                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10859                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10860                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10861                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10862                 }
10863                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10864                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10865                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10866                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10867                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10868         }
10869         return NDR_ERR_SUCCESS;
10870 }
10871
10872 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10873 {
10874         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10875         ndr->depth++;
10876         if (flags & NDR_SET_VALUES) {
10877                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10878         }
10879         if (flags & NDR_IN) {
10880                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10881                 ndr->depth++;
10882                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10883                 ndr_print_string(ndr, "computername", r->in.computername);
10884                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10885                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10886                 ndr->depth++;
10887                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10888                 ndr->depth--;
10889                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10890                 ndr->depth++;
10891                 if (r->in.change_log_entry) {
10892                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10893                 }
10894                 ndr->depth--;
10895                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10896                 ndr->depth--;
10897         }
10898         if (flags & NDR_OUT) {
10899                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10900                 ndr->depth++;
10901                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10902                 ndr->depth++;
10903                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10904                 ndr->depth--;
10905                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10906                 ndr->depth++;
10907                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10908                 ndr->depth--;
10909                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10910                 ndr->depth--;
10911         }
10912         ndr->depth--;
10913 }
10914
10915 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10916 {
10917         if (flags & NDR_IN) {
10918                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10919                 if (r->in.logon_server) {
10920                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10921                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10922                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10923                         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));
10924                 }
10925                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10926                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10927                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10928                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10929         }
10930         if (flags & NDR_OUT) {
10931                 if (r->out.query == NULL) {
10932                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10933                 }
10934                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10935                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10936                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10937         }
10938         return NDR_ERR_SUCCESS;
10939 }
10940
10941 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10942 {
10943         uint32_t _ptr_logon_server;
10944         TALLOC_CTX *_mem_save_logon_server_0;
10945         TALLOC_CTX *_mem_save_query_0;
10946         if (flags & NDR_IN) {
10947                 ZERO_STRUCT(r->out);
10948
10949                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10950                 if (_ptr_logon_server) {
10951                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10952                 } else {
10953                         r->in.logon_server = NULL;
10954                 }
10955                 if (r->in.logon_server) {
10956                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10957                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10958                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10959                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10960                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10961                                 return 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));
10962                         }
10963                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10964                         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));
10965                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10966                 }
10967                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10968                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10969                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10970                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10971                 NDR_PULL_ALLOC(ndr, r->out.query);
10972                 ZERO_STRUCTP(r->out.query);
10973         }
10974         if (flags & NDR_OUT) {
10975                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10976                         NDR_PULL_ALLOC(ndr, r->out.query);
10977                 }
10978                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10979                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10980                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10981                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10982                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10983                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10984         }
10985         return NDR_ERR_SUCCESS;
10986 }
10987
10988 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10989 {
10990         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10991         ndr->depth++;
10992         if (flags & NDR_SET_VALUES) {
10993                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10994         }
10995         if (flags & NDR_IN) {
10996                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10997                 ndr->depth++;
10998                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10999                 ndr->depth++;
11000                 if (r->in.logon_server) {
11001                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11002                 }
11003                 ndr->depth--;
11004                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
11005                 ndr_print_uint32(ndr, "level", r->in.level);
11006                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
11007                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
11008                 ndr->depth--;
11009         }
11010         if (flags & NDR_OUT) {
11011                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
11012                 ndr->depth++;
11013                 ndr_print_ptr(ndr, "query", r->out.query);
11014                 ndr->depth++;
11015                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11016                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11017                 ndr->depth--;
11018                 ndr_print_WERROR(ndr, "result", r->out.result);
11019                 ndr->depth--;
11020         }
11021         ndr->depth--;
11022 }
11023
11024 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11025 {
11026         if (flags & NDR_IN) {
11027                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11028                 if (r->in.server_name) {
11029                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11030                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11031                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11032                         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));
11033                 }
11034         }
11035         if (flags & NDR_OUT) {
11036                 if (r->out.trusted_domains_blob == NULL) {
11037                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11038                 }
11039                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11040                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11041         }
11042         return NDR_ERR_SUCCESS;
11043 }
11044
11045 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11046 {
11047         uint32_t _ptr_server_name;
11048         TALLOC_CTX *_mem_save_server_name_0;
11049         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11050         if (flags & NDR_IN) {
11051                 ZERO_STRUCT(r->out);
11052
11053                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11054                 if (_ptr_server_name) {
11055                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11056                 } else {
11057                         r->in.server_name = NULL;
11058                 }
11059                 if (r->in.server_name) {
11060                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11061                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11062                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11063                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11064                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11065                                 return 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));
11066                         }
11067                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11068                         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));
11069                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11070                 }
11071                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11072                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11073         }
11074         if (flags & NDR_OUT) {
11075                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11076                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11077                 }
11078                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11079                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11080                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11081                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11082                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11083         }
11084         return NDR_ERR_SUCCESS;
11085 }
11086
11087 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11088 {
11089         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11090         ndr->depth++;
11091         if (flags & NDR_SET_VALUES) {
11092                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11093         }
11094         if (flags & NDR_IN) {
11095                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11096                 ndr->depth++;
11097                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11098                 ndr->depth++;
11099                 if (r->in.server_name) {
11100                         ndr_print_string(ndr, "server_name", r->in.server_name);
11101                 }
11102                 ndr->depth--;
11103                 ndr->depth--;
11104         }
11105         if (flags & NDR_OUT) {
11106                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11107                 ndr->depth++;
11108                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11109                 ndr->depth++;
11110                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11111                 ndr->depth--;
11112                 ndr_print_WERROR(ndr, "result", r->out.result);
11113                 ndr->depth--;
11114         }
11115         ndr->depth--;
11116 }
11117
11118 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11119 {
11120         if (flags & NDR_IN) {
11121                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11122                 if (r->in.server_unc) {
11123                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11126                         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));
11127                 }
11128                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11129                 if (r->in.domain_name) {
11130                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11131                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11133                         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));
11134                 }
11135                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11136                 if (r->in.domain_guid) {
11137                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11138                 }
11139                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11140                 if (r->in.site_guid) {
11141                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11142                 }
11143                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11144         }
11145         if (flags & NDR_OUT) {
11146                 if (r->out.info == NULL) {
11147                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11148                 }
11149                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11150                 if (*r->out.info) {
11151                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11152                 }
11153                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11154         }
11155         return NDR_ERR_SUCCESS;
11156 }
11157
11158 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11159 {
11160         uint32_t _ptr_server_unc;
11161         uint32_t _ptr_domain_name;
11162         uint32_t _ptr_domain_guid;
11163         uint32_t _ptr_site_guid;
11164         uint32_t _ptr_info;
11165         TALLOC_CTX *_mem_save_server_unc_0;
11166         TALLOC_CTX *_mem_save_domain_name_0;
11167         TALLOC_CTX *_mem_save_domain_guid_0;
11168         TALLOC_CTX *_mem_save_site_guid_0;
11169         TALLOC_CTX *_mem_save_info_0;
11170         TALLOC_CTX *_mem_save_info_1;
11171         if (flags & NDR_IN) {
11172                 ZERO_STRUCT(r->out);
11173
11174                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11175                 if (_ptr_server_unc) {
11176                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11177                 } else {
11178                         r->in.server_unc = NULL;
11179                 }
11180                 if (r->in.server_unc) {
11181                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11182                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11183                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11184                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11185                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11186                                 return 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));
11187                         }
11188                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11189                         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));
11190                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11191                 }
11192                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11193                 if (_ptr_domain_name) {
11194                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11195                 } else {
11196                         r->in.domain_name = NULL;
11197                 }
11198                 if (r->in.domain_name) {
11199                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11200                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11201                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11202                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11203                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11204                                 return 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));
11205                         }
11206                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11207                         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));
11208                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11209                 }
11210                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11211                 if (_ptr_domain_guid) {
11212                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11213                 } else {
11214                         r->in.domain_guid = NULL;
11215                 }
11216                 if (r->in.domain_guid) {
11217                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11218                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11219                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11220                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11221                 }
11222                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11223                 if (_ptr_site_guid) {
11224                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11225                 } else {
11226                         r->in.site_guid = NULL;
11227                 }
11228                 if (r->in.site_guid) {
11229                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11230                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11231                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11232                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11233                 }
11234                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11235                 NDR_PULL_ALLOC(ndr, r->out.info);
11236                 ZERO_STRUCTP(r->out.info);
11237         }
11238         if (flags & NDR_OUT) {
11239                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11240                         NDR_PULL_ALLOC(ndr, r->out.info);
11241                 }
11242                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11243                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11244                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11245                 if (_ptr_info) {
11246                         NDR_PULL_ALLOC(ndr, *r->out.info);
11247                 } else {
11248                         *r->out.info = NULL;
11249                 }
11250                 if (*r->out.info) {
11251                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11252                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11253                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11254                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11255                 }
11256                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11257                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11258         }
11259         return NDR_ERR_SUCCESS;
11260 }
11261
11262 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11263 {
11264         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11265         ndr->depth++;
11266         if (flags & NDR_SET_VALUES) {
11267                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11268         }
11269         if (flags & NDR_IN) {
11270                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11271                 ndr->depth++;
11272                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11273                 ndr->depth++;
11274                 if (r->in.server_unc) {
11275                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11276                 }
11277                 ndr->depth--;
11278                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11279                 ndr->depth++;
11280                 if (r->in.domain_name) {
11281                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11282                 }
11283                 ndr->depth--;
11284                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11285                 ndr->depth++;
11286                 if (r->in.domain_guid) {
11287                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11288                 }
11289                 ndr->depth--;
11290                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11291                 ndr->depth++;
11292                 if (r->in.site_guid) {
11293                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11294                 }
11295                 ndr->depth--;
11296                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11297                 ndr->depth--;
11298         }
11299         if (flags & NDR_OUT) {
11300                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11301                 ndr->depth++;
11302                 ndr_print_ptr(ndr, "info", r->out.info);
11303                 ndr->depth++;
11304                 ndr_print_ptr(ndr, "info", *r->out.info);
11305                 ndr->depth++;
11306                 if (*r->out.info) {
11307                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11308                 }
11309                 ndr->depth--;
11310                 ndr->depth--;
11311                 ndr_print_WERROR(ndr, "result", r->out.result);
11312                 ndr->depth--;
11313         }
11314         ndr->depth--;
11315 }
11316
11317 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11318 {
11319         if (flags & NDR_IN) {
11320         }
11321         if (flags & NDR_OUT) {
11322                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11323         }
11324         return NDR_ERR_SUCCESS;
11325 }
11326
11327 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11328 {
11329         if (flags & NDR_IN) {
11330         }
11331         if (flags & NDR_OUT) {
11332                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11333         }
11334         return NDR_ERR_SUCCESS;
11335 }
11336
11337 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11338 {
11339         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11340         ndr->depth++;
11341         if (flags & NDR_SET_VALUES) {
11342                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11343         }
11344         if (flags & NDR_IN) {
11345                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11346                 ndr->depth++;
11347                 ndr->depth--;
11348         }
11349         if (flags & NDR_OUT) {
11350                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11351                 ndr->depth++;
11352                 ndr_print_WERROR(ndr, "result", r->out.result);
11353                 ndr->depth--;
11354         }
11355         ndr->depth--;
11356 }
11357
11358 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11359 {
11360         if (flags & NDR_IN) {
11361         }
11362         if (flags & NDR_OUT) {
11363                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11364         }
11365         return NDR_ERR_SUCCESS;
11366 }
11367
11368 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11369 {
11370         if (flags & NDR_IN) {
11371         }
11372         if (flags & NDR_OUT) {
11373                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11374         }
11375         return NDR_ERR_SUCCESS;
11376 }
11377
11378 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11379 {
11380         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11381         ndr->depth++;
11382         if (flags & NDR_SET_VALUES) {
11383                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11384         }
11385         if (flags & NDR_IN) {
11386                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11387                 ndr->depth++;
11388                 ndr->depth--;
11389         }
11390         if (flags & NDR_OUT) {
11391                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11392                 ndr->depth++;
11393                 ndr_print_WERROR(ndr, "result", r->out.result);
11394                 ndr->depth--;
11395         }
11396         ndr->depth--;
11397 }
11398
11399 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11400 {
11401         if (flags & NDR_IN) {
11402                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11403                 if (r->in.server_name) {
11404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11405                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11406                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11407                         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));
11408                 }
11409                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11410                 if (r->in.domain_name) {
11411                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11412                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11413                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11414                         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));
11415                 }
11416         }
11417         if (flags & NDR_OUT) {
11418                 if (r->out.rid == NULL) {
11419                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11420                 }
11421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11422                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11423         }
11424         return NDR_ERR_SUCCESS;
11425 }
11426
11427 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11428 {
11429         uint32_t _ptr_server_name;
11430         uint32_t _ptr_domain_name;
11431         TALLOC_CTX *_mem_save_server_name_0;
11432         TALLOC_CTX *_mem_save_domain_name_0;
11433         TALLOC_CTX *_mem_save_rid_0;
11434         if (flags & NDR_IN) {
11435                 ZERO_STRUCT(r->out);
11436
11437                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11438                 if (_ptr_server_name) {
11439                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11440                 } else {
11441                         r->in.server_name = NULL;
11442                 }
11443                 if (r->in.server_name) {
11444                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11445                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11446                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11447                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11448                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11449                                 return 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));
11450                         }
11451                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11452                         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));
11453                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11454                 }
11455                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11456                 if (_ptr_domain_name) {
11457                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11458                 } else {
11459                         r->in.domain_name = NULL;
11460                 }
11461                 if (r->in.domain_name) {
11462                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11463                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11464                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11465                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11466                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11467                                 return 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));
11468                         }
11469                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11470                         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));
11471                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11472                 }
11473                 NDR_PULL_ALLOC(ndr, r->out.rid);
11474                 ZERO_STRUCTP(r->out.rid);
11475         }
11476         if (flags & NDR_OUT) {
11477                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11478                         NDR_PULL_ALLOC(ndr, r->out.rid);
11479                 }
11480                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11481                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11482                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11483                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11484                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11485         }
11486         return NDR_ERR_SUCCESS;
11487 }
11488
11489 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11490 {
11491         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11492         ndr->depth++;
11493         if (flags & NDR_SET_VALUES) {
11494                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11495         }
11496         if (flags & NDR_IN) {
11497                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11498                 ndr->depth++;
11499                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11500                 ndr->depth++;
11501                 if (r->in.server_name) {
11502                         ndr_print_string(ndr, "server_name", r->in.server_name);
11503                 }
11504                 ndr->depth--;
11505                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11506                 ndr->depth++;
11507                 if (r->in.domain_name) {
11508                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11509                 }
11510                 ndr->depth--;
11511                 ndr->depth--;
11512         }
11513         if (flags & NDR_OUT) {
11514                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11515                 ndr->depth++;
11516                 ndr_print_ptr(ndr, "rid", r->out.rid);
11517                 ndr->depth++;
11518                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11519                 ndr->depth--;
11520                 ndr_print_WERROR(ndr, "result", r->out.result);
11521                 ndr->depth--;
11522         }
11523         ndr->depth--;
11524 }
11525
11526 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11527 {
11528         if (flags & NDR_IN) {
11529         }
11530         if (flags & NDR_OUT) {
11531                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11532         }
11533         return NDR_ERR_SUCCESS;
11534 }
11535
11536 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11537 {
11538         if (flags & NDR_IN) {
11539         }
11540         if (flags & NDR_OUT) {
11541                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11542         }
11543         return NDR_ERR_SUCCESS;
11544 }
11545
11546 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11547 {
11548         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11549         ndr->depth++;
11550         if (flags & NDR_SET_VALUES) {
11551                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11552         }
11553         if (flags & NDR_IN) {
11554                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11555                 ndr->depth++;
11556                 ndr->depth--;
11557         }
11558         if (flags & NDR_OUT) {
11559                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11560                 ndr->depth++;
11561                 ndr_print_WERROR(ndr, "result", r->out.result);
11562                 ndr->depth--;
11563         }
11564         ndr->depth--;
11565 }
11566
11567 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11568 {
11569         if (flags & NDR_IN) {
11570         }
11571         if (flags & NDR_OUT) {
11572                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11573         }
11574         return NDR_ERR_SUCCESS;
11575 }
11576
11577 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11578 {
11579         if (flags & NDR_IN) {
11580         }
11581         if (flags & NDR_OUT) {
11582                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11583         }
11584         return NDR_ERR_SUCCESS;
11585 }
11586
11587 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11588 {
11589         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11590         ndr->depth++;
11591         if (flags & NDR_SET_VALUES) {
11592                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11593         }
11594         if (flags & NDR_IN) {
11595                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11596                 ndr->depth++;
11597                 ndr->depth--;
11598         }
11599         if (flags & NDR_OUT) {
11600                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11601                 ndr->depth++;
11602                 ndr_print_WERROR(ndr, "result", r->out.result);
11603                 ndr->depth--;
11604         }
11605         ndr->depth--;
11606 }
11607
11608 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11609 {
11610         if (flags & NDR_IN) {
11611                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11612                 if (r->in.server_name) {
11613                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11614                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11615                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11616                         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));
11617                 }
11618                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11619                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11620                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11621                 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));
11622                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11623                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11624                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11625                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11626                 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));
11627                 if (r->in.credentials == NULL) {
11628                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11629                 }
11630                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11631                 if (r->in.negotiate_flags == NULL) {
11632                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11633                 }
11634                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11635         }
11636         if (flags & NDR_OUT) {
11637                 if (r->out.credentials == NULL) {
11638                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11639                 }
11640                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11641                 if (r->out.negotiate_flags == NULL) {
11642                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11643                 }
11644                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11645                 if (r->out.rid == NULL) {
11646                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11647                 }
11648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11649                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11650         }
11651         return NDR_ERR_SUCCESS;
11652 }
11653
11654 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11655 {
11656         uint32_t _ptr_server_name;
11657         TALLOC_CTX *_mem_save_server_name_0;
11658         TALLOC_CTX *_mem_save_credentials_0;
11659         TALLOC_CTX *_mem_save_negotiate_flags_0;
11660         TALLOC_CTX *_mem_save_rid_0;
11661         if (flags & NDR_IN) {
11662                 ZERO_STRUCT(r->out);
11663
11664                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11665                 if (_ptr_server_name) {
11666                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11667                 } else {
11668                         r->in.server_name = NULL;
11669                 }
11670                 if (r->in.server_name) {
11671                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11672                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11673                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11674                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11675                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11676                                 return 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));
11677                         }
11678                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11679                         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));
11680                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11681                 }
11682                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11683                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11684                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11685                         return 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));
11686                 }
11687                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11688                 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));
11689                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11690                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11691                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11692                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11693                         return 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));
11694                 }
11695                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11696                 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));
11697                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11698                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11699                 }
11700                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11701                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11702                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11703                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11704                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11705                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11706                 }
11707                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11708                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11709                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11710                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11711                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11712                 *r->out.credentials = *r->in.credentials;
11713                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11714                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11715                 NDR_PULL_ALLOC(ndr, r->out.rid);
11716                 ZERO_STRUCTP(r->out.rid);
11717         }
11718         if (flags & NDR_OUT) {
11719                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11720                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11721                 }
11722                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11723                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11724                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11725                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11726                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11727                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11728                 }
11729                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11730                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11731                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11732                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11733                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11734                         NDR_PULL_ALLOC(ndr, r->out.rid);
11735                 }
11736                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11737                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11738                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11739                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11740                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11741         }
11742         return NDR_ERR_SUCCESS;
11743 }
11744
11745 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11746 {
11747         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11748         ndr->depth++;
11749         if (flags & NDR_SET_VALUES) {
11750                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11751         }
11752         if (flags & NDR_IN) {
11753                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11754                 ndr->depth++;
11755                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11756                 ndr->depth++;
11757                 if (r->in.server_name) {
11758                         ndr_print_string(ndr, "server_name", r->in.server_name);
11759                 }
11760                 ndr->depth--;
11761                 ndr_print_string(ndr, "account_name", r->in.account_name);
11762                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11763                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11764                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11765                 ndr->depth++;
11766                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11767                 ndr->depth--;
11768                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11769                 ndr->depth++;
11770                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11771                 ndr->depth--;
11772                 ndr->depth--;
11773         }
11774         if (flags & NDR_OUT) {
11775                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11776                 ndr->depth++;
11777                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11778                 ndr->depth++;
11779                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11780                 ndr->depth--;
11781                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11782                 ndr->depth++;
11783                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11784                 ndr->depth--;
11785                 ndr_print_ptr(ndr, "rid", r->out.rid);
11786                 ndr->depth++;
11787                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11788                 ndr->depth--;
11789                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11790                 ndr->depth--;
11791         }
11792         ndr->depth--;
11793 }
11794
11795 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11796 {
11797         if (flags & NDR_IN) {
11798                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11799                 if (r->in.server_unc) {
11800                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11802                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11803                         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));
11804                 }
11805                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11806                 if (r->in.domain_name) {
11807                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11808                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11809                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11810                         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));
11811                 }
11812                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11813                 if (r->in.domain_guid) {
11814                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11815                 }
11816                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11817                 if (r->in.site_name) {
11818                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11819                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11820                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11821                         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));
11822                 }
11823                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11824         }
11825         if (flags & NDR_OUT) {
11826                 if (r->out.info == NULL) {
11827                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11828                 }
11829                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11830                 if (*r->out.info) {
11831                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11832                 }
11833                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11834         }
11835         return NDR_ERR_SUCCESS;
11836 }
11837
11838 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11839 {
11840         uint32_t _ptr_server_unc;
11841         uint32_t _ptr_domain_name;
11842         uint32_t _ptr_domain_guid;
11843         uint32_t _ptr_site_name;
11844         uint32_t _ptr_info;
11845         TALLOC_CTX *_mem_save_server_unc_0;
11846         TALLOC_CTX *_mem_save_domain_name_0;
11847         TALLOC_CTX *_mem_save_domain_guid_0;
11848         TALLOC_CTX *_mem_save_site_name_0;
11849         TALLOC_CTX *_mem_save_info_0;
11850         TALLOC_CTX *_mem_save_info_1;
11851         if (flags & NDR_IN) {
11852                 ZERO_STRUCT(r->out);
11853
11854                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11855                 if (_ptr_server_unc) {
11856                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11857                 } else {
11858                         r->in.server_unc = NULL;
11859                 }
11860                 if (r->in.server_unc) {
11861                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11862                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11863                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11864                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11865                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11866                                 return 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));
11867                         }
11868                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11869                         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));
11870                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11871                 }
11872                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11873                 if (_ptr_domain_name) {
11874                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11875                 } else {
11876                         r->in.domain_name = NULL;
11877                 }
11878                 if (r->in.domain_name) {
11879                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11880                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11881                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11882                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11883                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11884                                 return 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));
11885                         }
11886                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11887                         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));
11888                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11889                 }
11890                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11891                 if (_ptr_domain_guid) {
11892                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11893                 } else {
11894                         r->in.domain_guid = NULL;
11895                 }
11896                 if (r->in.domain_guid) {
11897                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11898                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11899                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11900                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11901                 }
11902                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11903                 if (_ptr_site_name) {
11904                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11905                 } else {
11906                         r->in.site_name = NULL;
11907                 }
11908                 if (r->in.site_name) {
11909                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11910                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11911                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11912                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11913                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11914                                 return 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));
11915                         }
11916                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11917                         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));
11918                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11919                 }
11920                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11921                 NDR_PULL_ALLOC(ndr, r->out.info);
11922                 ZERO_STRUCTP(r->out.info);
11923         }
11924         if (flags & NDR_OUT) {
11925                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11926                         NDR_PULL_ALLOC(ndr, r->out.info);
11927                 }
11928                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11929                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11930                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11931                 if (_ptr_info) {
11932                         NDR_PULL_ALLOC(ndr, *r->out.info);
11933                 } else {
11934                         *r->out.info = NULL;
11935                 }
11936                 if (*r->out.info) {
11937                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11938                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11939                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11940                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11941                 }
11942                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11943                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11944         }
11945         return NDR_ERR_SUCCESS;
11946 }
11947
11948 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11949 {
11950         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11951         ndr->depth++;
11952         if (flags & NDR_SET_VALUES) {
11953                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11954         }
11955         if (flags & NDR_IN) {
11956                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11957                 ndr->depth++;
11958                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11959                 ndr->depth++;
11960                 if (r->in.server_unc) {
11961                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11962                 }
11963                 ndr->depth--;
11964                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11965                 ndr->depth++;
11966                 if (r->in.domain_name) {
11967                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11968                 }
11969                 ndr->depth--;
11970                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11971                 ndr->depth++;
11972                 if (r->in.domain_guid) {
11973                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11974                 }
11975                 ndr->depth--;
11976                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11977                 ndr->depth++;
11978                 if (r->in.site_name) {
11979                         ndr_print_string(ndr, "site_name", r->in.site_name);
11980                 }
11981                 ndr->depth--;
11982                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11983                 ndr->depth--;
11984         }
11985         if (flags & NDR_OUT) {
11986                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11987                 ndr->depth++;
11988                 ndr_print_ptr(ndr, "info", r->out.info);
11989                 ndr->depth++;
11990                 ndr_print_ptr(ndr, "info", *r->out.info);
11991                 ndr->depth++;
11992                 if (*r->out.info) {
11993                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11994                 }
11995                 ndr->depth--;
11996                 ndr->depth--;
11997                 ndr_print_WERROR(ndr, "result", r->out.result);
11998                 ndr->depth--;
11999         }
12000         ndr->depth--;
12001 }
12002
12003 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
12004 {
12005         if (flags & NDR_IN) {
12006                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12007                 if (r->in.computer_name) {
12008                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12009                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12010                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12011                         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));
12012                 }
12013         }
12014         if (flags & NDR_OUT) {
12015                 if (r->out.site == NULL) {
12016                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12017                 }
12018                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
12019                 if (*r->out.site) {
12020                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12021                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12022                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12023                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12024                 }
12025                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12026         }
12027         return NDR_ERR_SUCCESS;
12028 }
12029
12030 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
12031 {
12032         uint32_t _ptr_computer_name;
12033         uint32_t _ptr_site;
12034         TALLOC_CTX *_mem_save_computer_name_0;
12035         TALLOC_CTX *_mem_save_site_0;
12036         TALLOC_CTX *_mem_save_site_1;
12037         if (flags & NDR_IN) {
12038                 ZERO_STRUCT(r->out);
12039
12040                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12041                 if (_ptr_computer_name) {
12042                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12043                 } else {
12044                         r->in.computer_name = NULL;
12045                 }
12046                 if (r->in.computer_name) {
12047                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12048                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12049                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12050                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12051                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12052                                 return 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));
12053                         }
12054                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12055                         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));
12056                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12057                 }
12058                 NDR_PULL_ALLOC(ndr, r->out.site);
12059                 ZERO_STRUCTP(r->out.site);
12060         }
12061         if (flags & NDR_OUT) {
12062                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12063                         NDR_PULL_ALLOC(ndr, r->out.site);
12064                 }
12065                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12066                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12067                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12068                 if (_ptr_site) {
12069                         NDR_PULL_ALLOC(ndr, *r->out.site);
12070                 } else {
12071                         *r->out.site = NULL;
12072                 }
12073                 if (*r->out.site) {
12074                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12075                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12076                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12077                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12078                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12079                                 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));
12080                         }
12081                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12082                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12083                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12084                 }
12085                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12086                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12087         }
12088         return NDR_ERR_SUCCESS;
12089 }
12090
12091 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12092 {
12093         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12094         ndr->depth++;
12095         if (flags & NDR_SET_VALUES) {
12096                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12097         }
12098         if (flags & NDR_IN) {
12099                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12100                 ndr->depth++;
12101                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12102                 ndr->depth++;
12103                 if (r->in.computer_name) {
12104                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12105                 }
12106                 ndr->depth--;
12107                 ndr->depth--;
12108         }
12109         if (flags & NDR_OUT) {
12110                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12111                 ndr->depth++;
12112                 ndr_print_ptr(ndr, "site", r->out.site);
12113                 ndr->depth++;
12114                 ndr_print_ptr(ndr, "site", *r->out.site);
12115                 ndr->depth++;
12116                 if (*r->out.site) {
12117                         ndr_print_string(ndr, "site", *r->out.site);
12118                 }
12119                 ndr->depth--;
12120                 ndr->depth--;
12121                 ndr_print_WERROR(ndr, "result", r->out.result);
12122                 ndr->depth--;
12123         }
12124         ndr->depth--;
12125 }
12126
12127 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12128 {
12129         if (flags & NDR_IN) {
12130                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12131                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12132                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12133                 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));
12134                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12135                 if (r->in.computer_name) {
12136                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12137                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12138                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12139                         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));
12140                 }
12141                 if (r->in.credential == NULL) {
12142                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12143                 }
12144                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12145                 if (r->in.return_authenticator == NULL) {
12146                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12147                 }
12148                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12149                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12150                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12151                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12152         }
12153         if (flags & NDR_OUT) {
12154                 if (r->out.return_authenticator == NULL) {
12155                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12156                 }
12157                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12158                 if (r->out.info == NULL) {
12159                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12160                 }
12161                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12162                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12163                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12164         }
12165         return NDR_ERR_SUCCESS;
12166 }
12167
12168 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12169 {
12170         uint32_t _ptr_computer_name;
12171         TALLOC_CTX *_mem_save_computer_name_0;
12172         TALLOC_CTX *_mem_save_credential_0;
12173         TALLOC_CTX *_mem_save_return_authenticator_0;
12174         TALLOC_CTX *_mem_save_info_0;
12175         if (flags & NDR_IN) {
12176                 ZERO_STRUCT(r->out);
12177
12178                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12179                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12180                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12181                         return 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));
12182                 }
12183                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12184                 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));
12185                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12186                 if (_ptr_computer_name) {
12187                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12188                 } else {
12189                         r->in.computer_name = NULL;
12190                 }
12191                 if (r->in.computer_name) {
12192                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12193                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12194                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12195                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12196                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12197                                 return 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));
12198                         }
12199                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12200                         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));
12201                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12202                 }
12203                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12204                         NDR_PULL_ALLOC(ndr, r->in.credential);
12205                 }
12206                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12207                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12208                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12209                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12210                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12211                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12212                 }
12213                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12214                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12215                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12216                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12217                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12218                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12219                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12220                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12221                 *r->out.return_authenticator = *r->in.return_authenticator;
12222                 NDR_PULL_ALLOC(ndr, r->out.info);
12223                 ZERO_STRUCTP(r->out.info);
12224         }
12225         if (flags & NDR_OUT) {
12226                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12227                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12228                 }
12229                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12230                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12231                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12232                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12233                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12234                         NDR_PULL_ALLOC(ndr, r->out.info);
12235                 }
12236                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12237                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12238                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12239                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12240                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12241                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12242         }
12243         return NDR_ERR_SUCCESS;
12244 }
12245
12246 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12247 {
12248         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12249         ndr->depth++;
12250         if (flags & NDR_SET_VALUES) {
12251                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12252         }
12253         if (flags & NDR_IN) {
12254                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12255                 ndr->depth++;
12256                 ndr_print_string(ndr, "server_name", r->in.server_name);
12257                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12258                 ndr->depth++;
12259                 if (r->in.computer_name) {
12260                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12261                 }
12262                 ndr->depth--;
12263                 ndr_print_ptr(ndr, "credential", r->in.credential);
12264                 ndr->depth++;
12265                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12266                 ndr->depth--;
12267                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12268                 ndr->depth++;
12269                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12270                 ndr->depth--;
12271                 ndr_print_uint32(ndr, "level", r->in.level);
12272                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12273                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12274                 ndr->depth--;
12275         }
12276         if (flags & NDR_OUT) {
12277                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12278                 ndr->depth++;
12279                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12280                 ndr->depth++;
12281                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12282                 ndr->depth--;
12283                 ndr_print_ptr(ndr, "info", r->out.info);
12284                 ndr->depth++;
12285                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12286                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12287                 ndr->depth--;
12288                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12289                 ndr->depth--;
12290         }
12291         ndr->depth--;
12292 }
12293
12294 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12295 {
12296         if (flags & NDR_IN) {
12297                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12298                 if (r->in.server_name) {
12299                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12300                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12301                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12302                         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));
12303                 }
12304                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12305                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12307                 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));
12308                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12312                 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));
12313                 if (r->in.credential == NULL) {
12314                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12315                 }
12316                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12317                 if (r->in.new_password == NULL) {
12318                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12319                 }
12320                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12321         }
12322         if (flags & NDR_OUT) {
12323                 if (r->out.return_authenticator == NULL) {
12324                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12325                 }
12326                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12327                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12328         }
12329         return NDR_ERR_SUCCESS;
12330 }
12331
12332 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12333 {
12334         uint32_t _ptr_server_name;
12335         TALLOC_CTX *_mem_save_server_name_0;
12336         TALLOC_CTX *_mem_save_credential_0;
12337         TALLOC_CTX *_mem_save_return_authenticator_0;
12338         TALLOC_CTX *_mem_save_new_password_0;
12339         if (flags & NDR_IN) {
12340                 ZERO_STRUCT(r->out);
12341
12342                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12343                 if (_ptr_server_name) {
12344                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12345                 } else {
12346                         r->in.server_name = NULL;
12347                 }
12348                 if (r->in.server_name) {
12349                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12350                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12351                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12352                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12353                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12354                                 return 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));
12355                         }
12356                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12357                         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));
12358                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12359                 }
12360                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12361                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12362                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12363                         return 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));
12364                 }
12365                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12366                 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));
12367                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12368                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12369                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12370                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12371                         return 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));
12372                 }
12373                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12374                 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));
12375                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12376                         NDR_PULL_ALLOC(ndr, r->in.credential);
12377                 }
12378                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12379                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12380                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12381                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12382                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12383                         NDR_PULL_ALLOC(ndr, r->in.new_password);
12384                 }
12385                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12386                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
12387                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12388                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
12389                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12390                 ZERO_STRUCTP(r->out.return_authenticator);
12391         }
12392         if (flags & NDR_OUT) {
12393                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12394                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12395                 }
12396                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12397                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12398                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12399                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12400                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12401         }
12402         return NDR_ERR_SUCCESS;
12403 }
12404
12405 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12406 {
12407         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12408         ndr->depth++;
12409         if (flags & NDR_SET_VALUES) {
12410                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12411         }
12412         if (flags & NDR_IN) {
12413                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12414                 ndr->depth++;
12415                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12416                 ndr->depth++;
12417                 if (r->in.server_name) {
12418                         ndr_print_string(ndr, "server_name", r->in.server_name);
12419                 }
12420                 ndr->depth--;
12421                 ndr_print_string(ndr, "account_name", r->in.account_name);
12422                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12423                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12424                 ndr_print_ptr(ndr, "credential", r->in.credential);
12425                 ndr->depth++;
12426                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12427                 ndr->depth--;
12428                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
12429                 ndr->depth++;
12430                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
12431                 ndr->depth--;
12432                 ndr->depth--;
12433         }
12434         if (flags & NDR_OUT) {
12435                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12436                 ndr->depth++;
12437                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12438                 ndr->depth++;
12439                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12440                 ndr->depth--;
12441                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12442                 ndr->depth--;
12443         }
12444         ndr->depth--;
12445 }
12446
12447 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12448 {
12449         if (flags & NDR_IN) {
12450                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12451                 if (r->in.server_name) {
12452                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12453                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12455                         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));
12456                 }
12457                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12458                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12459                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12460                 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));
12461                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12462                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12463                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12464                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12465                 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));
12466                 if (r->in.credential == NULL) {
12467                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12468                 }
12469                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12470         }
12471         if (flags & NDR_OUT) {
12472                 if (r->out.return_authenticator == NULL) {
12473                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12474                 }
12475                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12476                 if (r->out.password == NULL) {
12477                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12478                 }
12479                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12480                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12481         }
12482         return NDR_ERR_SUCCESS;
12483 }
12484
12485 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12486 {
12487         uint32_t _ptr_server_name;
12488         TALLOC_CTX *_mem_save_server_name_0;
12489         TALLOC_CTX *_mem_save_credential_0;
12490         TALLOC_CTX *_mem_save_return_authenticator_0;
12491         TALLOC_CTX *_mem_save_password_0;
12492         if (flags & NDR_IN) {
12493                 ZERO_STRUCT(r->out);
12494
12495                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12496                 if (_ptr_server_name) {
12497                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12498                 } else {
12499                         r->in.server_name = NULL;
12500                 }
12501                 if (r->in.server_name) {
12502                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12503                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12504                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12505                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12506                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12507                                 return 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));
12508                         }
12509                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12510                         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));
12511                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12512                 }
12513                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12514                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12515                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12516                         return 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));
12517                 }
12518                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12519                 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));
12520                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12521                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12522                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12523                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12524                         return 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));
12525                 }
12526                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12527                 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));
12528                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12529                         NDR_PULL_ALLOC(ndr, r->in.credential);
12530                 }
12531                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12532                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12533                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12534                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12535                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12536                 ZERO_STRUCTP(r->out.return_authenticator);
12537                 NDR_PULL_ALLOC(ndr, r->out.password);
12538                 ZERO_STRUCTP(r->out.password);
12539         }
12540         if (flags & NDR_OUT) {
12541                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12542                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12543                 }
12544                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12545                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12546                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12547                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12548                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12549                         NDR_PULL_ALLOC(ndr, r->out.password);
12550                 }
12551                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12552                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12553                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12554                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12555                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12556         }
12557         return NDR_ERR_SUCCESS;
12558 }
12559
12560 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12561 {
12562         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12563         ndr->depth++;
12564         if (flags & NDR_SET_VALUES) {
12565                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12566         }
12567         if (flags & NDR_IN) {
12568                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12569                 ndr->depth++;
12570                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12571                 ndr->depth++;
12572                 if (r->in.server_name) {
12573                         ndr_print_string(ndr, "server_name", r->in.server_name);
12574                 }
12575                 ndr->depth--;
12576                 ndr_print_string(ndr, "account_name", r->in.account_name);
12577                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12578                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12579                 ndr_print_ptr(ndr, "credential", r->in.credential);
12580                 ndr->depth++;
12581                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12582                 ndr->depth--;
12583                 ndr->depth--;
12584         }
12585         if (flags & NDR_OUT) {
12586                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12587                 ndr->depth++;
12588                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12589                 ndr->depth++;
12590                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12591                 ndr->depth--;
12592                 ndr_print_ptr(ndr, "password", r->out.password);
12593                 ndr->depth++;
12594                 ndr_print_samr_Password(ndr, "password", r->out.password);
12595                 ndr->depth--;
12596                 ndr_print_WERROR(ndr, "result", r->out.result);
12597                 ndr->depth--;
12598         }
12599         ndr->depth--;
12600 }
12601
12602 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12603 {
12604         if (flags & NDR_IN) {
12605         }
12606         if (flags & NDR_OUT) {
12607                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12608         }
12609         return NDR_ERR_SUCCESS;
12610 }
12611
12612 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12613 {
12614         if (flags & NDR_IN) {
12615         }
12616         if (flags & NDR_OUT) {
12617                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12618         }
12619         return NDR_ERR_SUCCESS;
12620 }
12621
12622 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12623 {
12624         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12625         ndr->depth++;
12626         if (flags & NDR_SET_VALUES) {
12627                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12628         }
12629         if (flags & NDR_IN) {
12630                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12631                 ndr->depth++;
12632                 ndr->depth--;
12633         }
12634         if (flags & NDR_OUT) {
12635                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12636                 ndr->depth++;
12637                 ndr_print_WERROR(ndr, "result", r->out.result);
12638                 ndr->depth--;
12639         }
12640         ndr->depth--;
12641 }
12642
12643 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12644 {
12645         uint32_t cntr_addresses_1;
12646         if (flags & NDR_IN) {
12647                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12648                 if (r->in.server_name) {
12649                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12650                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12651                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12652                         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));
12653                 }
12654                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12655                 if (r->in.addresses == NULL) {
12656                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12657                 }
12658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12659                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12660                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12661                 }
12662                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12663                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12664                 }
12665         }
12666         if (flags & NDR_OUT) {
12667                 if (r->out.ctr == NULL) {
12668                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12669                 }
12670                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12671                 if (*r->out.ctr) {
12672                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12673                 }
12674                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12675         }
12676         return NDR_ERR_SUCCESS;
12677 }
12678
12679 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12680 {
12681         uint32_t _ptr_server_name;
12682         uint32_t cntr_addresses_1;
12683         uint32_t _ptr_ctr;
12684         TALLOC_CTX *_mem_save_server_name_0;
12685         TALLOC_CTX *_mem_save_addresses_1;
12686         TALLOC_CTX *_mem_save_ctr_0;
12687         TALLOC_CTX *_mem_save_ctr_1;
12688         if (flags & NDR_IN) {
12689                 ZERO_STRUCT(r->out);
12690
12691                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12692                 if (_ptr_server_name) {
12693                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12694                 } else {
12695                         r->in.server_name = NULL;
12696                 }
12697                 if (r->in.server_name) {
12698                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12699                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12700                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12701                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12702                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12703                                 return 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));
12704                         }
12705                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12706                         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));
12707                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12708                 }
12709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12710                 if (r->in.count < 0 || r->in.count > 32000) {
12711                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12712                 }
12713                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12714                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12715                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12716                 }
12717                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12718                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12719                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12720                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12721                 }
12722                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12723                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12724                 }
12725                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12726                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12727                 ZERO_STRUCTP(r->out.ctr);
12728                 if (r->in.addresses) {
12729                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12730                 }
12731         }
12732         if (flags & NDR_OUT) {
12733                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12734                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12735                 }
12736                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12737                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12738                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12739                 if (_ptr_ctr) {
12740                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12741                 } else {
12742                         *r->out.ctr = NULL;
12743                 }
12744                 if (*r->out.ctr) {
12745                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12746                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12747                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12748                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12749                 }
12750                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12751                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12752         }
12753         return NDR_ERR_SUCCESS;
12754 }
12755
12756 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12757 {
12758         uint32_t cntr_addresses_1;
12759         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12760         ndr->depth++;
12761         if (flags & NDR_SET_VALUES) {
12762                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12763         }
12764         if (flags & NDR_IN) {
12765                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12766                 ndr->depth++;
12767                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12768                 ndr->depth++;
12769                 if (r->in.server_name) {
12770                         ndr_print_string(ndr, "server_name", r->in.server_name);
12771                 }
12772                 ndr->depth--;
12773                 ndr_print_uint32(ndr, "count", r->in.count);
12774                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12775                 ndr->depth++;
12776                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
12777                 ndr->depth++;
12778                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12779                         char *idx_1=NULL;
12780                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
12781                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12782                                 free(idx_1);
12783                         }
12784                 }
12785                 ndr->depth--;
12786                 ndr->depth--;
12787                 ndr->depth--;
12788         }
12789         if (flags & NDR_OUT) {
12790                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12791                 ndr->depth++;
12792                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12793                 ndr->depth++;
12794                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12795                 ndr->depth++;
12796                 if (*r->out.ctr) {
12797                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12798                 }
12799                 ndr->depth--;
12800                 ndr->depth--;
12801                 ndr_print_WERROR(ndr, "result", r->out.result);
12802                 ndr->depth--;
12803         }
12804         ndr->depth--;
12805 }
12806
12807 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12808 {
12809         if (flags & NDR_IN) {
12810                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12811                 if (r->in.server_unc) {
12812                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12813                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12814                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12815                         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));
12816                 }
12817                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12818                 if (r->in.client_account) {
12819                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12820                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12821                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12822                         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));
12823                 }
12824                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12825                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12826                 if (r->in.domain_name) {
12827                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12828                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12829                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12830                         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));
12831                 }
12832                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12833                 if (r->in.domain_guid) {
12834                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12835                 }
12836                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12837                 if (r->in.site_name) {
12838                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12839                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12840                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12841                         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));
12842                 }
12843                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12844         }
12845         if (flags & NDR_OUT) {
12846                 if (r->out.info == NULL) {
12847                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12848                 }
12849                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12850                 if (*r->out.info) {
12851                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12852                 }
12853                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12854         }
12855         return NDR_ERR_SUCCESS;
12856 }
12857
12858 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12859 {
12860         uint32_t _ptr_server_unc;
12861         uint32_t _ptr_client_account;
12862         uint32_t _ptr_domain_name;
12863         uint32_t _ptr_domain_guid;
12864         uint32_t _ptr_site_name;
12865         uint32_t _ptr_info;
12866         TALLOC_CTX *_mem_save_server_unc_0;
12867         TALLOC_CTX *_mem_save_client_account_0;
12868         TALLOC_CTX *_mem_save_domain_name_0;
12869         TALLOC_CTX *_mem_save_domain_guid_0;
12870         TALLOC_CTX *_mem_save_site_name_0;
12871         TALLOC_CTX *_mem_save_info_0;
12872         TALLOC_CTX *_mem_save_info_1;
12873         if (flags & NDR_IN) {
12874                 ZERO_STRUCT(r->out);
12875
12876                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12877                 if (_ptr_server_unc) {
12878                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12879                 } else {
12880                         r->in.server_unc = NULL;
12881                 }
12882                 if (r->in.server_unc) {
12883                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12884                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12885                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12886                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12887                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12888                                 return 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));
12889                         }
12890                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12891                         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));
12892                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12893                 }
12894                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12895                 if (_ptr_client_account) {
12896                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12897                 } else {
12898                         r->in.client_account = NULL;
12899                 }
12900                 if (r->in.client_account) {
12901                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12902                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12903                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12904                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12905                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12906                                 return 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));
12907                         }
12908                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12909                         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));
12910                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12911                 }
12912                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12913                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12914                 if (_ptr_domain_name) {
12915                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12916                 } else {
12917                         r->in.domain_name = NULL;
12918                 }
12919                 if (r->in.domain_name) {
12920                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12921                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12922                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12923                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12924                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12925                                 return 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));
12926                         }
12927                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12928                         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));
12929                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12930                 }
12931                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12932                 if (_ptr_domain_guid) {
12933                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12934                 } else {
12935                         r->in.domain_guid = NULL;
12936                 }
12937                 if (r->in.domain_guid) {
12938                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12939                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12940                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12941                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12942                 }
12943                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12944                 if (_ptr_site_name) {
12945                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12946                 } else {
12947                         r->in.site_name = NULL;
12948                 }
12949                 if (r->in.site_name) {
12950                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12951                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12952                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12953                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12954                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12955                                 return 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));
12956                         }
12957                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12958                         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));
12959                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12960                 }
12961                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12962                 NDR_PULL_ALLOC(ndr, r->out.info);
12963                 ZERO_STRUCTP(r->out.info);
12964         }
12965         if (flags & NDR_OUT) {
12966                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12967                         NDR_PULL_ALLOC(ndr, r->out.info);
12968                 }
12969                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12970                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12971                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12972                 if (_ptr_info) {
12973                         NDR_PULL_ALLOC(ndr, *r->out.info);
12974                 } else {
12975                         *r->out.info = NULL;
12976                 }
12977                 if (*r->out.info) {
12978                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12979                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12980                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12981                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12982                 }
12983                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12984                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12985         }
12986         return NDR_ERR_SUCCESS;
12987 }
12988
12989 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12990 {
12991         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12992         ndr->depth++;
12993         if (flags & NDR_SET_VALUES) {
12994                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12995         }
12996         if (flags & NDR_IN) {
12997                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12998                 ndr->depth++;
12999                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13000                 ndr->depth++;
13001                 if (r->in.server_unc) {
13002                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
13003                 }
13004                 ndr->depth--;
13005                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
13006                 ndr->depth++;
13007                 if (r->in.client_account) {
13008                         ndr_print_string(ndr, "client_account", r->in.client_account);
13009                 }
13010                 ndr->depth--;
13011                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
13012                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13013                 ndr->depth++;
13014                 if (r->in.domain_name) {
13015                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
13016                 }
13017                 ndr->depth--;
13018                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13019                 ndr->depth++;
13020                 if (r->in.domain_guid) {
13021                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13022                 }
13023                 ndr->depth--;
13024                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13025                 ndr->depth++;
13026                 if (r->in.site_name) {
13027                         ndr_print_string(ndr, "site_name", r->in.site_name);
13028                 }
13029                 ndr->depth--;
13030                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13031                 ndr->depth--;
13032         }
13033         if (flags & NDR_OUT) {
13034                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
13035                 ndr->depth++;
13036                 ndr_print_ptr(ndr, "info", r->out.info);
13037                 ndr->depth++;
13038                 ndr_print_ptr(ndr, "info", *r->out.info);
13039                 ndr->depth++;
13040                 if (*r->out.info) {
13041                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13042                 }
13043                 ndr->depth--;
13044                 ndr->depth--;
13045                 ndr_print_WERROR(ndr, "result", r->out.result);
13046                 ndr->depth--;
13047         }
13048         ndr->depth--;
13049 }
13050
13051 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13052 {
13053         if (flags & NDR_IN) {
13054         }
13055         if (flags & NDR_OUT) {
13056                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13057         }
13058         return NDR_ERR_SUCCESS;
13059 }
13060
13061 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13062 {
13063         if (flags & NDR_IN) {
13064         }
13065         if (flags & NDR_OUT) {
13066                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13067         }
13068         return NDR_ERR_SUCCESS;
13069 }
13070
13071 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13072 {
13073         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13074         ndr->depth++;
13075         if (flags & NDR_SET_VALUES) {
13076                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13077         }
13078         if (flags & NDR_IN) {
13079                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13080                 ndr->depth++;
13081                 ndr->depth--;
13082         }
13083         if (flags & NDR_OUT) {
13084                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13085                 ndr->depth++;
13086                 ndr_print_WERROR(ndr, "result", r->out.result);
13087                 ndr->depth--;
13088         }
13089         ndr->depth--;
13090 }
13091
13092 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13093 {
13094         if (flags & NDR_IN) {
13095                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13096                 if (r->in.server_name) {
13097                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13098                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13099                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13100                         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));
13101                 }
13102         }
13103         if (flags & NDR_OUT) {
13104                 if (r->out.dom_trust_list == NULL) {
13105                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13106                 }
13107                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13108                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13109         }
13110         return NDR_ERR_SUCCESS;
13111 }
13112
13113 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13114 {
13115         uint32_t _ptr_server_name;
13116         TALLOC_CTX *_mem_save_server_name_0;
13117         TALLOC_CTX *_mem_save_dom_trust_list_0;
13118         if (flags & NDR_IN) {
13119                 ZERO_STRUCT(r->out);
13120
13121                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13122                 if (_ptr_server_name) {
13123                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13124                 } else {
13125                         r->in.server_name = NULL;
13126                 }
13127                 if (r->in.server_name) {
13128                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13129                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13130                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13131                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13132                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13133                                 return 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));
13134                         }
13135                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13136                         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));
13137                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13138                 }
13139                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13140                 ZERO_STRUCTP(r->out.dom_trust_list);
13141         }
13142         if (flags & NDR_OUT) {
13143                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13144                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13145                 }
13146                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13147                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13148                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13149                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13150                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13151         }
13152         return NDR_ERR_SUCCESS;
13153 }
13154
13155 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13156 {
13157         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13158         ndr->depth++;
13159         if (flags & NDR_SET_VALUES) {
13160                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13161         }
13162         if (flags & NDR_IN) {
13163                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13164                 ndr->depth++;
13165                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13166                 ndr->depth++;
13167                 if (r->in.server_name) {
13168                         ndr_print_string(ndr, "server_name", r->in.server_name);
13169                 }
13170                 ndr->depth--;
13171                 ndr->depth--;
13172         }
13173         if (flags & NDR_OUT) {
13174                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13175                 ndr->depth++;
13176                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13177                 ndr->depth++;
13178                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13179                 ndr->depth--;
13180                 ndr_print_WERROR(ndr, "result", r->out.result);
13181                 ndr->depth--;
13182         }
13183         ndr->depth--;
13184 }
13185
13186 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13187 {
13188         uint32_t cntr_addresses_1;
13189         if (flags & NDR_IN) {
13190                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13191                 if (r->in.server_name) {
13192                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13193                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13194                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13195                         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));
13196                 }
13197                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13198                 if (r->in.addresses == NULL) {
13199                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13200                 }
13201                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13202                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13203                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13204                 }
13205                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13206                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13207                 }
13208         }
13209         if (flags & NDR_OUT) {
13210                 if (r->out.ctr == NULL) {
13211                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13212                 }
13213                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13214                 if (*r->out.ctr) {
13215                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13216                 }
13217                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13218         }
13219         return NDR_ERR_SUCCESS;
13220 }
13221
13222 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13223 {
13224         uint32_t _ptr_server_name;
13225         uint32_t cntr_addresses_1;
13226         uint32_t _ptr_ctr;
13227         TALLOC_CTX *_mem_save_server_name_0;
13228         TALLOC_CTX *_mem_save_addresses_1;
13229         TALLOC_CTX *_mem_save_ctr_0;
13230         TALLOC_CTX *_mem_save_ctr_1;
13231         if (flags & NDR_IN) {
13232                 ZERO_STRUCT(r->out);
13233
13234                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13235                 if (_ptr_server_name) {
13236                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13237                 } else {
13238                         r->in.server_name = NULL;
13239                 }
13240                 if (r->in.server_name) {
13241                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13242                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13243                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13244                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13245                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13246                                 return 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));
13247                         }
13248                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13249                         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));
13250                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13251                 }
13252                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13253                 if (r->in.count < 0 || r->in.count > 32000) {
13254                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13255                 }
13256                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13257                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13258                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13259                 }
13260                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13261                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13262                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13263                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13264                 }
13265                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13266                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13267                 }
13268                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13269                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13270                 ZERO_STRUCTP(r->out.ctr);
13271                 if (r->in.addresses) {
13272                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13273                 }
13274         }
13275         if (flags & NDR_OUT) {
13276                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13277                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13278                 }
13279                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13280                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13281                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13282                 if (_ptr_ctr) {
13283                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13284                 } else {
13285                         *r->out.ctr = NULL;
13286                 }
13287                 if (*r->out.ctr) {
13288                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13289                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13290                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13292                 }
13293                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13294                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13295         }
13296         return NDR_ERR_SUCCESS;
13297 }
13298
13299 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13300 {
13301         uint32_t cntr_addresses_1;
13302         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13303         ndr->depth++;
13304         if (flags & NDR_SET_VALUES) {
13305                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13306         }
13307         if (flags & NDR_IN) {
13308                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13309                 ndr->depth++;
13310                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13311                 ndr->depth++;
13312                 if (r->in.server_name) {
13313                         ndr_print_string(ndr, "server_name", r->in.server_name);
13314                 }
13315                 ndr->depth--;
13316                 ndr_print_uint32(ndr, "count", r->in.count);
13317                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13318                 ndr->depth++;
13319                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
13320                 ndr->depth++;
13321                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13322                         char *idx_1=NULL;
13323                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13324                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13325                                 free(idx_1);
13326                         }
13327                 }
13328                 ndr->depth--;
13329                 ndr->depth--;
13330                 ndr->depth--;
13331         }
13332         if (flags & NDR_OUT) {
13333                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13334                 ndr->depth++;
13335                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13336                 ndr->depth++;
13337                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13338                 ndr->depth++;
13339                 if (*r->out.ctr) {
13340                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13341                 }
13342                 ndr->depth--;
13343                 ndr->depth--;
13344                 ndr_print_WERROR(ndr, "result", r->out.result);
13345                 ndr->depth--;
13346         }
13347         ndr->depth--;
13348 }
13349
13350 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13351 {
13352         if (flags & NDR_IN) {
13353                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13354                 if (r->in.server_name) {
13355                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13356                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13358                         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));
13359                 }
13360         }
13361         if (flags & NDR_OUT) {
13362                 if (r->out.ctr == NULL) {
13363                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13364                 }
13365                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13366                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13367         }
13368         return NDR_ERR_SUCCESS;
13369 }
13370
13371 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13372 {
13373         uint32_t _ptr_server_name;
13374         TALLOC_CTX *_mem_save_server_name_0;
13375         TALLOC_CTX *_mem_save_ctr_0;
13376         if (flags & NDR_IN) {
13377                 ZERO_STRUCT(r->out);
13378
13379                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13380                 if (_ptr_server_name) {
13381                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13382                 } else {
13383                         r->in.server_name = NULL;
13384                 }
13385                 if (r->in.server_name) {
13386                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13387                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13388                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13389                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13390                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13391                                 return 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));
13392                         }
13393                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13394                         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));
13395                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13396                 }
13397                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13398                 ZERO_STRUCTP(r->out.ctr);
13399         }
13400         if (flags & NDR_OUT) {
13401                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13402                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13403                 }
13404                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13405                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13406                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13407                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13408                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13409         }
13410         return NDR_ERR_SUCCESS;
13411 }
13412
13413 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13414 {
13415         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13416         ndr->depth++;
13417         if (flags & NDR_SET_VALUES) {
13418                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13419         }
13420         if (flags & NDR_IN) {
13421                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13422                 ndr->depth++;
13423                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13424                 ndr->depth++;
13425                 if (r->in.server_name) {
13426                         ndr_print_string(ndr, "server_name", r->in.server_name);
13427                 }
13428                 ndr->depth--;
13429                 ndr->depth--;
13430         }
13431         if (flags & NDR_OUT) {
13432                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13433                 ndr->depth++;
13434                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13435                 ndr->depth++;
13436                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13437                 ndr->depth--;
13438                 ndr_print_WERROR(ndr, "result", r->out.result);
13439                 ndr->depth--;
13440         }
13441         ndr->depth--;
13442 }
13443
13444 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13445 {
13446         if (flags & NDR_IN) {
13447                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13448                 if (r->in.server_name) {
13449                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13450                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13451                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13452                         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));
13453                 }
13454                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13455                 if (r->in.computer_name) {
13456                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13457                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13458                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13459                         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));
13460                 }
13461                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
13462                 if (r->in.logon == NULL) {
13463                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13464                 }
13465                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13466                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13467                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13468                 if (r->in.flags == NULL) {
13469                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13470                 }
13471                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13472         }
13473         if (flags & NDR_OUT) {
13474                 if (r->out.validation == NULL) {
13475                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13476                 }
13477                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13478                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13479                 if (r->out.authoritative == NULL) {
13480                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13481                 }
13482                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13483                 if (r->out.flags == NULL) {
13484                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13485                 }
13486                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13487                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13488         }
13489         return NDR_ERR_SUCCESS;
13490 }
13491
13492 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13493 {
13494         uint32_t _ptr_server_name;
13495         uint32_t _ptr_computer_name;
13496         TALLOC_CTX *_mem_save_server_name_0;
13497         TALLOC_CTX *_mem_save_computer_name_0;
13498         TALLOC_CTX *_mem_save_logon_0;
13499         TALLOC_CTX *_mem_save_validation_0;
13500         TALLOC_CTX *_mem_save_authoritative_0;
13501         TALLOC_CTX *_mem_save_flags_0;
13502         if (flags & NDR_IN) {
13503                 ZERO_STRUCT(r->out);
13504
13505                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13506                 if (_ptr_server_name) {
13507                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13508                 } else {
13509                         r->in.server_name = NULL;
13510                 }
13511                 if (r->in.server_name) {
13512                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13513                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13514                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13515                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13516                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13517                                 return 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));
13518                         }
13519                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13520                         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));
13521                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13522                 }
13523                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13524                 if (_ptr_computer_name) {
13525                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13526                 } else {
13527                         r->in.computer_name = NULL;
13528                 }
13529                 if (r->in.computer_name) {
13530                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13531                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13532                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13533                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13534                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13535                                 return 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));
13536                         }
13537                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13538                         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));
13539                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13540                 }
13541                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
13542                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13543                         NDR_PULL_ALLOC(ndr, r->in.logon);
13544                 }
13545                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
13546                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
13547                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13548                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13549                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
13550                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13551                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13552                         NDR_PULL_ALLOC(ndr, r->in.flags);
13553                 }
13554                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13555                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13556                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13557                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13558                 NDR_PULL_ALLOC(ndr, r->out.validation);
13559                 ZERO_STRUCTP(r->out.validation);
13560                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13561                 ZERO_STRUCTP(r->out.authoritative);
13562                 NDR_PULL_ALLOC(ndr, r->out.flags);
13563                 *r->out.flags = *r->in.flags;
13564         }
13565         if (flags & NDR_OUT) {
13566                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13567                         NDR_PULL_ALLOC(ndr, r->out.validation);
13568                 }
13569                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13570                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13571                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13572                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13573                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13574                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13575                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13576                 }
13577                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13578                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13579                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13580                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13581                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13582                         NDR_PULL_ALLOC(ndr, r->out.flags);
13583                 }
13584                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13585                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13586                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13587                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13588                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13589         }
13590         return NDR_ERR_SUCCESS;
13591 }
13592
13593 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13594 {
13595         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13596         ndr->depth++;
13597         if (flags & NDR_SET_VALUES) {
13598                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13599         }
13600         if (flags & NDR_IN) {
13601                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13602                 ndr->depth++;
13603                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13604                 ndr->depth++;
13605                 if (r->in.server_name) {
13606                         ndr_print_string(ndr, "server_name", r->in.server_name);
13607                 }
13608                 ndr->depth--;
13609                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13610                 ndr->depth++;
13611                 if (r->in.computer_name) {
13612                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13613                 }
13614                 ndr->depth--;
13615                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
13616                 ndr_print_ptr(ndr, "logon", r->in.logon);
13617                 ndr->depth++;
13618                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
13619                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
13620                 ndr->depth--;
13621                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13622                 ndr_print_ptr(ndr, "flags", r->in.flags);
13623                 ndr->depth++;
13624                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13625                 ndr->depth--;
13626                 ndr->depth--;
13627         }
13628         if (flags & NDR_OUT) {
13629                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13630                 ndr->depth++;
13631                 ndr_print_ptr(ndr, "validation", r->out.validation);
13632                 ndr->depth++;
13633                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13634                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13635                 ndr->depth--;
13636                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13637                 ndr->depth++;
13638                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13639                 ndr->depth--;
13640                 ndr_print_ptr(ndr, "flags", r->out.flags);
13641                 ndr->depth++;
13642                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13643                 ndr->depth--;
13644                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13645                 ndr->depth--;
13646         }
13647         ndr->depth--;
13648 }
13649
13650 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13651 {
13652         if (flags & NDR_IN) {
13653                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13654                 if (r->in.server_name) {
13655                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13656                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13657                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13658                         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));
13659                 }
13660                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13661         }
13662         if (flags & NDR_OUT) {
13663                 if (r->out.trusts == NULL) {
13664                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13665                 }
13666                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13667                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13668         }
13669         return NDR_ERR_SUCCESS;
13670 }
13671
13672 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13673 {
13674         uint32_t _ptr_server_name;
13675         TALLOC_CTX *_mem_save_server_name_0;
13676         TALLOC_CTX *_mem_save_trusts_0;
13677         if (flags & NDR_IN) {
13678                 ZERO_STRUCT(r->out);
13679
13680                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13681                 if (_ptr_server_name) {
13682                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13683                 } else {
13684                         r->in.server_name = NULL;
13685                 }
13686                 if (r->in.server_name) {
13687                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13688                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13689                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13690                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13691                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13692                                 return 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));
13693                         }
13694                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13695                         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));
13696                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13697                 }
13698                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13699                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13700                 ZERO_STRUCTP(r->out.trusts);
13701         }
13702         if (flags & NDR_OUT) {
13703                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13704                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13705                 }
13706                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13707                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13708                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13709                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13710                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13711         }
13712         return NDR_ERR_SUCCESS;
13713 }
13714
13715 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13716 {
13717         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13718         ndr->depth++;
13719         if (flags & NDR_SET_VALUES) {
13720                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13721         }
13722         if (flags & NDR_IN) {
13723                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13724                 ndr->depth++;
13725                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13726                 ndr->depth++;
13727                 if (r->in.server_name) {
13728                         ndr_print_string(ndr, "server_name", r->in.server_name);
13729                 }
13730                 ndr->depth--;
13731                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13732                 ndr->depth--;
13733         }
13734         if (flags & NDR_OUT) {
13735                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13736                 ndr->depth++;
13737                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13738                 ndr->depth++;
13739                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13740                 ndr->depth--;
13741                 ndr_print_WERROR(ndr, "result", r->out.result);
13742                 ndr->depth--;
13743         }
13744         ndr->depth--;
13745 }
13746
13747 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13748 {
13749         if (flags & NDR_IN) {
13750                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13751                 if (r->in.server_name) {
13752                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13753                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13754                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13755                         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));
13756                 }
13757                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13758                 if (r->in.domain) {
13759                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13760                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13761                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13762                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13763                 }
13764                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13765                 if (r->in.domain_guid) {
13766                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13767                 }
13768                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13769                 if (r->in.dsa_guid) {
13770                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13771                 }
13772                 if (r->in.dns_host == NULL) {
13773                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13774                 }
13775                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13776                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13778                 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));
13779         }
13780         if (flags & NDR_OUT) {
13781                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13782         }
13783         return NDR_ERR_SUCCESS;
13784 }
13785
13786 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13787 {
13788         uint32_t _ptr_server_name;
13789         uint32_t _ptr_domain;
13790         uint32_t _ptr_domain_guid;
13791         uint32_t _ptr_dsa_guid;
13792         TALLOC_CTX *_mem_save_server_name_0;
13793         TALLOC_CTX *_mem_save_domain_0;
13794         TALLOC_CTX *_mem_save_domain_guid_0;
13795         TALLOC_CTX *_mem_save_dsa_guid_0;
13796         if (flags & NDR_IN) {
13797                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13798                 if (_ptr_server_name) {
13799                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13800                 } else {
13801                         r->in.server_name = NULL;
13802                 }
13803                 if (r->in.server_name) {
13804                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13805                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13806                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13807                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13808                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13809                                 return 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));
13810                         }
13811                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13812                         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));
13813                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13814                 }
13815                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
13816                 if (_ptr_domain) {
13817                         NDR_PULL_ALLOC(ndr, r->in.domain);
13818                 } else {
13819                         r->in.domain = NULL;
13820                 }
13821                 if (r->in.domain) {
13822                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
13823                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
13824                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
13825                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
13826                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
13827                                 return 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));
13828                         }
13829                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
13830                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
13831                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
13832                 }
13833                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13834                 if (_ptr_domain_guid) {
13835                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13836                 } else {
13837                         r->in.domain_guid = NULL;
13838                 }
13839                 if (r->in.domain_guid) {
13840                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13841                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13842                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13843                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13844                 }
13845                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
13846                 if (_ptr_dsa_guid) {
13847                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
13848                 } else {
13849                         r->in.dsa_guid = NULL;
13850                 }
13851                 if (r->in.dsa_guid) {
13852                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13853                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
13854                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13855                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
13856                 }
13857                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
13858                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
13859                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
13860                         return 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));
13861                 }
13862                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
13863                 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));
13864         }
13865         if (flags & NDR_OUT) {
13866                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13867         }
13868         return NDR_ERR_SUCCESS;
13869 }
13870
13871 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13872 {
13873         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
13874         ndr->depth++;
13875         if (flags & NDR_SET_VALUES) {
13876                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13877         }
13878         if (flags & NDR_IN) {
13879                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
13880                 ndr->depth++;
13881                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13882                 ndr->depth++;
13883                 if (r->in.server_name) {
13884                         ndr_print_string(ndr, "server_name", r->in.server_name);
13885                 }
13886                 ndr->depth--;
13887                 ndr_print_ptr(ndr, "domain", r->in.domain);
13888                 ndr->depth++;
13889                 if (r->in.domain) {
13890                         ndr_print_string(ndr, "domain", r->in.domain);
13891                 }
13892                 ndr->depth--;
13893                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13894                 ndr->depth++;
13895                 if (r->in.domain_guid) {
13896                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13897                 }
13898                 ndr->depth--;
13899                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
13900                 ndr->depth++;
13901                 if (r->in.dsa_guid) {
13902                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
13903                 }
13904                 ndr->depth--;
13905                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
13906                 ndr->depth++;
13907                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
13908                 ndr->depth--;
13909                 ndr->depth--;
13910         }
13911         if (flags & NDR_OUT) {
13912                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
13913                 ndr->depth++;
13914                 ndr_print_WERROR(ndr, "result", r->out.result);
13915                 ndr->depth--;
13916         }
13917         ndr->depth--;
13918 }
13919
13920 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13921 {
13922         if (flags & NDR_IN) {
13923                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13924                 if (r->in.server_name) {
13925                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13926                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13927                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13928                         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));
13929                 }
13930                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13931                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13932                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13933                 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));
13934                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13935                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13936                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13937                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13938                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13939                 if (r->in.credential == NULL) {
13940                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13941                 }
13942                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13943         }
13944         if (flags & NDR_OUT) {
13945                 if (r->out.return_authenticator == NULL) {
13946                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13947                 }
13948                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13949                 if (r->out.password == NULL) {
13950                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13951                 }
13952                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13953                 if (r->out.password2 == NULL) {
13954                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13955                 }
13956                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13957                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13958         }
13959         return NDR_ERR_SUCCESS;
13960 }
13961
13962 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13963 {
13964         uint32_t _ptr_server_name;
13965         TALLOC_CTX *_mem_save_server_name_0;
13966         TALLOC_CTX *_mem_save_credential_0;
13967         TALLOC_CTX *_mem_save_return_authenticator_0;
13968         TALLOC_CTX *_mem_save_password_0;
13969         TALLOC_CTX *_mem_save_password2_0;
13970         if (flags & NDR_IN) {
13971                 ZERO_STRUCT(r->out);
13972
13973                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13974                 if (_ptr_server_name) {
13975                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13976                 } else {
13977                         r->in.server_name = NULL;
13978                 }
13979                 if (r->in.server_name) {
13980                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13981                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13982                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13983                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13984                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13985                                 return 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));
13986                         }
13987                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13988                         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));
13989                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13990                 }
13991                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13992                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13993                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13994                         return 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));
13995                 }
13996                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13997                 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));
13998                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13999                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14000                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14001                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14002                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
14003                 }
14004                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14005                 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));
14006                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14007                         NDR_PULL_ALLOC(ndr, r->in.credential);
14008                 }
14009                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14010                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14011                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14012                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14013                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14014                 ZERO_STRUCTP(r->out.return_authenticator);
14015                 NDR_PULL_ALLOC(ndr, r->out.password);
14016                 ZERO_STRUCTP(r->out.password);
14017                 NDR_PULL_ALLOC(ndr, r->out.password2);
14018                 ZERO_STRUCTP(r->out.password2);
14019         }
14020         if (flags & NDR_OUT) {
14021                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14022                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14023                 }
14024                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14025                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14026                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14027                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14028                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14029                         NDR_PULL_ALLOC(ndr, r->out.password);
14030                 }
14031                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14032                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14033                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
14034                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14035                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14036                         NDR_PULL_ALLOC(ndr, r->out.password2);
14037                 }
14038                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14039                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
14040                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
14041                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
14042                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14043         }
14044         return NDR_ERR_SUCCESS;
14045 }
14046
14047 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
14048 {
14049         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
14050         ndr->depth++;
14051         if (flags & NDR_SET_VALUES) {
14052                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14053         }
14054         if (flags & NDR_IN) {
14055                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
14056                 ndr->depth++;
14057                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14058                 ndr->depth++;
14059                 if (r->in.server_name) {
14060                         ndr_print_string(ndr, "server_name", r->in.server_name);
14061                 }
14062                 ndr->depth--;
14063                 ndr_print_string(ndr, "account_name", r->in.account_name);
14064                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14065                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14066                 ndr_print_ptr(ndr, "credential", r->in.credential);
14067                 ndr->depth++;
14068                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14069                 ndr->depth--;
14070                 ndr->depth--;
14071         }
14072         if (flags & NDR_OUT) {
14073                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14074                 ndr->depth++;
14075                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14076                 ndr->depth++;
14077                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14078                 ndr->depth--;
14079                 ndr_print_ptr(ndr, "password", r->out.password);
14080                 ndr->depth++;
14081                 ndr_print_samr_Password(ndr, "password", r->out.password);
14082                 ndr->depth--;
14083                 ndr_print_ptr(ndr, "password2", r->out.password2);
14084                 ndr->depth++;
14085                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14086                 ndr->depth--;
14087                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14088                 ndr->depth--;
14089         }
14090         ndr->depth--;
14091 }
14092
14093 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14094 {
14095         if (flags & NDR_IN) {
14096                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14097                 if (r->in.server_name) {
14098                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14099                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14100                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14101                         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));
14102                 }
14103                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14104                 if (r->in.trusted_domain_name) {
14105                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14106                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14107                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14108                         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));
14109                 }
14110                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14111         }
14112         if (flags & NDR_OUT) {
14113                 if (r->out.forest_trust_info == NULL) {
14114                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14115                 }
14116                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14117                 if (*r->out.forest_trust_info) {
14118                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14119                 }
14120                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14121         }
14122         return NDR_ERR_SUCCESS;
14123 }
14124
14125 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
14126 {
14127         uint32_t _ptr_server_name;
14128         uint32_t _ptr_trusted_domain_name;
14129         uint32_t _ptr_forest_trust_info;
14130         TALLOC_CTX *_mem_save_server_name_0;
14131         TALLOC_CTX *_mem_save_trusted_domain_name_0;
14132         TALLOC_CTX *_mem_save_forest_trust_info_0;
14133         TALLOC_CTX *_mem_save_forest_trust_info_1;
14134         if (flags & NDR_IN) {
14135                 ZERO_STRUCT(r->out);
14136
14137                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14138                 if (_ptr_server_name) {
14139                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14140                 } else {
14141                         r->in.server_name = NULL;
14142                 }
14143                 if (r->in.server_name) {
14144                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14145                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14146                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14147                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14148                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14149                                 return 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));
14150                         }
14151                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14152                         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));
14153                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14154                 }
14155                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14156                 if (_ptr_trusted_domain_name) {
14157                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14158                 } else {
14159                         r->in.trusted_domain_name = NULL;
14160                 }
14161                 if (r->in.trusted_domain_name) {
14162                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14163                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14164                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14165                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14166                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14167                                 return 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));
14168                         }
14169                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14170                         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));
14171                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14172                 }
14173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14174                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14175                 ZERO_STRUCTP(r->out.forest_trust_info);
14176         }
14177         if (flags & NDR_OUT) {
14178                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14179                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14180                 }
14181                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14182                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14183                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14184                 if (_ptr_forest_trust_info) {
14185                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14186                 } else {
14187                         *r->out.forest_trust_info = NULL;
14188                 }
14189                 if (*r->out.forest_trust_info) {
14190                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14191                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14192                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14193                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14194                 }
14195                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14196                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14197         }
14198         return NDR_ERR_SUCCESS;
14199 }
14200
14201 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14202 {
14203         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14204         ndr->depth++;
14205         if (flags & NDR_SET_VALUES) {
14206                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14207         }
14208         if (flags & NDR_IN) {
14209                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14210                 ndr->depth++;
14211                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14212                 ndr->depth++;
14213                 if (r->in.server_name) {
14214                         ndr_print_string(ndr, "server_name", r->in.server_name);
14215                 }
14216                 ndr->depth--;
14217                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14218                 ndr->depth++;
14219                 if (r->in.trusted_domain_name) {
14220                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14221                 }
14222                 ndr->depth--;
14223                 ndr_print_uint32(ndr, "flags", r->in.flags);
14224                 ndr->depth--;
14225         }
14226         if (flags & NDR_OUT) {
14227                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14228                 ndr->depth++;
14229                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14230                 ndr->depth++;
14231                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14232                 ndr->depth++;
14233                 if (*r->out.forest_trust_info) {
14234                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14235                 }
14236                 ndr->depth--;
14237                 ndr->depth--;
14238                 ndr_print_WERROR(ndr, "result", r->out.result);
14239                 ndr->depth--;
14240         }
14241         ndr->depth--;
14242 }
14243
14244 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14245 {
14246         if (flags & NDR_IN) {
14247                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14248                 if (r->in.server_name) {
14249                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14250                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14251                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14252                         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));
14253                 }
14254                 if (r->in.trusted_domain_name == NULL) {
14255                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14256                 }
14257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14258                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14260                 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));
14261                 if (r->in.credential == NULL) {
14262                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14263                 }
14264                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14265                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14266         }
14267         if (flags & NDR_OUT) {
14268                 if (r->out.return_authenticator == NULL) {
14269                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14270                 }
14271                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14272                 if (r->out.forest_trust_info == NULL) {
14273                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14274                 }
14275                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14276                 if (*r->out.forest_trust_info) {
14277                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14278                 }
14279                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14280         }
14281         return NDR_ERR_SUCCESS;
14282 }
14283
14284 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14285 {
14286         uint32_t _ptr_server_name;
14287         uint32_t _ptr_forest_trust_info;
14288         TALLOC_CTX *_mem_save_server_name_0;
14289         TALLOC_CTX *_mem_save_credential_0;
14290         TALLOC_CTX *_mem_save_return_authenticator_0;
14291         TALLOC_CTX *_mem_save_forest_trust_info_0;
14292         TALLOC_CTX *_mem_save_forest_trust_info_1;
14293         if (flags & NDR_IN) {
14294                 ZERO_STRUCT(r->out);
14295
14296                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14297                 if (_ptr_server_name) {
14298                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14299                 } else {
14300                         r->in.server_name = NULL;
14301                 }
14302                 if (r->in.server_name) {
14303                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14304                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14305                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14306                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14307                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14308                                 return 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));
14309                         }
14310                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14311                         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));
14312                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14313                 }
14314                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14315                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14316                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14317                         return 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));
14318                 }
14319                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14320                 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));
14321                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14322                         NDR_PULL_ALLOC(ndr, r->in.credential);
14323                 }
14324                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14325                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14326                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14327                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14328                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14329                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14330                 ZERO_STRUCTP(r->out.return_authenticator);
14331                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14332                 ZERO_STRUCTP(r->out.forest_trust_info);
14333         }
14334         if (flags & NDR_OUT) {
14335                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14336                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14337                 }
14338                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14339                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14340                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14341                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14342                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14343                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14344                 }
14345                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14346                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14347                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14348                 if (_ptr_forest_trust_info) {
14349                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14350                 } else {
14351                         *r->out.forest_trust_info = NULL;
14352                 }
14353                 if (*r->out.forest_trust_info) {
14354                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14355                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14356                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14357                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14358                 }
14359                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14360                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14361         }
14362         return NDR_ERR_SUCCESS;
14363 }
14364
14365 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14366 {
14367         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14368         ndr->depth++;
14369         if (flags & NDR_SET_VALUES) {
14370                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14371         }
14372         if (flags & NDR_IN) {
14373                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14374                 ndr->depth++;
14375                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14376                 ndr->depth++;
14377                 if (r->in.server_name) {
14378                         ndr_print_string(ndr, "server_name", r->in.server_name);
14379                 }
14380                 ndr->depth--;
14381                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14382                 ndr->depth++;
14383                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14384                 ndr->depth--;
14385                 ndr_print_ptr(ndr, "credential", r->in.credential);
14386                 ndr->depth++;
14387                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14388                 ndr->depth--;
14389                 ndr_print_uint32(ndr, "flags", r->in.flags);
14390                 ndr->depth--;
14391         }
14392         if (flags & NDR_OUT) {
14393                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14394                 ndr->depth++;
14395                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14396                 ndr->depth++;
14397                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14398                 ndr->depth--;
14399                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14400                 ndr->depth++;
14401                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14402                 ndr->depth++;
14403                 if (*r->out.forest_trust_info) {
14404                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14405                 }
14406                 ndr->depth--;
14407                 ndr->depth--;
14408                 ndr_print_WERROR(ndr, "result", r->out.result);
14409                 ndr->depth--;
14410         }
14411         ndr->depth--;
14412 }
14413
14414 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14415 {
14416         if (flags & NDR_IN) {
14417                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14418                 if (r->in.server_name) {
14419                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14420                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14421                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14422                         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));
14423                 }
14424                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14425                 if (r->in.computer_name) {
14426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14427                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14428                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14429                         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));
14430                 }
14431                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14432                 if (r->in.credential) {
14433                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14434                 }
14435                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14436                 if (r->in.return_authenticator) {
14437                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14438                 }
14439                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
14440                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14441                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14442                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14443                 if (r->in.flags == NULL) {
14444                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14445                 }
14446                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14447         }
14448         if (flags & NDR_OUT) {
14449                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14450                 if (r->out.return_authenticator) {
14451                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14452                 }
14453                 if (r->out.validation == NULL) {
14454                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14455                 }
14456                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14457                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14458                 if (r->out.authoritative == NULL) {
14459                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14460                 }
14461                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14462                 if (r->out.flags == NULL) {
14463                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14464                 }
14465                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14466                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14467         }
14468         return NDR_ERR_SUCCESS;
14469 }
14470
14471 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14472 {
14473         uint32_t _ptr_server_name;
14474         uint32_t _ptr_computer_name;
14475         uint32_t _ptr_credential;
14476         uint32_t _ptr_return_authenticator;
14477         TALLOC_CTX *_mem_save_server_name_0;
14478         TALLOC_CTX *_mem_save_computer_name_0;
14479         TALLOC_CTX *_mem_save_credential_0;
14480         TALLOC_CTX *_mem_save_return_authenticator_0;
14481         TALLOC_CTX *_mem_save_validation_0;
14482         TALLOC_CTX *_mem_save_authoritative_0;
14483         TALLOC_CTX *_mem_save_flags_0;
14484         if (flags & NDR_IN) {
14485                 ZERO_STRUCT(r->out);
14486
14487                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14488                 if (_ptr_server_name) {
14489                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14490                 } else {
14491                         r->in.server_name = NULL;
14492                 }
14493                 if (r->in.server_name) {
14494                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14495                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14496                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14497                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14498                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14499                                 return 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));
14500                         }
14501                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14502                         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));
14503                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14504                 }
14505                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14506                 if (_ptr_computer_name) {
14507                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14508                 } else {
14509                         r->in.computer_name = NULL;
14510                 }
14511                 if (r->in.computer_name) {
14512                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14513                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14514                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14515                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14516                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14517                                 return 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));
14518                         }
14519                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14520                         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));
14521                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14522                 }
14523                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14524                 if (_ptr_credential) {
14525                         NDR_PULL_ALLOC(ndr, r->in.credential);
14526                 } else {
14527                         r->in.credential = NULL;
14528                 }
14529                 if (r->in.credential) {
14530                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14531                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14532                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14533                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14534                 }
14535                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14536                 if (_ptr_return_authenticator) {
14537                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14538                 } else {
14539                         r->in.return_authenticator = NULL;
14540                 }
14541                 if (r->in.return_authenticator) {
14542                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14543                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14544                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14545                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14546                 }
14547                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
14548                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14549                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14550                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14551                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14552                         NDR_PULL_ALLOC(ndr, r->in.flags);
14553                 }
14554                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14555                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14556                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14557                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14558                 NDR_PULL_ALLOC(ndr, r->out.validation);
14559                 ZERO_STRUCTP(r->out.validation);
14560                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14561                 ZERO_STRUCTP(r->out.authoritative);
14562                 NDR_PULL_ALLOC(ndr, r->out.flags);
14563                 *r->out.flags = *r->in.flags;
14564         }
14565         if (flags & NDR_OUT) {
14566                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14567                 if (_ptr_return_authenticator) {
14568                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14569                 } else {
14570                         r->out.return_authenticator = NULL;
14571                 }
14572                 if (r->out.return_authenticator) {
14573                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14574                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14575                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14576                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14577                 }
14578                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14579                         NDR_PULL_ALLOC(ndr, r->out.validation);
14580                 }
14581                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14582                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14583                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14584                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14585                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14586                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14587                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14588                 }
14589                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14590                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14591                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14592                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14593                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14594                         NDR_PULL_ALLOC(ndr, r->out.flags);
14595                 }
14596                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14597                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14598                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14599                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14600                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14601         }
14602         return NDR_ERR_SUCCESS;
14603 }
14604
14605 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14606 {
14607         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14608         ndr->depth++;
14609         if (flags & NDR_SET_VALUES) {
14610                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14611         }
14612         if (flags & NDR_IN) {
14613                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14614                 ndr->depth++;
14615                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14616                 ndr->depth++;
14617                 if (r->in.server_name) {
14618                         ndr_print_string(ndr, "server_name", r->in.server_name);
14619                 }
14620                 ndr->depth--;
14621                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14622                 ndr->depth++;
14623                 if (r->in.computer_name) {
14624                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14625                 }
14626                 ndr->depth--;
14627                 ndr_print_ptr(ndr, "credential", r->in.credential);
14628                 ndr->depth++;
14629                 if (r->in.credential) {
14630                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14631                 }
14632                 ndr->depth--;
14633                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14634                 ndr->depth++;
14635                 if (r->in.return_authenticator) {
14636                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14637                 }
14638                 ndr->depth--;
14639                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
14640                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14641                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
14642                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14643                 ndr_print_ptr(ndr, "flags", r->in.flags);
14644                 ndr->depth++;
14645                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14646                 ndr->depth--;
14647                 ndr->depth--;
14648         }
14649         if (flags & NDR_OUT) {
14650                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14651                 ndr->depth++;
14652                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14653                 ndr->depth++;
14654                 if (r->out.return_authenticator) {
14655                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14656                 }
14657                 ndr->depth--;
14658                 ndr_print_ptr(ndr, "validation", r->out.validation);
14659                 ndr->depth++;
14660                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14661                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14662                 ndr->depth--;
14663                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14664                 ndr->depth++;
14665                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14666                 ndr->depth--;
14667                 ndr_print_ptr(ndr, "flags", r->out.flags);
14668                 ndr->depth++;
14669                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14670                 ndr->depth--;
14671                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14672                 ndr->depth--;
14673         }
14674         ndr->depth--;
14675 }
14676
14677 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14678 {
14679         if (flags & NDR_IN) {
14680         }
14681         if (flags & NDR_OUT) {
14682                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14683         }
14684         return NDR_ERR_SUCCESS;
14685 }
14686
14687 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14688 {
14689         if (flags & NDR_IN) {
14690         }
14691         if (flags & NDR_OUT) {
14692                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14693         }
14694         return NDR_ERR_SUCCESS;
14695 }
14696
14697 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14698 {
14699         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14700         ndr->depth++;
14701         if (flags & NDR_SET_VALUES) {
14702                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14703         }
14704         if (flags & NDR_IN) {
14705                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14706                 ndr->depth++;
14707                 ndr->depth--;
14708         }
14709         if (flags & NDR_OUT) {
14710                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14711                 ndr->depth++;
14712                 ndr_print_WERROR(ndr, "result", r->out.result);
14713                 ndr->depth--;
14714         }
14715         ndr->depth--;
14716 }
14717
14718 static const struct ndr_interface_call netlogon_calls[] = {
14719         {
14720                 "netr_LogonUasLogon",
14721                 sizeof(struct netr_LogonUasLogon),
14722                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14723                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14724                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14725                 false,
14726         },
14727         {
14728                 "netr_LogonUasLogoff",
14729                 sizeof(struct netr_LogonUasLogoff),
14730                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14731                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14732                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14733                 false,
14734         },
14735         {
14736                 "netr_LogonSamLogon",
14737                 sizeof(struct netr_LogonSamLogon),
14738                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14739                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14740                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14741                 false,
14742         },
14743         {
14744                 "netr_LogonSamLogoff",
14745                 sizeof(struct netr_LogonSamLogoff),
14746                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14747                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14748                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14749                 false,
14750         },
14751         {
14752                 "netr_ServerReqChallenge",
14753                 sizeof(struct netr_ServerReqChallenge),
14754                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14755                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14756                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14757                 false,
14758         },
14759         {
14760                 "netr_ServerAuthenticate",
14761                 sizeof(struct netr_ServerAuthenticate),
14762                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14763                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14764                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14765                 false,
14766         },
14767         {
14768                 "netr_ServerPasswordSet",
14769                 sizeof(struct netr_ServerPasswordSet),
14770                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14771                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14772                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14773                 false,
14774         },
14775         {
14776                 "netr_DatabaseDeltas",
14777                 sizeof(struct netr_DatabaseDeltas),
14778                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14779                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14780                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14781                 false,
14782         },
14783         {
14784                 "netr_DatabaseSync",
14785                 sizeof(struct netr_DatabaseSync),
14786                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14787                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14788                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14789                 false,
14790         },
14791         {
14792                 "netr_AccountDeltas",
14793                 sizeof(struct netr_AccountDeltas),
14794                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14795                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14796                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14797                 false,
14798         },
14799         {
14800                 "netr_AccountSync",
14801                 sizeof(struct netr_AccountSync),
14802                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14803                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14804                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14805                 false,
14806         },
14807         {
14808                 "netr_GetDcName",
14809                 sizeof(struct netr_GetDcName),
14810                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14811                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14812                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14813                 false,
14814         },
14815         {
14816                 "netr_LogonControl",
14817                 sizeof(struct netr_LogonControl),
14818                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14819                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14820                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14821                 false,
14822         },
14823         {
14824                 "netr_GetAnyDCName",
14825                 sizeof(struct netr_GetAnyDCName),
14826                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14827                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14828                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14829                 false,
14830         },
14831         {
14832                 "netr_LogonControl2",
14833                 sizeof(struct netr_LogonControl2),
14834                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14835                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14836                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14837                 false,
14838         },
14839         {
14840                 "netr_ServerAuthenticate2",
14841                 sizeof(struct netr_ServerAuthenticate2),
14842                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14843                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14844                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14845                 false,
14846         },
14847         {
14848                 "netr_DatabaseSync2",
14849                 sizeof(struct netr_DatabaseSync2),
14850                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14851                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14852                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14853                 false,
14854         },
14855         {
14856                 "netr_DatabaseRedo",
14857                 sizeof(struct netr_DatabaseRedo),
14858                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14859                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14860                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14861                 false,
14862         },
14863         {
14864                 "netr_LogonControl2Ex",
14865                 sizeof(struct netr_LogonControl2Ex),
14866                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14867                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14868                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14869                 false,
14870         },
14871         {
14872                 "netr_NetrEnumerateTrustedDomains",
14873                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14874                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14875                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14876                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14877                 false,
14878         },
14879         {
14880                 "netr_DsRGetDCName",
14881                 sizeof(struct netr_DsRGetDCName),
14882                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14883                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14884                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14885                 false,
14886         },
14887         {
14888                 "netr_NETRLOGONDUMMYROUTINE1",
14889                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14890                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14891                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14892                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14893                 false,
14894         },
14895         {
14896                 "netr_NETRLOGONSETSERVICEBITS",
14897                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14898                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14899                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14900                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14901                 false,
14902         },
14903         {
14904                 "netr_LogonGetTrustRid",
14905                 sizeof(struct netr_LogonGetTrustRid),
14906                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14907                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14908                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14909                 false,
14910         },
14911         {
14912                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14913                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14914                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14915                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14916                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14917                 false,
14918         },
14919         {
14920                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14921                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14922                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14923                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14924                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14925                 false,
14926         },
14927         {
14928                 "netr_ServerAuthenticate3",
14929                 sizeof(struct netr_ServerAuthenticate3),
14930                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14931                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14932                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14933                 false,
14934         },
14935         {
14936                 "netr_DsRGetDCNameEx",
14937                 sizeof(struct netr_DsRGetDCNameEx),
14938                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14939                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14940                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14941                 false,
14942         },
14943         {
14944                 "netr_DsRGetSiteName",
14945                 sizeof(struct netr_DsRGetSiteName),
14946                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14947                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14948                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14949                 false,
14950         },
14951         {
14952                 "netr_LogonGetDomainInfo",
14953                 sizeof(struct netr_LogonGetDomainInfo),
14954                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14955                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14956                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14957                 false,
14958         },
14959         {
14960                 "netr_ServerPasswordSet2",
14961                 sizeof(struct netr_ServerPasswordSet2),
14962                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14963                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14964                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14965                 false,
14966         },
14967         {
14968                 "netr_ServerPasswordGet",
14969                 sizeof(struct netr_ServerPasswordGet),
14970                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14971                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14972                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14973                 false,
14974         },
14975         {
14976                 "netr_NETRLOGONSENDTOSAM",
14977                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14978                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14979                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14980                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14981                 false,
14982         },
14983         {
14984                 "netr_DsRAddressToSitenamesW",
14985                 sizeof(struct netr_DsRAddressToSitenamesW),
14986                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14987                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14988                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14989                 false,
14990         },
14991         {
14992                 "netr_DsRGetDCNameEx2",
14993                 sizeof(struct netr_DsRGetDCNameEx2),
14994                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14995                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14996                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14997                 false,
14998         },
14999         {
15000                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
15001                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
15002                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
15003                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
15004                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
15005                 false,
15006         },
15007         {
15008                 "netr_NetrEnumerateTrustedDomainsEx",
15009                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
15010                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
15011                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
15012                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
15013                 false,
15014         },
15015         {
15016                 "netr_DsRAddressToSitenamesExW",
15017                 sizeof(struct netr_DsRAddressToSitenamesExW),
15018                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
15019                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
15020                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
15021                 false,
15022         },
15023         {
15024                 "netr_DsrGetDcSiteCoverageW",
15025                 sizeof(struct netr_DsrGetDcSiteCoverageW),
15026                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
15027                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
15028                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
15029                 false,
15030         },
15031         {
15032                 "netr_LogonSamLogonEx",
15033                 sizeof(struct netr_LogonSamLogonEx),
15034                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
15035                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
15036                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
15037                 false,
15038         },
15039         {
15040                 "netr_DsrEnumerateDomainTrusts",
15041                 sizeof(struct netr_DsrEnumerateDomainTrusts),
15042                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
15043                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
15044                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
15045                 false,
15046         },
15047         {
15048                 "netr_DsrDeregisterDNSHostRecords",
15049                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
15050                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
15051                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
15052                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
15053                 false,
15054         },
15055         {
15056                 "netr_ServerTrustPasswordsGet",
15057                 sizeof(struct netr_ServerTrustPasswordsGet),
15058                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
15059                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
15060                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
15061                 false,
15062         },
15063         {
15064                 "netr_DsRGetForestTrustInformation",
15065                 sizeof(struct netr_DsRGetForestTrustInformation),
15066                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
15067                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
15068                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
15069                 false,
15070         },
15071         {
15072                 "netr_GetForestTrustInformation",
15073                 sizeof(struct netr_GetForestTrustInformation),
15074                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
15075                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
15076                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
15077                 false,
15078         },
15079         {
15080                 "netr_LogonSamLogonWithFlags",
15081                 sizeof(struct netr_LogonSamLogonWithFlags),
15082                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
15083                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
15084                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
15085                 false,
15086         },
15087         {
15088                 "netr_NETRSERVERGETTRUSTINFO",
15089                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
15090                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
15091                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
15092                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
15093                 false,
15094         },
15095         { NULL, 0, NULL, NULL, NULL, false }
15096 };
15097
15098 static const char * const netlogon_endpoint_strings[] = {
15099         "ncacn_np:[\\pipe\\netlogon]", 
15100         "ncacn_ip_tcp:", 
15101         "ncalrpc:", 
15102 };
15103
15104 static const struct ndr_interface_string_array netlogon_endpoints = {
15105         .count  = 3,
15106         .names  = netlogon_endpoint_strings
15107 };
15108
15109 static const char * const netlogon_authservice_strings[] = {
15110         "host", 
15111 };
15112
15113 static const struct ndr_interface_string_array netlogon_authservices = {
15114         .count  = 1,
15115         .names  = netlogon_authservice_strings
15116 };
15117
15118
15119 const struct ndr_interface_table ndr_table_netlogon = {
15120         .name           = "netlogon",
15121         .syntax_id      = {
15122                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15123                 NDR_NETLOGON_VERSION
15124         },
15125         .helpstring     = NDR_NETLOGON_HELPSTRING,
15126         .num_calls      = 47,
15127         .calls          = netlogon_calls,
15128         .endpoints      = &netlogon_endpoints,
15129         .authservices   = &netlogon_authservices
15130 };
15131